Javascript逻辑运算符和字符串/数字
Javascript logical operators and strings/numbers
我不明白逻辑运算符是如何工作的。我知道它是如何处理布尔值的,但字符串或数字呢?
2 && 7
returns 7
"dog" && "cat"
returns "cat"
我明白了,若数字或字符串并没有相同的值,那个么就会返回第二个值。但为什么呢?我能在"现实世界"中使用它吗?
如果左手边为true,则计算为右手边。
如果左手边不为真,则计算为左手边。
CCD_ 1被评估为LHS。false
也是如此。
CCD_ 3被评估为LHS。false
也是如此。
true && false
评估为RHS手侧。false
也是如此。
true && true
评估为RHS。true
也是如此。
2 && 7
评估为RHS。false && true
0也是如此(这是真的)。
CCD_ 11被评估为LHS。0
也是如此(这是错误的)。
"cat" && "dog"
评估为RHS手侧。"dog"
也是如此(这是真的)。
||
以相同的方式工作,但如果为false,则返回LHS。
我能在"现实世界"中使用它吗?
使用它的主要方法是计算两个值是否都为true。这是操作员的重点。
(它还可以用作if
测试的简写,并用于确定在某个地方分配两个值中的哪一个)。
&&
运算符不返回布尔值,而是返回其一个操作数。因为操作数被求值为布尔值。由于2
是truthy,而7
是truthy,因此返回7
与返回true
相同,因为结果是1truthy。对于0 && 7
,它返回0
,因为这是false,这是预期的结果。
在布尔上下文中,此行为与返回true
或false
相同,但它允许在其他上下文中使用有用的行为。最常遇到的是:
foo = foo || 'bar';
如果||
(和&&
)将返回一个布尔值,那么您必须编写以下内容:
if (!foo) {
foo = 'bar';
}
或:
foo = foo ? foo : 'bar';
逻辑运算符如何工作在MDN逻辑运算符上有很好的解释
在"现实世界"中我能用它做什么?
您可以使用||运算符对多个键上的数组进行排序。
示例:
const myArray = [{ age: 25, name: 'Patrick' },
{ age: 22, name: 'Greta' },
{ age: 22, name: 'Fien' }];
myArray.sort((a, b) => (a.age - b.age) || a.name.localeCompare(b.name));
console.log('myArray=', JSON.stringify(myArray));
排序方法通常(不是在上面的例子中)返回1、0或-1,因此下面的内容可能有助于使其更容易理解。
console.log( 1 || 1); // 1
console.log( 1 || 0); // 1
console.log( 1 ||-1); // 1
console.log( 0 || 1); // 1
console.log( 0 || 0); // 0
console.log( 0 ||-1); //-1
console.log(-1 || 1); //-1
console.log(-1 || 0); //-1
console.log(-1 ||-1); //-1
此外,操作员的"短路评估"也是有益的。
- 使用正则表达式匹配长度为六个字符的字母数字字符串
- Javascript-使用“”将toDateStringMonth从文本字符串解析为数字字符串;如果“;vs“;开关”;
- 在数字字符串的最后两个数字上加上小数
- 在JavaScript中,增加字母数字字符串末尾的数字
- 如何对字母数字字符串值进行排序
- 从数字字符串中获取整数
- Regex用于字母数字字符串中的数字计数
- 如何使用 Javascript/jQuery 将数字字符串递增 +1
- 使用 javascript 计算数字字符串
- parseInt 用于分析数字字符串的替代方法
- 任何输入或文本区域中数字字符串的事件侦听器
- Javascript:生成唯一数字字符串的最佳方法是什么
- JavaScript 中的随机字母数字字符串
- Google Charts - hAxis 上的数字/字符串问题(Jquery ajax JSON 数据)
- Lodash _.sortByOrder 数字字符串
- JavaScript 中一位数数字字符串的总和
- 在JavaScript中将非数字字符串转换为数字
- 使用 Lodash 对数字字符串数组进行排序
- 检查数字字符串是否包含十进制
- 显示以数字字符串形式存在的类