相关疑难解决方法(0)

parseInt vs unary plus - 何时使用哪个

这一行有什么区别:

var a = parseInt("1", 10); // a === 1
Run Code Online (Sandbox Code Playgroud)

这条线

var a = +"1"; // a === 1
Run Code Online (Sandbox Code Playgroud)

这个jsperf测试显示,当前的chrome版本中的一元运算符要快得多,假设它是针对node.js的!

如果我尝试转换不是数字的字符串都返回NaN:

var b = parseInt("test" 10); // b === NaN
var b = +"test"; // b === NaN
Run Code Online (Sandbox Code Playgroud)

那么我什么时候应该优先使用parseInt一元加(尤其是在node.js中)???

编辑:双波浪运算符的区别是什么~~

javascript node.js

135
推荐指数
3
解决办法
3万
查看次数

做常见事的javascript习语

我已经编程了JS多年,我仍然在寻找新的快捷方式.我想知道是否还有更多我不知道的事情.

以下是我所知道的捷径:

编辑:我同意你通常不应该做这些事情,并且可以有一种更好的方式来描述它不那么广泛,但我能做的最好的就是通过例子来描述它.


而不是这个

if("foobar".indexOf("foo") > -1) 
Run Code Online (Sandbox Code Playgroud)

做这个

if(~"foobar".indexOf("foo"))
Run Code Online (Sandbox Code Playgroud)

而不是这个

var foo = Math.floor(2.333)
Run Code Online (Sandbox Code Playgroud)

做这个

var foo = ~~2.333
Run Code Online (Sandbox Code Playgroud)

而不是这个

var foo = parseFloat("12.4")
var bar = parseInt("12", 10)
Run Code Online (Sandbox Code Playgroud)

这样做(不是这个的忠实粉丝)

var foo = +"12.4"
var bar = +"12"
Run Code Online (Sandbox Code Playgroud)

而不是这个

if(isNaN(foo)
Run Code Online (Sandbox Code Playgroud)

做这个

if(foo != foo)
Run Code Online (Sandbox Code Playgroud)

而不是这个

(function(){ ... ])()
Run Code Online (Sandbox Code Playgroud)

做这个

!function(){ ... }()
Run Code Online (Sandbox Code Playgroud)

通过为其添加前缀将任何内容转换为布尔值 !!

var isFoo = !!foo
Run Code Online (Sandbox Code Playgroud)

在那里,你有它,我的事情列表永远不会对你的同事.

还可以在这里添加其他内容吗?

javascript

8
推荐指数
2
解决办法
2244
查看次数

标签 统计

javascript ×2

node.js ×1