什么是表达式?
表达式是指能计算出值的任何可用程序单元。
表达式是一种JS短语,可使JS解释器用来产生一个值。
原始表达式
- 常量、直接量:3.14,“test”
- 关键字:null,this,true
- 变量:i,k,j
数组、对象的初始化表达式
- [1,2] 如: new Array(1,2);
- [1,4] 如: [1,undefined,undefined,4]
- {x:1,y:2} 如:var o =new Object(); o.x=1; o.y=2;
函数表达式
var fe =function(){};
(function(){console.log('hello world');})();
属性访问表达式
var o ={x:1};
o.x
o['x']
调用表达式
func()
对象创造表达式
new Func(1,2);
new Object();
运算符
按运算符的操作数数量可以分为:
- 一元:
+num
- 二元:
a+b
- 三元:
c?a:b
按功能可以将运算符分为:
- 赋值:
x+=1
- 比较:
a==b
- 算术:
a-b
- 位:
a|b
- 逻辑:
exp1 && exp2
- 字符串:
"a"+"b"
- 特殊:
delete obj.x
运算符?:
c ? a : b
var val = true ? 1 : 2 //val=1
运算符,
a , b //从左到右一次运算,逗号运算符不算常见
var val = ( 1 , 2 , 3 ); //val=3
运算符delete
delete obj.x
var obj = {x :1}
obj.x //1
delete obj.x
obj.x //undefined
运算符in
window.x = 1;
'x' in window; //true
运算符instanceof,typeof
{}instanceof Object //true
typeof 100 === 'number' //true
运算符new
function Foo(){}
Foo.prototype.x = 1;
var obj = new Foo();
obj.x; //1
obj.hasOwnProperty('x'); //false
obj._proto_.hasOwnProperty('x'); //true
运算符this
this; //window(浏览器)
var obj={
func:function(){return this;}
};
obj.func() // obj
运算符void
void 0 // undefined
void(0) //undefined