谈谈运算符的优先级问题
1. 运算符在哪?
在我们小些时候的数学课本里,相信有一个情况我们都经历过,这便是运算,其涉及到数和数的变化和比较,就跟运算符离不开,加“+“,减“-”,乘”*“,除”/“等这几个算是运算符在我们的课本乃至生活中都算得上是家常便客了,当然这只是在学者初中的课程中的。其实在很多计算机基础语言中,也不可避免的会产生一些运算,而在运算的这个过程中,同样,也需要用到运算符。今天我想跟大家分享的是Javascript中的语言运算符的优先级以及一点点个人总结的巧记技巧。当然,这个东西网上都能搜到,这里仅仅是楼主的一些给大家的参考,其中蕴含的技术含量方面还请见谅见谅,哈,言归正传,那我们在js中会用到的运算符有哪一些呢,下面就来给大家分享一下:
2. 运算符的庐山真面目
常规的一个运算由两个部分组成:操作数和运算符;其中操作数就是你要对其施加运算的对象,当然,它叫做操作数,并不意味着真的只能是数字,也可以是字符串还有其他的数据类型,这只是个概念,一个运算要想正常进行的话,除开这个,就是运算符了,其中可以根据分类方式不同,从而划分出来的分类也不相同。它们有与"&&",或"||",非"!",还有大于">",小于"<",大于等于">=",小于等于"<=",还有等等于"==”这么一些,咳咳,当然这还不是全部。 由操作数的数量划分:一元运算符,二元运算符,三元运算符;如下:
<--
一元运算符有:++ -- !
二元运算符有:* / % + - > >= < <= == != ===
!== && || =
三元运算符有:条件?条件为true执行 :条件为false执行;
-->
由运算符自身的意义划分:算术运算符,逻辑运算符,关系运算符,相等运算符,赋值运算符,自增/自减运算符,条件运算符还有一个特殊运算符;一般来说我们用的时候也是按照这种划分方式,接下来我顺便将这些划分种类和运算符优先级发给大家一览:
/*
优先级从高到底
1. () 优先级最高
2. 一元运算符 ++ -- !
3. 算数运算符 先* / % 后 + -
4. 关系运算符 > >= < <=
5. 相等运算符 == != === !==
6. 逻辑运算符 先&& 后||
7. 条件运算符 ? : ;
8. 赋值运算符 =
*/
上面就是运算符种类以及它们的优先级排布,怎么样是不是觉得有点难记呢,其实我也是这么认为的,所以我就试图找点共同点来记忆这些运算符的优先级,也算是找到了一个不是方法的方法,我用一句口诀来概括:少先多后一二三,括号等号放两端。乘除余完算加减,算术过后比大小。等号多的往后移,理清与或再条件。咳咳咳,可能有点让大家见笑了,我自己也笑了,但是我觉得这还是能概括上面这些运算符的优先级,其中的名词代表的大多是一个种类,如一二三就是指一元二元三元运算符,算术指的就是算术运算符啦,大小代表关系运算符,第一次说的等号就是赋值运算符,还有等号多的是指相等运算符,相较于其他,就数它包含的等号最多了,有句话说的好,话糙理不糙嘛。好了在结尾,我觉得我有必要再喊一遍口号,不对,是口诀:
“少先多后一二三,括号等号放两端。乘除余完算加减,算术过后比大小。等号多的往后移,理清与或再条件。”
好了,上面就是本篇的精华部分了,希望能看到本处的人觉得这个还有点用处的话能不吝点个赞,也欢迎各位能在评论区留下你的宝贵意见唷。