10个不常被提及的JavaScript小技巧
1、过滤数组重复值
作用:数组去重
方法:Es6 中 Set 方法,Set类似于数组,但是成员的值都是唯一的,结合拓展运算符(...)创建一个新的数组,达到过滤原数组重复值的功能,原数组不变;
示例:
注意:包含 object、function、array下不适用
2、短路求值
作用:简化 if 判断值的有效性
方法:使用 逻辑与( && )、逻辑或( || )
原理:
与( &&)运算符返回第一个 表达式为 false 的值,当所有操作数都是 true 时,将返回最后一个表达式的结果;
或( || )运算符返回第一个 true 值,当所有操作数都是false时,将返回最后一个表达式的结果;
示例:
3、转换 Boolean 型
作用:常规的 布尔值只有 true 、false;但是 在 JavaScript 中,除了0 、‘’、null、undefined、NaN、false其他的我们都可以认为是 truthy;
方法:使用 负( !)运算符,将一系列的变量转换成 布尔值
示例:
4、转换 String 型
作用:通过连接符( + )将一个 Number 类型的变量转换成 String 类型
方法:连接符( + )
示例:
5、转换 Number 类型
作用:通过连接符 ( + )、英文波浪号 ~ 将 string类型变量转换为 Number 型
方法:
连接符:+ 缺点是在某些上下文中被解释为连接操作符
波浪号:~~ 缺点只能转换为整数(舍弃小数点),不能转换为浮点数 ,一个波浪号 ~ 被称为 按位不运算符 等价于 -n-1 ,使用两个可以有效的否定运算 - (-n-1)-1 = n
示例:
6、快速求幂
作用:求幂方法简写
方法:Es7 中 幂运算符 **
示例:
7、快速 Float 转 int 类型
作用:简化平时使用 Math.floor()、Math.ceil()、Math.round()将 float 转 int
方法: | (位或运算符)同样可以使用 ~~,两者都可以将 string 转换为 Number 型,截断小数点
示例:
9、开头数组截取
作用:删除数组末尾值,以下方法比 splice 更快
方法:length 、slice 方法,两者不同点是前者是直接改变原数组,后者是 返回新截取的数组
示例:
10、截取数组末尾 n 位
作用:返回截取数组后 n 位的新数组
方法:slice ()方法
示例: