javascript小技巧
2016-05-11 16:35
981 查看
本文参考:这里
1. 使用
在变量前面加上
可以将
2. 使用
在变量前加上
4. 使用
当然,这个技巧估计以后没什么用了,在ES6上,语法支持设置默认参数值了。
错误原因网上有很多解释。这里不解释了。
正确做法:
1. 使用!!
操作符转换boolean类型
在变量前面加上!!运算符,可以将变量转换为boolean类型。
可以将
0, null, "", undefined, NaN这些变量转换为false,其余变量转换为true。
function Account(cash) { this.cash = cash; this.hasMoney = !!cash; } var account = new Account(100.50); console.log(account.cash); // 100.50 console.log(account.hasMoney); // true var emptyAccount = new Account(0); console.log(emptyAccount.cash); // 0 console.log(emptyAccount.hasMoney); // false
2. 使用+
运算符转换数字
在变量前加上+运算符,可以将包含纯数字的字符串变量转换为数字。
function toNumber(strNumber) { return +strNumber; } console.log(toNumber("1234")); // 1234 console.log(toNumber("ACB")); // NaN console.log(+new Date()) // 1461288164385
3.短路条件运算符 &&
user && user.login(); conected && login();
4. 使用||
运算符设置默认值
function User(name, age) { this.name = name || "Oliver Queen"; this.age = age || 27; } var user1 = new User(); console.log(user1.name); // Oliver Queen console.log(user1.age); // 27 var user2 = new User("Barry Allen", 25); console.log(user2.name); // Barry Allen console.log(user2.age); // 25
当然,这个技巧估计以后没什么用了,在ES6上,语法支持设置默认参数值了。
5. 遍历数组时候缓存array.length
for(var i = 0, length = array.length; i < length; i++) { console.log(array[i]); }
6. 检测对象属性
if ('querySelector' in document) { document.querySelector("#id"); } else { document.getElementById("id"); }
7. 获取数组左后一个元素
var array = [1,2,3,4,5,6]; console.log(array.slice(-1)); // [6] console.log(array.slice(-2)); // [5,6] console.log(array.slice(-3)); // [4,5,6]
8. 乱排数组
常见的错误用法:var list = [1,2,3]; console.log(list.sort(function() { Math.random() - 0.5 })); // [2,1,3]
错误原因网上有很多解释。这里不解释了。
正确做法:
function shuffling(array) { var arr = array.slice(0); console.log(arr); for (var i = 0, len = array.length; i < len; i++) { var randomPos = Math.floor(Math.random() * (len - i)); console.log(randomPos, len - i - 1); // 交换两个位置(randomPos和len - i - 1)的值 if (randomPos === len - i - 1) continue; arr[randomPos] = arr[randomPos] ^ arr[len - i - 1]; arr[len - i - 1] = arr[randomPos] ^ arr[len - i - 1]; arr[randomPos] = arr[randomPos] ^ arr[len - i - 1]; } return arr; }
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享