表达式
1. 原始表达式 //常量、直接量、关键字、变量 3.14、"test"、null、i、k、j
2. 初始化表达式 //[1,2]、{x:1, y:2}
3. 函数表达式 //var fe = function(){}、(function(){})()
4. 属性访问表达式 //var o = {x:1}、o.x、o['x']
5. 调用表达式 //func()
6. 对象创建表达式 //new Func(1,2)、new Object
特殊运算符的种类:
1、条件运算符 c?a:b c为true 则取a,否则取b
2、逗号运算符 a,b 例如 var s = (1,2,3),则s依次赋值,最后输出为3
3、delete运算符 delete obj.x 删除对象obj中的x属性 在IE9下,obj中必须configurable:true 才可以删除,否则无效
4、in运算符 判断obj是否有值或window里是否有变量,返回布尔值 例如 attr in json 或 'document' in window
5、instanceof 判断对象类型 {} instanceof Object // true(返回布尔值)
6、new运算符 创建一个新对象 new obj / new array ...
7、this对象 全局用指向window,函数内指向函数本身,浮动指针
8、typeof 判断对象,返回对象类型 例如 typeof 100 === 'number' // true(判断对应类型字符串)
9、void 一元的,判断所有值,返回均为undefined
一般delete 运算符可以删除对象的属性,而如果使用方法Object.defineProperty(对象,'属性',{configurable:false})处理了对象,该属性就不会被删除,反之ture就是可以被删除。