此文章为转载,连接忘记了,转载一下以备之后看看,是否彻底正确还没有知 编码
1.delete 删除之前定义的对象属性或方法引用 对象
2.void 运算符对任何值都返回undefined 字符串
3. ++ – 字符串处理
4.一元加法(+) 特殊做用:能够将字符串转换成数字,它计算字符串的方式与parseInt()类似,主要不一样是只有对以"0x"开头的字符串,才把它转换成十进制的值,所以 +"010" == 10;+"0xB" == 11; it
5.一元减法(-) 与加法类似 字符编码
6.NOT(~) 引用
处理过程: 二进制
(1)把运算数字转换成32位数字 方法
(2)把二进制形式转换成它的二进制反码 移动
(3)把二进制反码转换成浮点数
NOT实质是对数字求负而后减1
7.AND(&)
8.OR(|)
9.XOR(^) 当只有一个数位存放的是1时,它才返回1
egg:
———————————————-
第一个数字第二个数字结果
1 1 0
1 0 1
0 1 1
0 0 0
———————————————-
10.左移运算(<<)
11.右移运算(>>)
12.无符号右移(>>>)
对于正数而言与>>无区别,可是对于负数来说,负数会被转换成正数处理,可是因为符号位的移动,总会获得一个很大的数字
13.Boolean运算符
1.逻辑Not
——————————-
运算数 结果
对象 false
数字0 true
数字0之外 false
null true
NaN true
undefined 发生错误
——————————-
2.逻辑And
———————————————-
运算数 结果
对象 && Boolean值 对象
两个都是对象 第二个对象
某个是null null
某个是NaN NaN
某个是undefined 错误
———————————————-
3.逻辑Or
———————————————-
运算数 结果
对象 && Boolean值 对象
两个都是对象 第一个对象
某个是null null
某个是NaN NaN
某个是undefined 错误
———————————————-
14.乘性运算符
1.乘法运算符
———————————————-
运算数 结果
某个是NaN NaN
Infinity乘以0 NaN
Infinity乘以0之外的数字 +-Infinity
Infinity乘以Infinity Infinity
———————————————-
2.除法运算符
———————————————-
运算数 结果
某个是NaN NaN
Infinity被Infinity除 NaN
Infinity被任何数除 Infinity
0除一个非无穷大的数 NaN
Infinity被0之外的任何数除 +-Infinity
———————————————-
15.加性运算符
常规:
———————————————-
运算数 结果
某个是NaN NaN
Infinity加上Infinity Infinity
-Infinity加上-Infinity -Infinity
Infinity加上-Infinity NaN
+0加上+0 +0
-0加上+0 +0
-0加上-0 -0
———————————————-
字符串处理:
———————————————-
运算数 结果
都是String 第二个字符串链接到第一个
只有一个String 转换另外一个字符串拼接
对象、数值、布尔值 调用toString()
null、undefined 调用String()
———————————————-
16.减法
———————————————-
运算数 结果
某个是NaN NaN
Infinity减Infinity NaN
-Infinity减-Infinity NaN
Infinity减-Infinity Infinity
+0减+0 +0
+0减-0 -0
-0减-0 +0
一个数是字符串、布尔值、null、undefined则执行Number()转换后进行计算
若是一个操做数是对象,则先调用对象的valueOf(),若是为NaN则为NaN,若是valueOf方法不存在,那么调用toString()后再进行转换
———————————————-
17.关系运算
———————————————-
若是两个都是数字,执行数字比较
若是两个都是字符串,比较字符编码
若是一个是数字,另外一个是字符串,则字符串转换为数字进行比较
若是一个操数是对象,则调用这个对象的valueOf方法,若是没有则调用toString方法进行转换。
若是一个操做数是布尔值,则先将其转换为数字后进行比较。
任何操做数与NaN比较都返回false
———————————————-
18.相等操做符
两个操做数不是同一个类型的状况下的处理:
———————————————-
若是一个操做数是布尔值,则在比较的时候转换成数值(false:0,true:1)
若是一个操做数是字符串,另外一个操做数是数字,则将字符串转换成数字
若是一个操做数是对象,另外一个不是,则调用对象的valueOf()方法,用获得的基本类型值按照前面的规则进行比较
这两个操做符进行比较时则要遵循下列规则
1) null和undefined是相等的
2) 要比较相等性以前,不能将null和undefined转换成其余任何值
3) 若是一个操做数是NaN,则相等操做返回false,而不相等返回true。更重要的是NaN与NaN也不相等
4) 若是两个操做数都是对象,则比较他们是否是同一个对象。若是两个操做数指向的是同一个对象则返回true,不然返回false
undefined != 0 (Number(undefined) 为NaN)
———————————————-
19.全等和不全等
———————————————-
只在两个操做数不通过转换就相等的状况下返回true
———————————————-
20.条件操做符
var max = a > b ? a : b;
21.赋值操做符
var max = 1;
22.逗号操做符
var num1 = 1,num2 =2;
var num = (5,1,3,0);//结果为0