执行以下程序,输出结果为()
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(逻辑或的规则:第一个操作数是真值,则直接返回第一个操作数)
标签:逻辑,优先级,操作数,运算符,操作符,&&,false,高到 From: https://www.cnblogs.com/longmo666/p/17833534.html