作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
<分区>
在 JavaScript 中,我最近意识到您可以使用 OR ||
逻辑运算符进行赋值,我想知道这是否被认为是不好的做法。
特别是我有一些具有可选数组输入的函数,如果输入是 null
或 undefined
我应该将它设置为一个空数组 []
,如果它有内容,它应该获取内容。
我发现使用 OR 运算符的赋值可以完美地在一行中处理,它很干净。然而,这感觉像是一种可能被认为是不好的做法,或者可能有一些我没有考虑到的可怕陷阱。
另一种方法是简单的 if
检查,这通常是相当安全的。
我想知道使用下面看到的 ||
方法是否有任何我没有考虑的陷阱,虽然它在这种情况下有效,但我很想知道继续使用它是否有效 future ,或完全停止使用它。
https://jsbin.com/nozuxiwawa/1/edit?js,console
var myArray = ['Some', 'Strings', 'Whatever'];
// Just assign using OR
var pathOne = function(maybeAnArray) {
var array = maybeAnArray || [];
console.log(array);
}
// Assign using IF
var pathTwo = function(maybeAnArray) {
var array = [];
// Covers null and undefined
if (maybeAnArray != null) {
array = maybeAnArray;
}
console.log(array);
}
console.log('Path one:');
pathOne(myArray); // ['Some', 'Strings', 'Whatever']
pathOne(null); // []
console.log('\nPath two:');
pathTwo(myArray); // ['Some', 'Strings', 'Whatever']
pathTwo(null); // []
我是一名优秀的程序员,十分优秀!