[收集贴] 晒晒你知道的 JavaScript 的那些坑……

2015-07-31 14:53:30 +08:00
 Mark24
4681 次点击
所在节点    JavaScript
37 条回复
Mark24
2015-07-31 14:54:15 +08:00
JavaScript引擎在行末自动添加分号的机制,产生的坑

如果你想的是这样子的代码:

function foo() {
return { name: 'foo' };
}

如果你不小心,多了换行了,像这样
或者这就是你心目中的“多行代码”的样子

function foo() {
return
{ name: 'foo' };
}


其实会变成:

function foo() {
return;
{ name: 'foo' };
}


正确的姿势是:

function foo() {
return { // 这里不会自动加分号,因为{表示语句尚未结束
name: 'foo'
};
}
RoshanWu
2015-07-31 14:57:37 +08:00
pelloz
2015-07-31 14:58:19 +08:00
数值精度不够,服务器返回的long类型的id会丢失精度,导致错误。最好直接使用String类型传数据。
ychongsaytc
2015-07-31 14:59:11 +08:00
Date
Mark24
2015-07-31 15:26:29 +08:00
@RoshanWu 十分感谢
thinkmore
2015-07-31 15:41:23 +08:00
**@RoshanWu** thanks
learnshare
2015-07-31 15:53:55 +08:00
@ychongsaytc Chrome 的 Date 和 IE 的 Date 严谨程度不同,的确坑

@Mark24 return 从来都不应该与它要返回的值分成两行写
est
2015-07-31 15:57:41 +08:00
sumhat
2015-07-31 16:17:08 +08:00
for 循环中的 closure 有问题,比如:

for (var i in elements) {
var element = elements[i];
doSomething(element, function() {
console.log(element.name);
}
}

log 出来永远是最后一个。
jprovim
2015-07-31 16:30:58 +08:00
@sumhat 必須這個Closure坑.
mouhong
2015-07-31 16:48:09 +08:00
@sumhat 这其实不能算 Closure 的坑,是 JavaScript 早期版本没有块级作用域的坑,如果用 strict mode 里的 let element = elements[i],就不会有这个问题。
forest520
2015-07-31 16:52:22 +08:00
nodejs的parseInt("000300"),猜猜结果是什么?
kenshinhu
2015-07-31 16:52:34 +08:00
还有值拷贝的坑
morethansean
2015-07-31 16:52:54 +08:00
@sumhat 这不是问题吧……这不是 feature 么……
bramblex
2015-07-31 16:57:56 +08:00
各种坑……以及各种坑我自己造的工具……
https://github.com/bramblex/BlxJSTK
civet
2015-07-31 16:58:09 +08:00
['10', '10', '10'].map(parseInt)
neetrorschach
2015-07-31 17:31:07 +08:00
好像js的正则不支持零宽断言
zonghua
2015-07-31 17:38:54 +08:00
@forest520 0.00300?
@kenshinhu == === != !== null undifine
ChefIsAwesome
2015-07-31 17:43:20 +08:00
(Num).toFixed(n) 居然返回的是字符串
zhea55
2015-07-31 17:50:29 +08:00
哪里坑了? 自动追加分号,这么好的功能。

没看到老外现在代码,好多都不加分号了。

不加分号的代码看着舒服多了啊。


https://github.com/feross/standard

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/209865

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX