当前位置: 首页 > 面试题库 >

赋值内的JavaScript AND运算符

齐乐逸
2023-03-14
问题内容

我知道您可以在JavaScript中执行以下操作:

var oneOrTheOther = someOtherVar || "these are not the droids you are looking for...";

其中变量oneOrTheOther将在第一表达式的值,如果它不是nullundefinedfalse。在这种情况下,它将被分配给第二条语句的值。

但是,oneOrTheOther当我们使用逻辑AND运算符时,变量将分配给什么?

var oneOrTheOther = someOtherVar && "some string";

someOtherVar非假的时候会发生什么?假的
时候会发生什么someOtherVar

只是学习JavaScript,我很好奇结合AND运算符的赋值会发生什么。


问题答案:

基本上,逻辑与运算符(&&),将返回第二操作数的值,如果第一个是 truthy ,它将返回第一操作数的值,如果它是由本身 falsy ,例如:

true && "foo"; // "foo"
NaN && "anything"; // NaN
0 && "anything";   // 0

需要注意的是 falsy
值是那些裹胁到false在布尔上下文中使用时,它们是nullundefined0NaN,一个空字符串,当然false,什么都强求来true



 类似资料:
  • 主要内容:基本赋值运算符,扩展后的赋值运算符赋值运算符用来把右侧的值传递给左侧的变量(或者常量);可以直接将右侧的值交给左侧的变量,也可以进行某些运算后再交给左侧的变量,比如加减乘除、函数调用、逻辑运算等。 Python 中最基本的赋值运算符是等号 ;结合其它运算符, 还能扩展出更强大的赋值运算符。 基本赋值运算符 是 Python 中最常见、最基本的赋值运算符,用来将一个表达式的值赋给另一个变量,请看下面的例子: 连续赋值 Python

  • 赋值运算符是指为变量或常量指定数值的符号。赋值运算符的符号为“=”,它是双目运算符,左边的操作数必须是变量,不能是常量或表达式。 其语法格式如下所示: 在 Java 语言中,“变量名称”和“表达式”内容的类型必须匹配,如果类型不匹配则需要自动转化为对应的类型。 赋值运算符的优先级低于算术运算符,结合方向是自右向左;不是数学中的等号,它表示一个动作,即将其右侧的值送到左侧的变量中(左侧只允许是变量,

  • C++提供了几个赋值运算符可以缩写赋值表达式。例如下列语句: c = c + 3 可以用加法赋值运算符(addition assignment operator)“+=”缩写如下: c += 3 +=运算符将运算符右边表达式的值与运算符左边表达式的值相加,并将结果存放在运算符左边表达式的值中。下列形式的语句: variable = variable operator expression; 其中

  • 问题内容: 最近我在玩Google的新编程语言Go 并想知道为什么赋值运算符在等号前面有一个冒号 ?语言的作者为什么要使用而不是 问题答案: 该符号既用作声明,又用作初始化。 相当于 您可能会问,为什么不像只使用任何脚本语言一样使用?好吧,那是为了避免错别字。

  • 在《 到底什么时候会调用拷贝构造函数?》一节中,我们讲解了初始化和赋值的区别:在定义的同时进行赋值叫做 初始化(Initialization),定义完成以后再赋值(不管在定义的时候有没有赋值)就叫做 赋值(Assignment)。初始化只能有一次,赋值可以有多次。 当以拷贝的方式初始化一个对象时,会调用拷贝构造函数;当给一个对象赋值时,会调用重载过的赋值运算符。 即使我们没有显式的重载赋值运算符,

  • C++ 重载运算符和重载函数 就像其他运算符一样,您可以重载赋值运算符( = ),用于创建一个对象,比如拷贝构造函数。 下面的实例演示了如何重载赋值运算符。#include <iostream> using namespace std; class Distance { private: int feet; // 0 到无穷 int inches; // 0 到 12 public: // 所需的