隐式转换规则

92 阅读1分钟

null 和 undefined 类型 ,null 转换为 "null",undefined 转换为 "undefined", Boolean 类型,true 转换为 "true",false 转换为 "false"。 Number 类型的值直接转换,不过那些极小和极大的数字会使用指数形式。

数字转换:

(1)undefined 类型的值转换为 NaN。 (2)null 类型的值转换为 0。 (3)Boolean 类型的值,true 转换为 1,false 转换为 0。 (4)String 类型的值转换如同使用 Number() 函数进行转换,包含非数字值则转换为 NaN,空字符串为 0,"-Infinity"转化为-Infinity {}转换为NaN。[]转为0.

布尔值转换:

以下均为false,除外都为true 例如Boolen(' ')为true,Boolen([])为true

• undefined • null • false • +0、-0 和 NaN • ""

如何将字符串转化为数字,例如 '12.3b'

(1)使用 Number() 方法,前提是所包含的字符串不包含不合法字符。

(2)使用 parseInt() 方法,parseInt() 函数 以第二个参数为基数来解析第一个参数字符串 ,并返回一个整数。 。当基数的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。

parseInt例子parseInt("10",16)

经典题:[1,2,3].map(parseInt) ===[1,NaN,NaN]

map函数将数组的每个元素传递给指定的函数处理,并返回处理后的数组,所以 ['1','2','3'].map(parseInt) 就是将字符串1,2,3作为元素;0,1,2作为下标分别调用 parseInt 函数。即分别求出 parseInt('1',0), parseInt('2',1), parseInt('3',2)的结果。

(3)使用 parseFloat() 方法,该函数解析一个字符串参数并返回一个浮点数。