布尔运算符如何工作||

how works boolean operator ||

本文关键字:工作 运算符 何工作 布尔      更新时间:2023-09-26

我通常使用这段代码来查看函数的参数是否未定义

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设置为第一个非空/非假实体