JS 运算符
1.一元运算符
+num
2.二元运算符
a + b
3.三元
c ? a : b
4.赋值运算符
x += 1
y -= 2
5.比较运算符
a == b
6.算术运算符
a - b
7.位运算符
a | b
8.逻辑运算符
exp1 && exp2
9.字符串
"a" + "b"
10.特殊运算符
delete obj.x
// 例子
var obj = {x: 1}
obj.x // 1
delete obj.x
obj.x // undefined
// IE9+
var obj = {}
Object.defineProperty(obj, 'x', {
enumerable: false, // 是否能被 for in 遍历
configurable: false, //是否能被 delete 删除
writable: false, // 是否能被改写
value: 1
})
delete obj.x // false
obj.x // 1
11.逗号运算符
// 取最右边的值
var val = (1, 2, 3) // val = 3
12.in 运算符
window.x = 1
// 判断对象是否有这个属性
'x' in window // true
13.typeof 和 instanceof
// 判断对象类型,基于原型链去判断的
{} instanceof Object // true
// typeof 判断原始类型和函数类型
typeof 100 === 'number' // true
14.new 运算符
// hasOwnProperty 只在当前对象判断,而 in 关键字会跑到父级对象里面去找
function Foo(){}
Foo.prototype.x = 1
var obj = new Foo()
obj.x // 1
obj.hasOwnProperty('x') // false
obj.__proto__.hasOwnProperty('x') // true
15.this 运算符
this // window
var obj = {
func: function() {return this}
}
obj.func() // obj
16.void (一元)运算符
// void 都返回 undefined
void 0 undefined
void(0) undefined