类型和语法

  1. 内置类型
    1. 类数组
    2. 字符串与数组的区别
    3. 数字
      1. NaN
      2. 有穷,无穷
      3. Object.is
    4. 值和引用

读这本书之前已经阅读过很多的 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" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