转载请注明出处链接http://blog.huanghanlian.com/article/5b698e88b8ea642ea9213f4a表达式与运算符JavaScript表达式表达式参考计算购买任何可用的程序单元。-一个wiki表达式是一个JS短语,可以被JS解释器用来产生一个值。——《JS权威指南》JavaScript运算符三元运算符c?a:bvarval=true?1:2;//val=1//如果val的值为true,则返回冒号前的值,如果为false,则取冒号右边的值。逗号运算符a,bvarval=(1,2,3);//val=3//很少见,它会从左到右计算表达式的值,最后取最右边的值。删除运算符deleteobj.x;varobj={x:1};obj.x;//1删除obj.x;obj.x;//undefined//delete操作符是删除对象上的属性,变量obj,obj.x被删除了。并非对象上的所有属性都可以成功删除。varobj={};Object.defineProperty(obj,'x',{configurable:false,value:1});deleteobj.x;//假对象.x;//1onlyifconfigurable:true,为真可以删除。在运算符window.x=1;//在window中创建一个全局变量xas1x;//true判断是否有xinstanceof,typeofoperator{}instanceofObject//true判断对象类型,根据原型链typeof100==='number'//true返回字符串,一般为原始类型,或函数对象。新的运算符函数Foo(){};//创建一个函数构造函数,或者创建一个空函数Foo.prototype.x=1;//原型属性xvarobj=newFoo();//创建一个新对象objobj.x;//1现在可以在原型属性x中得到1obj.hasOwnProperty('x');//false判断这个属性是在这个对象上还是在这个对象的原型链上。当然这个x并不是直接在对象上的Properties,obj.__proto__.hasOwnProperty('x');//true获取对象原型。可以发现x是对象原型上的属性,不是对象本身的属性。这个运营商这个运营商;//全局this下的窗口(浏览器)将指向winvarobj={func:function(){returnthis;}};obj.func();//obj//如果对象中的值是函数,那么在这样的函数中,this会指向对象本身。voidoperatorvoidoperator是一个一元运算符,void0//undefinedvoid(0)//undefined//返回undefined,不管值是多少
