表达式是能计算出值的任何业务单元。
原始表达式:常量,直接量、关键字、变量
原始表达式和原始表达式可以通过运算符链接成符合表达式
函数表达式:
属性访问表达式:对定义好的表达式的属性进行访问
调用表达式:调用函数,等
堆箱创建表达式:
运算符
常用于表达式之间进行运算
三元运算符1
var a = c ? a : b;
delete运算符,删除对象。但是当定了了对象的configurable时,是无法删除的。1
2
3
4
5
6var obj = {}'
Object.defineProperty(obj,"x",{
configurable: false,value: 1}
);
delete obj.x;   //false
obj.x;   //1
in 运算符1
2window.x = 1;
"x" in window;  //true;
instanceof tyoeof运算符1
2{} instanceof Object;  //true
typeof 100 === 'number';   //true
new 运算符1
2
3
4
5
6
7function Foo(){
	Foo.prototype.x = 1;
	var obj = new Foo();
	obj.x;
	obj.hasOwnProperty("x");  //判断x是不是属于自己的对象
	obj._proto_.hasOwnProperty("x");  //判断是不是原型中的对象
}
this 运算符
void 运算符
var 语句
当使用循环时,循环使用的变量i在循环结束后仍然可以调用,即它为全局变量。1
2
3
4
5for (var i = 0; i < 5; i++) {
    console.log(i);   //0 1 2 3 4
}
console.log("-------------")  //-------------
console.log(i);  //5
当我们使用var a = b = 0来进行变量定义时,如果在局部变量中进行这样的定义,请注意,定义出的b = 0是全局变量。1
2
3
4
5function() {
	var a = b = 0;
	console.log(a + "," + b);  //0,0
}
console.log(b);  //0
try-catch 语句
对方不想和你说话,并想向你抛出一段异常。`
try{
    try{
        throw new Error(“oops”);
    }
    finally{
        console.log(“finally”);
    }
}
catch(ex){
    console.error(“outer”,ex.message);
}
