Javascript笔记(基础转载)
此文章为转载,链接忘记了,转载一下以备以后看看,是否完全正确尚未知
1.delete 删除以前定义的对象属性或方法引用
2.void 运算符对任何值都返回undefined
3. ++ –
4.一元加法(+) 特殊作用:可以将字符串转换成数字,它计算字符串的方式与parseInt()相似,主要不同是只有对以"0x"开头的字符串,才把它转换成十进制的值,因此 +"010" == 10;+"0xB" == 11;
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