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。