const a = ({} + {}).length;
复制代码
({}+{}).length 会转变成 ({}.toString() + {}.toString() ).length,{}.toString()的值为[object Object]为15,所以最后结果为30。
const b = ([] + []).length
复制代码
一个空数组的length值为0
const c = (function () { }).length
复制代码
一个函数的length属性,其length 属性指明函数的形参个数。
const d = ([] + {}).length
复制代码
实际是变成了([]+{}的toString())。[]返回空字符串””值为0, 而{}返回”[object Object]”,
所以输出为15
const a = [1, 2, 3].map(parseInt)
console.log(e); //[1, NaN, NaN]
复制代码
-
map函数
将数组的每个元素传递给指定的函数处理,并返回处理后的数组 -
parseInt函数(重点)
概念:以第二个参数为基数来解析第一个参数字符串
特点:接收两个参数parseInt(string,radix)
string:字母(大小写均可)、数组、特殊字符
radix:解析字符串的基数,基数规则如下:
1) 区间范围介于2~36之间,不在范围内则会返回NaN
2 ) 当参数为 0,parseInt() 会根据十进制来解析;
3 ) 如果忽略该参数,默认的基数规则
const a = [1, 2, 3].map(parseInt) 等于
const a =[1, 2, 3].map(function(string,radix){
return parseInt(string,radix)
})
复制代码
parseInt(‘1’,0);radix=0,按十进制来解析,返回 1;
parseInt(‘2’,1);radix=1,不在区间内,返回 NaN;
parseInt(‘3’,2);radix=2,按二进制来解析,但string并不是以 0 和 1 开头的二进制类型,返回 NaN。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END