操作符之间的优先级(高到低):算数操作符 → 比较操作符 → 布尔(逻辑)操作符 → “=”赋值符号

发布时间 2023-11-15 12:01:11作者: 龙陌

执行以下程序,输出结果为()

var a = 4 >= 6 || true && 1 || false;
console.log(a);

A
true

B
false

C
1

D
4>=6

正确答案:C

赋值语句右侧的表达式含有关系运算符、逻辑运算符,其运算符的优先级是:关系运算符>逻辑运算符(先&&后||)。
因此,先执行关系运算:4 >= 6,返回结果为false,再执行逻辑运算的&&:true && 1,返回结果为1,
最后执行逻辑运算的||: false || 1 || false,false || 1的结果为1,1 || false的结果也为1,所以变量a的值为1,C选项正确。

操作符之间的优先级(高到低):算数操作符 → 比较操作符 → 布尔(逻辑)操作符 → “=”赋值符号

逻辑操作符中,逻辑与(&&)优先级高于逻辑或(||)

所以执行顺序为

① 4 >= 6,结果是false(比较操作符返回布尔值)

② true && 1,结果是1(逻辑与的规则:第一个操作数是真值,则返回第二个操作数)

原式变为 false || 1 || false(按正常顺序执行)

③ false || 1,结果是1(逻辑或的规则:第一个操作数是假值,则返回第二个操作数)

④ 1 || false,结果是1(逻辑或的规则:第一个操作数是真值,则直接返回第一个操作数)