布尔运算符如何工作||
how works boolean operator ||
我通常使用这段代码来查看函数的参数是否未定义
var = (typeof var != "undefined")? var : "othervalue";
but,其他使用布尔运算符
var = var || "othervalue";
然而,我已经看到,如果检查和布尔false参数的值没有正确处理。
// assuming it is false
var = var || "othervalue"; // will be "OTHERVALUE"!!!
我需要知道这个操作符在上下文中到底是什么
返回终止条件的最后一个表达式。它与检查typeof arg == "undefined"
不一样,因为左边的任何假值都会跳转到RHS。
||如果第一个表达式为假,运算符将返回最后一个表达式:
var test = first || "second";
// error will be raised, because first variable is not defined
var first;
var test = first || "second";
// test = "second", because first is falsely
var first = "first";
var test = first || "second";
// test = "first"
我总是使用带有typeof表达式的三元操作符,因为忘记定义变量是很常见的事情:
var test = 'undefined' != typeof(first) && first ? first : "second";
// test = first if first is defined and true
我相信这是一个perl风格选择的第一个true(下面的伪代码)
eat_breakfast = null
eat_dinner = null
eat_lunch = "eating lunch"
myVal = eat_breakfast || eat_dinner || eat_lunch
print myVal
将打印"正在吃午饭"
它将myVal设置为第一个非空/非假实体
相关文章:
- ||(OR)运算符如何在赋值中工作
- Javascript:++运算符如何工作
- 布尔表达式-与AND、OR逻辑运算符混淆以及它们的工作方式
- JavaScript运算符+dons'工作不正常
- 无法在 IE 9 中传递此运算符的值,而它在 IE7 和 IE8 中工作正常
- 切换 !运算符不在页面加载 JavaScript 上工作
- 缺少参数 &&&||括号中的运算符,但仍在工作
- Javascript:逗号运算符,var,以及为什么它以这种方式工作
- RxJs 5 share() 运算符如何工作
- Null-Coalescing 运算符 (??) 在 Spider 中是如何工作的
- JavaScript - 为什么加法赋值运算符不能按预期工作
- JavaScipt的数据类型转换对于“==”运算符究竟是如何工作的
- 按位运算符在 2^31 后停止工作
- 后缀增量在JavaScript中遇到加法(+)运算符时是如何工作的
- Javascript中的逗号运算符是如何工作的
- 正则表达式中的(?!)运算符是如何工作的
- 比较运算符-大于或等于-不工作
- jQuery - not 运算符无法按预期工作
- 这些逻辑运算符是如何工作的
- 为什么“;new Date().toString()"给定Javascript运算符优先级的工作