您的位置:首页 > Web前端 > JavaScript

javascript小技巧

2016-05-11 16:35 981 查看
本文参考:这里

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript