JavaScript运算符的优先级(案例讲解)

先来看看这道题。。。

下边代码输出的结果是( )

var val = ‘smtg’;
console.log('Value is ’ + (val === ‘smtg’) ? ‘Something’ : ‘Nothing’);

A: Value is Something
B: Value is Nothing
C: NaN
D: other

相信很多同学第一反应都会选A吧,但是答案是D。为什么呢?这就需要考虑到JavaScript运算符的优先级了。

因为连接符的优先级高于三元运算符,所以该题目相当于:'Value is ' + true ? 'Something' : 'Nothing',返回的结果应该是Something

如果我们想先进行三目运算,需要用圆括号把它括起来:'Value is ' + (val === 'smtg' ? 'Something' : 'Nothing'),这时候返回的结果就是:Value is Something

再来看一道题。。。

var i=100
i++;
var j=i++;
var y=++j;
console.log(y,i,j)

这道题考的是一元运算符++前置和后置时的执行顺序,简单来说,后置的++,先使用,再自加;前置的++,先自加,再使用

题目中执行var j=i++;时,i++已经执行过一次,所以 i=101, j=101,执行完毕后再执行 i++,此时 i=102。

执行var y=++j;时,先进行++运算,此时 j=102,赋值给 y,因此这道题的答案为:102,102,102。

想要了解更多运算符的优先级,可以查阅官网–>Web开发技术>>运算符优先级,这里就不做总结了。如果有同学对JavaScript中的操作运算符不熟悉,可以看我之前的文章–>JavaScript学习笔记(三)–操作运算符,希望可以帮助到你!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值