2282410507
侠客
侠客
  • 最后登录2020-04-25
  • 发帖数5
阅读:5894回复:0

[js]三元运算符优先级

楼主#
更多 发布于:2019-03-25 18:58
今天发表一个遇到的js的三元运算符优先级问题,如下




假设val已经声明,可定义为任何值。则下面js代码有可能输出的结果为:
console.log('value is' + (val != '0')  ? 'define') : 'undefine';




在解答这一题的时候,首先我们先理解什么是三元运算符,如名字一样是有三个操作数
语法:(条件判断)?(结果1):(结果2);
如果条件成立,则返回结果1,否则返回结果2。




在这里,三元运算符优先级是最低的,其次是加号,最后是括号,所以先执行val!='0',为true,在执行条件判断,以为前面是字符串,所以条件判断结果是字符串,字符串返回的布尔也是true,最后结果为define。
游客


返回顶部

公众号

公众号