类型和语法
读这本书之前已经阅读过很多的 javascript 书籍了,所以自己会选择性的进行摘要
内置类型
很简单,就是变成了 7 种了呗,undefined,null,string,number,boolean,object,symbol。除了 object 其实都是基本类型。
typeof Symbol() === "symbol";
typeof function() {} === "function";
typeof null === "object";
注意函数不仅是对象,还可以拥有属性,length 属性就是他声明的参数的个数。
变量是没有类型的,只有值才有类型
typeof 一个没有申明过的值的结果是undefined
,但是直接访问就会报错。这个其实是一个 typeof 的安全机制
,我们可以用它来进行安全的防范,因为他不会报错。当然,除了使用 typeof,我们还可以使用 window 点的方式来访问,也不会报错。
如果数组的字符串键值能够被强制类型转换成十进制数字,他就会被当做数字索引来处理。
类数组
有时为了将类数组的变成真正的数组,可能会用 slice 或者 ES6 的 Array.from 来做。
字符串与数组的区别
字符串是不可变的,数组是可变的。
字符串没有数组的很多方法,比如 join,比如 map 等等。但是这些我们可以借数组的方法来处理。就直接 Array.prototype.join.call(‘aa’,’’)就好了。
除了 reverse 方法,字符串没法借用的,因为字符串没法改变,所以只有先转化为真正的数组才能调用 reverse 方法。
数字
下面这种写法居然是可以的,因为第一个点会被当做是小数点,第二个才会当做是操作符。再下面的也是可以的,那个空格分隔开了。
(42).toFixed(3);
(42).toFixed(3);
二级制浮点数最大的问题就是不精确,但是从 ES6 开始,会有一个误差值来进行判断。Number.EPSILON
能够显示的最大整数是 2^53-1,所以如果需要处理比较大的数字,最好保存为字符串。虽然可以显示的是 53 位,但是有很多数字操作的方法只支持 32 位的。
void 运算符的功能就是让表达式不返回值。
NaN
NaN 是一个不是数字的数字。
isNaN 这个方法是有 bug 的,他只识别不是 NaN,也不是数字。这个错误很多年了。
使用 ES6 的 Number.isNaN 就 OK 了。
有穷,无穷
可以从有穷走向无穷,不能从无穷走回有穷。无穷除以无穷的结果是 NaN。
Object.is
和===很像,除了-0 不等于+0 以及 NaN 等于自身之外。但是能用==和===的时候还是应该用这两个,因为效率更高,更为通用。
值和引用
就是除了对象之外,其他都是简单的值咯。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 981909093@qq.com
文章标题:类型和语法
文章字数:722
本文作者:泽鹿
发布时间:2019-08-28, 16:45:23
最后更新:2019-08-28, 19:03:42
原始链接:http://panyifei.github.io/2019/08/28/读书笔记/你不知道的Javascript中卷/类型和语法/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。