-
向数组插入元素
arr[arr.length] = newValue比使用arr.push(newValue)速度要快(据说是快43%)
[value].concat(arr)比arr.unshift(value)速度快(据说快98%) -
可以用switch或者是对象来优化if else 语句
-
sort排序,当我们需要对含有音节字母的字符串进行排序时,需要给sort加一个参数(Intl.Collator().compare)
Intl.collator()是collator的构造函数,用于启用对语言敏感的字符串比较的对象
-
null和undefined
- null == undefined为true
- null === undefined 为false
- null在参与数据运算时,会被自动转为0参与运算,但是有undefined参与的数据运算一定为NaN
- null是处理引用数据类型的,存在堆中,但是undefined是处理原始值得,存储在栈中
- undefined是变量定义了但是没有赋值,而null表示没有赋值的引用数据类型
- typeof undefined 为 ‘undefined’,但是typeof null 为 ‘object’
-
更快速的取整
一个~可以将输入的32位整数转为:-(x + 1) // x为输入的一个32位数,两个该符号转为:-[-(x + 1) + 1]
转换失败结果均为0,(用两位符号进行比较)
对于转换正数,就相当于Math.floor()
对于转换负数,就相当于Math.ceil() -
Array.prototype.slice.call(arguments)、[].slice.call(arguments)
arguments作为参数将会使得性能变得非常慢,因为Chrome和node使用的V8引擎将会跳过对其的优化,通常可以这样做
var len = arguments.length var arr = new Array() for(var i = 0;i < len; i++) { arr[i] = arguments[i] }
JS简单实用技巧
最新推荐文章于 2022-08-15 20:53:32 发布