学习js 优先级
以前很少关注js优先级 主要哦是技术菜鸟老加班没时间技术菜鸟
最重要的是记不住特点。。。。。。。。。。
1级
. [] ()
字段访问、数组索引、函数调用和表达式分组
通过观察可以发现
. 字段访问--》读取数据
[] 数组索引--》读取数据 ps [] 这个也可以创建空数组 不知道为啥没有算进去
() 括号 分为函数调用--》读取作用域
表达式分组
二级
++ -- - ~ ! delete new typeof void
一元运算符、返回数据类型、对象创建、未定义的值
所有一元运算符,如 ~ 运算符,以如下规则来求表达式的值:
- 如果将它用于 undefined 或 null 表达式,则产生一个运行时错误。
- 对象被转换成字符串。
- 如果可能,字符串被转换为数字。如果不能,则产生一个运行时错误。
- Boolean 值被当作数字(如果是 false 则为 0,如果是 true 则为 1)。
用该运算符来生成数字。
~ 运算符查看表达式的二进制表示法的值,并执行按位非操作。该操作的结果如下所示:
0101 (expression)
----
1010 (result)
表达式中的任何一位为 1,则在结果中相应位变为 0。表达式中的任何一位为 0,则在结果中相应位变为 1。
二级优先级里面 大部分是一元操作符 和后缀表达式外加一个new

第三极
* / %
相乘、相除、求余数
第三级 就简单了 乘除求余 元算
第四级别
+ - +
相加、相减、字符串串联
这里加法和减法 我理解 不知道为啥把字符串串联也单独拉出来。。。。。
加法作用于数字
+运算符作用于两个数字类型的操作数时表示加法,产生两个操作数之和。-运算符表示剑法,产生两个数字之差。
加法是满足交换律的运算,但是不总满足结合律。
加法遵循IEEE 754二进制双精度幅度浮点算法规则:
- 两个正负号相反的无穷之和为NaN。
- 两个正负号相同的无穷大之和是具有相同正负的无穷大。
- 无穷大和有穷值之和等于操作数中的无穷大。
- 两个负零之和为-0。
- 两个正零,或者两个正负号相反的零之和为+0。
- 零与非零有穷值之和等于非零的那个操作数。
- 两个大小相等,符号相反的非零有穷值之和为+0。
- 其它情况下,既没有无穷大也没有NaN或者零参与运算,并且操作数要么大小不等,要么符号相同,结果计算出来后会按照IEEE 754 round-to-nearest模式取到最接近的能表示的数。如果值过大不能表示,则结果为相应的正负无穷大。如果值过小不能表示,则结果为相应的正负零。ECMAScript要求支持IEEE 754规定的渐进下溢。
-运算符作用于两个数字类型时表示减法,产生两个操作数之差。左边操作数是被减数右边是减数。给定操作数a和b,总是有a–b产生与a + ( -b )产生相同结果。
第五级别
<< >> >>>
移位
左移一位相当于该数乘以2,左移2位相当于该数乘以2^2=4。上面举的例子15<< 2=60,即乘了4。但此结论只适用于该数左移时被溢出舍弃的高位中不包含1的情况。
15<< 2=60,即乘了4
8 << 1的值为8*2=16;
8 << 2的值为8*(2^2)=32;
8 << n的值为8*(2^n)。
>>(带符号右移)
右移一位相当于除2,右移n位相当于除以2的n次方。这里是取商哈,余数就不要了。
>>>(无符号右移)
第六级别
< <= > >= instanceof
小于、小于或等于、大于、大于或等于、是否为特定类的实例
第七级别
== != === !==
相等、不相等、全等,不全等
严格等于比较算法
比较 x===y,x 和 y 为值,需要产出 true 或 false。比较过程如下:
- 如果
Type(x)与Type(y)的结果不一致,返回 false,否则 - 如果
Type(x)结果为 Undefined,返回 true - 如果
Type(x)结果为 Null,返回 true - 如果
Type(x)结果为 Number,则- 如果 x 为 NaN,返回 false
- 如果 y 为 NaN,返回 false
- 如果 x 与 y 为同一个数字,返回 true
- 如果 x 为 +0,y 为 -0,返回 true
- 如果 x 为 -0,y 为 +0,返回 true
- 返回 false
- 如果
Type(x)结果为 String,如果 x 与 y 为完全相同的字符序列(相同的长度和相同的字符对应相同的位置),返回 true,否则,返回 false - 如果
Type(x)结果为 Boolean,如果 x 与 y 都为 true 或 false,则返回 true,否则,返回 false - 如果 x 和 y 引用到同一个 Object 对象,返回 true,否则,返回 false
此算法与 SameValue 算法在对待有符号的零和 NaN 上表现不同。
还有 几个级别

