1.表达式:是指能计算出值得任何可用程序单元。
是一种JS短语,可使JS解释器用来生产的一个值。
2.表达式:
2.1 原始表达式 :常量、直接量 3.14、“test”
关键字 null、this、true
变量 i、j、k
2.2 复合表达式:原始表达式+运算符+原始表达式 10 * 20
2.3 数组、对象的初始化表达式:
[1,2] new Array(1,2);
[1, , ,4] [1,undefined,undefined,4]
{x:1,y:2} var o = new Object(0;
o.x = 1; o.y=2;
2.4.函数表达式
var fe = function(){};
(function(){console.log('Hello world');})();
2.5.属性访问表达式
var o = {x:1};
o.x
o['x']
2.6.调用表达式
fun();
2.7.对象创建表达式
new Func(1,3);
new Object;
3.运算符
一元运算符 +num;
二元运算符 a + b;
三元运算符 c ? a : b
功能划分运算符:
赋值 x+=1
比较 a==b
算术 a-b
位 a | b
逻辑 exp1 && exp2
字符串 "a"+"b"
特殊 delete object.x
"," 逗号运算符 var val = (1,2,3)每一个值都参与运算 val = 3
delete 删除属性 var obj = {x:1};
obj.x; //1
delete obj.x;
obj.x; //undefined
Object.defineProperty 在IE9中使用 Object.defineProperty赋值想要删除某个属性需要看configurable如果等于true是可以使用delete删除属性的,如果等于false是不能删除属性的。
var obj ={};
Object.defineProperty(obj,'x',{
configurable:false,
value:1
});
delete obj.x;//false
obj.x; //1
设置全局变量
window.x = 1;
判断全局变量中是否有x这个属性
‘x’ in window;//true 没有属性返回 false;
new 运算符
function Foo(){
Foo.prototype.x = 1;
var object = 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(); //object
void 运算符
void 0 ;//undefined
void(0) ; //undefined