JS精粹知识点和我的解释
函数若是不return则默认返回undefined
const value=()=>{let a=3;
}
let value_test;
console.log(value(),value_test); // undefined undefined
console.log(typeof value,typeof value_test); //
argument并不是一个真正的数组,它拥有一个length属性,但是它没有数组其他的方法。
- JavaScript只有一个数字类型。它在内部被表示为64位的浮点数。所以,它的1.0和1值是相同的。
我测试了一下,===> 类型是相同的。
console.log(1==1.0); // true
console.log(1===1.0); //true
- JS没有字符类型,它不像C++,'a'表示字符,在JS中表示一个字符是创建一个字符串。
字符串是不可变的。什么叫不可变呢。(有没有一种浓浓的“人可以被毁灭,但不能被打败”的海鸣威既视感)
str+='a';
//上面这句话经过了哪些骚操作呢? 1.拷贝str,记为temp ==> 2. temp末尾加上1 ===> 3.将str指向temp并且 **毁灭原来的str**
字符串是可以被毁灭的,但是不会被改变。恩,就是这样。
JS的字符是十六位的.这是历史遗留问题。JS被创造的时候,Unicode是一个16位的字符集,So~(16bits = 2bytes ==> 每个字符需要两个字节,C++中char1个字节,int两个字节,某种程度某种情况上来说JS比较浪费资源?)
- 下面列出的值被当做假的(false)
- false
- null
- 0 数字0
- ' ' 空字符串
- NaN 数字NaN
- undefined
其他的所有值都表示为真,包括true,包括"false"字符串
我在react中遇到的JS基础:空数组被作为判断源的时候,是true!!! [] 是true, [] 是true, [] 是true, [] 是true, [] 是true, [] 是true, [] 是true
for in
通常用来遍历带有key值的对象。不推荐用来遍历数组,因为for in会将扩展的对象也遍历进来。
var my_obj = {a: 1,b: 2
}
Object.prototype.c = 30;
for (item in my_obj) {console.log(item);
} //最后输出a,b,c
根本原因在于有的时候我们只想要输出a,b。在原型上定义方法这种操作我们完全不知道谁会去做,这让程序非常不可控制,所以就有了 hasOwnProperty这个判断方法。
而for in
是很强大的,它将它的手伸向了obj本身就有的属性,还伸向了原型上扩展的属性。
for (item in my_obj) {if (my_obj.hasOwnProperty(item)) {console.log(item);}
} //最后输出a,b
关于parseInt 和 Number的差别
var a=Number(""); // 0
var b=parseInt(""); // NaN
console.log(Number(""),Number(null),Number(String); // 0 0 NaNconsole.log(parseInt(""),parseInt(null),parseInt(String); // NaN NaN NaN
上面的例子是我在 2017-8-28 (今日)发现的,因为通过 style[attr]获取属性的时候类型都为String,哪怕是没有设置样式也是string,在这个时候 Number和parseInt非常有默契地保持了一致。
还有一件有趣的事情
var a=new String('0');console.log(a);var b=new String(0);console.log(b);
返回值都是一模一样的,都是String {0: "0", length: 1, [[PrimitiveValue]]: "0"}
那么,我们平时返回空样式的时候是怎么样的呢?
let box2=document.getElementsByClassName("box2")[0];let test=new String();let box_test=box2.style.width;console.log(test==box_test); // trueconsole.log(test===box_test); //falseconsole.log(typeof test,typeof box_test); // object string// 前面相等是因为先做了一次类型转换,将string转换成了object
意思是说,空字符串不等于 null,判断空字符串还是用 字符串长度 length
来判断吧。
true和fales是区分大小写的,不存在True和False作为boolean变量。
转载于:https://www.cnblogs.com/can-i-do/p/7197956.html
JS精粹知识点和我的解释相关推荐
- JS 基础知识点及常考面试题(二)
JS 基础知识点及常考面试题(二) 涉及面试题:== 和 === 有什么区别? 对于 == 来说,如果对比双方的类型不一样的话,就会进行类型转换,这也就用到了我们上一章节讲的内容. 假如我们需要对比 ...
- html属性 id去重,JS相关知识点总结
一.获取元素方法 1.document.getElementById("元素id号"); 可以使用内置对象document上的getElementById方法来获取页面上设置了id ...
- c++局部对象是什么_小白学Web前端难点是什么 JS进阶知识点有哪些
小白学Web前端难点是什么?JS进阶知识点有哪些?JavaScript是前端小白学习的难点,但又是前端工程师必须要掌握的技能.很多同学反映JavaScript知识点多而杂,不知道如何下手,下面就给大家 ...
- JS 进阶知识点及常考面试题
JS 进阶知识点及常考面试题 手写 call.apply 及 bind 函数 涉及面试题:call.apply 及 bind 函数内部实现是怎么样的? 首先从以下几点来考虑如何实现这几个函数 不传入第 ...
- JS 基础知识点及常考面试题(一)
JS 基础知识点及常考面试题(一) 原始(Primitive)类型 涉及面试题:原始类型有哪几种?null 是对象嘛? 在 JS 中,存在着 6 种原始值,分别是: boolean null unde ...
- java基础教程知识点,[Java教程]js基础知识点总结
[Java教程]js基础知识点总结 0 2016-11-01 21:00:04 如何在一个网站或者一个页面,去书写你的js代码: 1.js的分层(功能):jquery(tool) 组件(ui) 应用( ...
- 实战知识点(一):CSS和JS部分知识点的运用(小A一轮)
CSS和JS部分知识点的运用(小A一轮) 目录 CSS和JS部分知识点的运用(小A一轮) 首页 首页大标题蓝色边框动画的实现 头部导航条黄色块的实现 第三个英文标题透明字体的实现 通过伪元素修饰各个标 ...
- html 引入js 兼容,JS跨浏览器兼容性解决思路及方案汇总,常见JS兼容性知识点汇总...
上篇文章我们介绍了,处理CSS浏览器兼容性的4个解决方案:浏览器CSS样式初始化.浏览器私有属性,CSS hack语法和自动化插件,有兴趣的可以看看,链接放到本文结尾 本文主要介绍JS的跨浏览器兼容性 ...
- JS 基础知识点与高频考题解析
变量类型 1,介绍js的基本数据类型. Undefined.Null.Boolean.Number.String 2,类型判断用到哪些方法? typeof typeof xxx得到的值有以下几 ...
- JS高级知识点最新最全梳理上篇(codewhy视频)
文章目录 一.浏览器工作原理和V8引擎 1.浏览器内核 2.浏览器渲染过程 3.JS引擎 4.V8引擎 二.内存管理及作用域提升 1.内存管理 2.JS垃圾回收机制 3.作用域提升 4.作用域提升面试 ...
最新文章
- How to set window title name on Oracle EBS Form?
- incompatible with sql_mode=only_full_group_by
- 中学计算机科学教育,计算机科学教育周 – Tsinghua International School 清华大学附属中学国际部...
- boost::mp11::mp_remove_if_q相关用法的测试程序
- 亚信安全火力全开猎捕“坏兔子”,全歼详解
- 关于优酷SDK之setOnADPlayListener
- Exception in thread “main“ java.lang.IllegalArgumentException: http://www.dmg.org/PMML-4_4(没搞定)
- Javascript 面向对象编程
- java例程练习(一维数组)
- 实锤了?哪吒涉嫌抄袭起诉已立案:公布多张相似对比图
- 关于Java中“+”加运算符和“”向前移位运算符混合使用时出现的错误
- PyCharm: Simplify chained comparison
- 听了那么多语音识别,你知道它的发展史吗?
- 1.枚举类型、声明指针、常量、存储类型、运算符优先级记忆
- Chrome谷歌浏览器离线安装包下载
- 决策树cart算法实战
- php网站xiazai工具,php程序员工具箱下载_php程序员工具箱v1.0版本-php中文网工具下载...
- Oracle 11g 创建数据库
- Rufus,Etcher,黑苹果-最方便的启动盘制作工具
- 阿里云函数计算使用imagemagick处理oss图片
热门文章
- oracle 11g 01017,oracle 11G OEM 出现问题 ORA-01017: inv
- python测试用例不通过发送报告_python+unittest 多用例测试执行失败的问题
- 计算机应用基础任务式教程 素材,计算机应用基础任务化教程教学大纲
- html中无序列表做成链接,Beautifulsoup从无序列表中提取文本和链接divulli(斯堪的纳维亚字符)...
- 人脸识别-YOLOv5模型目标检测
- 10个linux awk文本处理经典案例,Linux awk命令常用案例
- linux虚拟内存和win,linux下的vm(虚拟内存)和windows下的作用是一样的,均是防止真实内存资源不足准备的. linux的vm相关参数...
- 561. 数组拆分 I
- 利用octave求逆矩阵
- TypeError: 'list' object is not callable