4.1 原始表达式
例如:true,false,null,this等等(ECS5严格模式下未初始化的变量会抛出一个引用错误)
4.2 对象和数组的初始化表达式
var oArray=[1,2,3,4];
var oObject={ x:2,y:3 };
4.3 函数定义表达式
var square=function(x){ return x*x; }
4.4 属性访问表达式
var o={x:1}; o.x或o['x']
var a=[1]; a[0]
4.5 调用表达式
function fc(){} fc();调用函数或方法的表达式
4.6 对象创建表达式
new Object();new Date()
4.7 运算符概述
特殊记忆 : delete 删除属性 ;typeof 检测操作数类型; void 返回undefined值 ;instanceof 测试对象类 ;in 测试属性是否存在
4.7.1 操作数的个数
一元运算符,二元运算符,三元运算符: 1:2?3
4.7.2 操作数类型和结果类型
4.9.3 in运算符
作用:检测对象是否拥有指定属性
in运算符希望它的左操作数是一个字符串或可以转换为字符串,希望它的右操作数是一个对象。如果右侧的对象拥有一个名为左操作数值得属性名,那么表达式返回true,例如:var point={x:1,y:2}; "x" in point =>true:对象有一个名为"x"的属性,var data=[7,8,9];3 in data =>false:没有索引为3的元素
4.9.4 instanceof 运算符
作用:检测实例对象的_proto_是否指向指定对象
instanceof运算符希望左操作数是一个对象,右操作数标识对象的类。如果左侧的对象是右侧类的实例,则表达式返回true。
var d= new Date(); d instanceof Date() =>true:d是由Date()创建的实例
=>所有的对象都是Object的实例
4.9.5 typeof 运算符
x typeof x
undefined "undefined"
null "object"
true,false "boolean"
数字,NaN "number"
字符串 "string"
函数 "function"
内置对象 "object" 详细介绍:http://www.jb51.net/article/27855.htm
宿主对象 由编译器各自实现的字符串,但不是"undefined"、"boolean"、"number"或"string"
4.9.6 delete 运算符
作用: 用来删除对象属性或者数组元素。
4.9.7 void 运算符
作用: 返回一个undefined值。
4.9.8 eval 运算符
作用:包含执行代码片段的字符串进行编译。eval详解:http://www.cnblogs.com/fishtreeyu/archive/2011/11/05/2237190.html