javascript细节知识

  • 字符串转数字:字符串 * 1

  • 其他类型转字符串:字符串" + 值

  • !!值,可以将值转换为布尔类型。

  • !值,可以将值转换为布尔类型并取反。

  • "",null,undefined,0,NaN,在进行条件判断时,会被自动转换为false

  • Boolean,Number,String的new对象都可以通过valueOf()转换为对应值。

  • for..in会自动过滤掉不存在的元素(比如数组设置length数)。

  • 数组arr.length设大不会分配更多空间。

  • 数组delete只会删除值,不会删除数组位。

  • 对象字面量的"键"可为空字符串。

  • Array.prototype.slice.call(arguments)转化速度比较慢。

  • setTimeout/setInterval从第三个参数开始,全部都为函数参数项。

  • eval只在被直接调用并且调用函数就是eval本身时,才在当前作用域中执行。

  • typeof()中的括号代表的是分组操作符,而不是意味着typeof是作为函数使用。

  • NaN——"不是数字",属于特殊数字

    • 运算失败会得到NaN

    • NaN与任何数字运算结果都为NaN

  • (Infinity | -Infinity)——无穷数

    • 任何数除以0都为(Infinity|-Infinity)

    • Infinity和-Infinity的相互运算都为NaN

    • Infinity和-Infinity与数字的常规运算都为(Infinity|-Infinity)

  • 对象数组化

    var obj= { age: 12 };
    
    Array.prototype.push.call(obj, 1, 2);
    
    console.log(obj); 
    
    // { 0: 1, 1: 2, age: 12, length: 2 }
    
posted @ 2018-10-23 08:50  戡玉  阅读(120)  评论(0)    收藏  举报