表达式和运算符
表达式
是一种JS短语,可使JS解释器用来产生一个值。
原始表达式
常量、直接量:3.14,"test"
关键字:this,null,true
变量:x,y,z
数组、对象的初始化表达式
[1,,,4],{a:1}
属性访问表达式
var o={x:1}; o.x; o['x'];
函数表达式
var fe=function(){}; (function(){
console.log('hello');
})();
函数调用、对象创建表达式
fe(); new Object;//可以省略括号
运算符
一元:+num
二元:a+b
三元:c?a:b
赋值、比较、算数、位、逻辑、字符串+、特殊运算符
运算符delete
var obj = {}; Object.defineProperty(obj, 'x', { configurable : false, value : 1 }); delete obj.x; // false obj.x; // 1
运算符,
逗号运算符用于对两个表达式求值,并返回后一个表达式的值。
var val=(1,2,3);//3
运算符in
'console' in window;//true
运算符typeof、instanceof
({}) instanceof Object;//true
typeof Infinity==='number';//true
运算符void
void运算符的作用是执行一个表达式,然后返回undefined。
void 0 // undefined void (0) // undefined
上面是void运算符的两种写法,都正确。建议采用后一种形式,即总是使用括号,因为void运算符的优先性很高。
这个运算符主要是用于书签工具(bookmarklet)或者用于在超级链接中插入代码,目的是返回undefined可以防止网页跳转。
javascript:void window.open("http://example.com/")
<!--比如,下面是常用于网页链接的触发鼠标点击事件的写法。--> <a href="#" onclick="f();">文字</a> <!--上面代码有一个问题,函数f必须返回false,或者onclick事件必须返回false,否则会引起浏览器跳转到另一个页面。--> <script type="text/javascript"> function f(){ // some code return false; } </script> <!--或者写成--> <a href="#" onclick="f();return false;">文字</a> <!--void运算符可以取代上面两种写法。--> <a href="javascript:void(0)" onclick="f();">文字</a>
浙公网安备 33010602011771号