这一行有什么区别:
var a = parseInt("1", 10); // a === 1
Run Code Online (Sandbox Code Playgroud)
这条线
var a = +"1"; // a === 1
Run Code Online (Sandbox Code Playgroud)
这个jsperf测试显示,当前的chrome版本中的一元运算符要快得多,假设它是针对node.js的!
如果我尝试转换不是数字的字符串都返回NaN:
var b = parseInt("test" 10); // b === NaN
var b = +"test"; // b === NaN
Run Code Online (Sandbox Code Playgroud)
那么我什么时候应该优先使用parseInt一元加(尤其是在node.js中)???
编辑:双波浪运算符的区别是什么~~?
我有一个阵列
var arr = [' A ', ' b ', 'c'];
Run Code Online (Sandbox Code Playgroud)
而且我想 trim从数组中的每个元素的空格.
它可以通过使用Array.mapas 来完成
arr.map(function(el) {
return el.trim();
});
Run Code Online (Sandbox Code Playgroud)
我很好奇将trim/ toLowerCase函数直接传递给mapas回调函数,如arr.map(Math.max.apply.bind(Math.max,null)); 从每个子数组或arr.map(Number)获取最大元素; 将每个元素转换为Number.
我试过了
arr.map(String.prototype.trim.apply);
Run Code Online (Sandbox Code Playgroud)
但这是投掷错误
未捕获的TypeError:在undefined上调用了Function.prototype.apply,这是一个未定义的而不是函数
我希望String.prototype.trim.apply应该为数组中的每个元素调用,并将上下文设置为array中的元素(传递给apply);
mapmap