JS简单实用技巧

  1. 向数组插入元素

    arr[arr.length] = newValue比使用arr.push(newValue)速度要快(据说是快43%)
    [value].concat(arr)比arr.unshift(value)速度快(据说快98%)

  2. 可以用switch或者是对象来优化if else 语句

  3. sort排序,当我们需要对含有音节字母的字符串进行排序时,需要给sort加一个参数(Intl.Collator().compare)

    Intl.collator()是collator的构造函数,用于启用对语言敏感的字符串比较的对象

  4. null和undefined

    • null == undefined为true
    • null === undefined 为false
    • null在参与数据运算时,会被自动转为0参与运算,但是有undefined参与的数据运算一定为NaN
    • null是处理引用数据类型的,存在堆中,但是undefined是处理原始值得,存储在栈中
    • undefined是变量定义了但是没有赋值,而null表示没有赋值的引用数据类型
    • typeof undefined 为 ‘undefined’,但是typeof null 为 ‘object’
  5. 更快速的取整

    一个~可以将输入的32位整数转为:-(x + 1) // x为输入的一个32位数,两个该符号转为:-[-(x + 1) + 1]
    转换失败结果均为0,(用两位符号进行比较)
    对于转换正数,就相当于Math.floor()
    对于转换负数,就相当于Math.ceil()

  6. 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]
    }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值