表达式是能计算出值的任何业务单元。
原始表达式:常量,直接量、关键字、变量
原始表达式和原始表达式可以通过运算符链接成符合表达式
函数表达式:
属性访问表达式:对定义好的表达式的属性进行访问
调用表达式:调用函数,等
堆箱创建表达式:
运算符
常用于表达式之间进行运算
三元运算符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);
}