C++
用 ^ 运算符实现按位异或运算
![]()
expression1^expression2
参与运算两
值
两
相应bit位相同
则结
0
否则
1
即:
0^0 = 0![]()
1^0 = 1![]()
0^1 = 1![]()
1^1 = 0

学习js 优先级的更多相关文章
- 学习js回调函数
<!DOCTYPE HTML> <html> <head> <meta charset="GBK" /> <title> ...
- 学习 JS滚轮事件(mousewheel/DOMMouseScroll)
学习 JS滚轮事件(mousewheel/DOMMouseScroll) 1-1 滚轮事件兼容性的差异 IE,chrome,safari 浏览器都使用 onmousewheel, 只有firefo ...
- 初学者学习Javascript很吃力怎么办?到底该如何学习Js?
Js给初学者的印象总是那么的“杂而乱”,相信很多初学者都在找轻松学习Js的途径.在这里给大家总结一些学习Js的经验,希望能给后来的学习者探索出一条“轻松学习Js之路”. Js给人那种感觉的原因多半 ...
- 学习JS的这些日子——十二月总结
事实上非常想早就发表这篇十二月份的总结了,可是一直拖拖拉拉没有完毕.一直在想2015年都过去了,该不该再去 写这一篇2015年最后一个月的总结.还有就是2015年的年终总结能否够取代十二月的总结,后来 ...
- 学习js都学习什么?
前言:js(javaScript)是面向对象(OOP)的编程语言,目前不仅仅是客户端语言了,基予node可以做服务器端程序,那我们学习js都学习什么? 学习js,我们学习它的几部分组成 1.ECMAS ...
- 前端学习:JS(面向对象)代码笔记
前端学习:JS(面向对象)代码笔记 前端学习:JS面向对象知识学习(图解) 创建类和对象 创建对象方式1调用Object函数 <body> </body> <script ...
- 编程基础学习JS的入门教程
将JavaScript 插入网页的方法 使用<script>标签在网页中插入Javascript代码. 插入JavaScript 与在网页中插入CSS的方式相似.使用下面的代码可以在网页中 ...
- js的一些坑,持续增加,学习js应该注意的问题
大家来补充 1.变量类型模糊,容易出现问题; var a='1',b=1; a==b; //true a===b; //false 2.全局变量与函数内部变量同名时,在函数内部声明变量,声明位置虽然在 ...
- 深入学习JS执行--单线程的JS
一.介绍 随着js不断学习,你可能会慢慢的好奇,用了这么久的js,却不知道这js在浏览器怎么被执行的,很尴尬.所以,我查阅很多资料来总结JS的执行过程,也分享出来,和大家一起学习. 本篇主要讲单线程的 ...
随机推荐
- C# BlockCollection
1.BlockCollection集合是一个拥有阻塞功能的集合,它就是完成了经典生产者消费者的算法功能. 它没有实现底层的存储结构,而是使用了IProducerConsumerCollection接口 ...
- NGUI 学习笔记
1.NGUI中UI的深度关系(新版NGUI 3.9): 在同一个Panel中,不管同不同Altas,各个UI的顺序受Depth影响 在不同Panel中,UI的顺序受Panel的Depth影响 例如Pa ...
- myeclipse 第一步
今天查myeclipse的一个不常用快捷键的时候,意外发现了一个学习myeclipse开端的博文(别问我是怎么查到这篇博文的....两个字:顺手),感觉比较详细,特意记下来, 别人的分享博客: htt ...
- Python cumsums和cumprod函数
>>>a = np.array([1,2,3],[4,5,6]]) >>>a array([[1,2,3], [4,5,6]]) >>>a.cum ...
- 第2月第5天 arc invocation getReturnValue
http://blog.csdn.net/zengconggen/article/details/38024625
- shell--3.运算符
1.注意 原生bash不支持简单的数学运算,但是可以用其它命令来实现如 awk 和expr ,expr最常用 val=`expr 2 + 3` echo "结果 ${val}" # ...
- Nginx的继续深入(日志轮询切割,重写,负载均衡等)
Nginx的访问日志轮询切割 通常什么情况Nginx会把所有的访问日志生成到一个制定的访问日志文件access.log里面,但时间一长,日志个头很大不利于日志的分析和处理. 有必要对Nginx日志进行 ...
- 【GoLang】golang 最佳实践汇总
最佳实践 1 包管理 1.1 使用包管理对Golang项目进行管理,如:godep/vendor等工具 1.2 main/init函数使用,init函数参考python 1.2.1 main-> ...
- Reverse Integer
Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 public cl ...
- 告别我的OI生涯
本文章写于2008年12月15日. 随着2008noip的结束,我也结束了我的OI生涯. 信息竞赛也许是从小到大让我最最努力的一件事.我记得参加2006noip初赛前,每天中午为了上信息课都吃不上中午 ...
C++
用 ^ 运算符实现按位
两
值

两
0