首页 > [js]赋值语句中在变量值前面使用+号,起什么作用?

[js]赋值语句中在变量值前面使用+号,起什么作用?

偶尔在JQuery源码中看到下面的方法:

merge: function( first, second ) {
        var len = +second.length,
            j = 0,
            i = first.length;

        for ( ; j < len; j++ ) {
            first[ i++ ] = second[ j ];
        }

        first.length = i;

        return first;
    }

其中var len = +second.length; 这里的+号起什么作用呢?
我知道如果var date = +new Date(),date会是一个long值,而不是Date对象。但为什么会这样,也不是很清楚。

求大牛解析!!!


字符串转数字。但是为什么length需要转换。。。


+ 确实就是把后面的内容转成 number 类型。

但是这里为什么这么写我也觉得很奇怪,因为首先也没有什么常见的对象会有 length 属性但不是 number 类型的。

其次就算前面不转成 number 类型,后面唯一用到 len< 运算符也会自动做类型转换。看上去之后每次 < 时都去转换类型比之前只转换一次的性能要低下,但实际上现代 JavaScript 引擎没有那么笨。

结论:毫无必要。

【热门文章】
【热门文章】