表达式和运算符

表达式

是一种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>

 

posted on 2015-11-04 00:07  cbwleft  阅读(172)  评论(0)    收藏  举报