早起的菜鸟

FEer---思考,感悟,总结,翻译,分享

导航

【小打小闹】 js 操作符 小发现

每篇推荐:

js网站分享:Badass JavaScript  --收集js相关资源,包括库,新鲜资讯等

正文:

首先,俺js水平有限,可能你已经知道了这个用法,可不要喷我。

我们都知道,在if条件语句中 如果不加大括号,只对第一条语句有效,如果你需要添加多条,那么需要加上大括号。

那如果我嫌加得麻烦,可以使用js操作符。这点在使用调试时,尤其方便。

原始代码:

if(1){
console.log('already existed');
console.log('new added');//for debug
}

使用操作符:

if(1)
	console.log('already existed') | console.log('new added');	

可以任意加:console.log('already existed') | console.log('new added') | console.log('new added 1') | ...; 下面列举出 起作用的操作符:

+
-
/
*
|
&
%
^
>
<
>>
<<
>>>
>=
<=
==
===

可以看到, && 和 || 这2个逻辑操作符不包括进来,不过并不代表他们不起作用,只是在某些情况,他们不会得到预期结果。这是因为 && 本身运算规则的特点 。

所以,在使用 && 时,只有所有操作数在返回值为true值(包括执行类型转换后的true值)时,才起作用; 在使用 || 时,如果其中一个操作数返回true值,得到的结果也不是预期的。

针对 && 测试代码如下:

function test(){
	return 'abc';//返回值为string
}

if(1){
	console.log('before') && test(); 
	test() && console.log('after');
}

output: before
        after
function test(){
//返回值为undefined
}

if(1){
	console.log('before') && test();
	test() && console.log('after');
}

//output : before

为了可读性,推荐使用 + | & 这3个操作符,不过,随你。

性能如何:

 

另外,针对其中一些运算符,有性能测试 ,点击这里查看。

参考资料:

原文:JavaScript if…else statements without curly brackets

posted on 2011-12-17 14:42  早起的菜鸟  阅读(1306)  评论(3编辑  收藏  举报