###JavaScript表达式 ###JavaScript运算符 1、'===' 严格相等运算符(恒等运算符) 2、'!=' 对应 == 3、'!=='对应 === 对于对象的比较而言,是引用的比较,不是值的比较,对象和其本身是相等的,但和其他任何对象都是不相等,哪怕两个不同的对象具有相同数量的属性,相同的属性名和值,它们依然不相等。 对于具有相同含义且显示的字符也一样,但是其编码格式不同,=== 或 == 也不相同 字符串: 由16位整数值组成的序列
对象创建表达式如果不传入任何参数给构造函数,可以省略圆括号
-
"+"运算符:优先考虑字符串连接,如果其中一个操作数是字符串或者转化为字符串的对象,另一个操作数将会转化为字符串,进行字符串的连接操作,如果两个都不是类字符串,那么进行算数加法运算。
-
位运算符:
- 按位或(|) ,至少有一个操作数相应位位1,或者两个操作数相应位都是1,结果该位为1
- 按位异或(^),两个操作数中有一个为1,不能同时为1,结果该位为1
- 按位非(~),
- 左移(<<)
- 带符号右移(>>)
- 无符号右移(>>>)
-
比较运算符:只有数字和字符串才能真正执行比较操作。其他类型只能进行类型转换。具体转换规则:
- 对象类型:转换为原始值(先使用valueof,否则进行.toString)。
- 转换为原始值,如果至少有一个操作数不是字符串,两个操作数都将转换为数字记进行比较,如果其中有一个操作数是(或转换后)NaN,则比较结果总是false。
- 字符串比较是区分大小写,所有大写的ASCII字母都小于小写的ASCII字母。
- 相比加号运算符,比较运算符更偏爱转化为数字比较。只有在两个操作数都是字符串时,才会进行字符串的比较。
-
in运算符:
var point = {x:1, y:1}; "x" in point true -
instanceof运算符: 左侧对象是右侧类的实例,则表达式为true,否则false。
var d = new Date(); d instanceof Date; true理解: prototype(原型链)是javascript的继承机制。