Open felix-cao opened 5 years ago
圆括号运算符也叫分组运算符,它有两种用法:
把表达式放在圆括号之中,将返回表达式的值
console.log((1)); //1 console.log(('a')); //'a' console.log((1+2)); // 3
把对象放在圆括号之中,则会返回对象的值,即对象本身
var o = {p:1}; console.log((o));// Object {p: 1}
将函数放在圆括号中,会返回函数本身。如果圆括号紧跟在函数的后面,就表示调用函数,即对函数求值
function f(){return 1;} console.log((f));// function f(){return 1;} console.log(f()); // 1
[注意]圆括号运算符不能为空,否则会报错
();//SyntaxError: Unexpected token )
由于圆括号的作用是求值,如果将语句放在圆括号之中,就会报错,因为语句没有返回值
console.log(var a = 1);// SyntaxError: Unexpected token var console.log((var a = 1));// SyntaxError: Unexpected token var
void是一元运算符,它出现在操作数之前,操作数可以是任意类型,操作数会照常计算,但忽略计算结果并返回undefined。由于void会忽略操作数的值,因此在操作数具有副作用的时候使用void来让程序更具语义
console.log(void 0); // undefined console.log(void(0)); // undefined
由于undefined并不是一个关键字,其在IE8-浏览器中会被重写,在高版本函数作用域中也会被重写;所以可以用void 0 来替换undefined
var undefined = 10; console.log(undefined);//IE8-浏览器下为10,高版本浏览器下为undefined function t(){ var undefined = 10; console.log(undefined); } console.log(t());//所有浏览器下都是10
这个运算符最常用在客户端URL——javascript:URL中,在URL中可以写带有副作用的表达式,而void则让浏览器不必显示这个表达式的计算结果。例如,经常在HTML代码中的标签里使用void运算符
<a href="javascript:void window.open();">打开一个新窗口</a>
阻止默认事件的方式是给事件置返回值false
//一般写法 <a href="http://example.com" onclick="f();return false;">文字</a>
使用void运算符可以取代上面写法
<a href="javascript:void(f())">文字</a>
一、圆括号运算符
圆括号运算符也叫分组运算符,它有两种用法:
把表达式放在圆括号之中,将返回表达式的值
把对象放在圆括号之中,则会返回对象的值,即对象本身
将函数放在圆括号中,会返回函数本身。如果圆括号紧跟在函数的后面,就表示调用函数,即对函数求值
[注意]圆括号运算符不能为空,否则会报错
由于圆括号的作用是求值,如果将语句放在圆括号之中,就会报错,因为语句没有返回值
二、void运算符
void是一元运算符,它出现在操作数之前,操作数可以是任意类型,操作数会照常计算,但忽略计算结果并返回undefined。由于void会忽略操作数的值,因此在操作数具有副作用的时候使用void来让程序更具语义
2.1 作用之替代undefined
由于undefined并不是一个关键字,其在IE8-浏览器中会被重写,在高版本函数作用域中也会被重写;所以可以用void 0 来替换undefined
2.2 作用之客户端URL
这个运算符最常用在客户端URL——javascript:URL中,在URL中可以写带有副作用的表达式,而void则让浏览器不必显示这个表达式的计算结果。例如,经常在HTML代码中的标签里使用void运算符
2.3 作用之阻止默认事件
阻止默认事件的方式是给事件置返回值false
使用void运算符可以取代上面写法