|
1
JavaScript引擎在行末自动添加分号的机制,产生的坑
如果你想的是这样子的代码: function foo() { return { name: 'foo' }; } 如果你不小心,多了换行了,像这样 或者这就是你心目中的“多行代码”的样子 function foo() { return { name: 'foo' }; } 其实会变成: function foo() { return; { name: 'foo' }; } 正确的姿势是: function foo() { return { // 这里不会自动加分号,因为{表示语句尚未结束 name: 'foo' }; } |
|
2
|
|
pellozJul 31, 2015
3
数值精度不够,服务器返回的long类型的id会丢失精度,导致错误。最好直接使用String类型传数据。
|
|
ychongsaytcJul 31, 2015
4
Date
|
|
thinkmoreJul 31, 2015
6
**@RoshanWu** thanks
|
|
learnshareJul 31, 2015
7
|
|
estJul 31, 2015
8
|
|
sumhatJul 31, 2015
9
for 循环中的 closure 有问题,比如:
for (var i in elements) { var element = elements[i]; doSomething(element, function() { console.log(element.name); } } log 出来永远是最后一个。 |
|
mouhongJul 31, 2015
11
@sumhat 这其实不能算 Closure 的坑,是 JavaScript 早期版本没有块级作用域的坑,如果用 strict mode 里的 let element = elements[i],就不会有这个问题。
|
|
forest520Jul 31, 2015
12
nodejs的parseInt("000300"),猜猜结果是什么?
|
|
kenshinhuJul 31, 2015
13
还有值拷贝的坑
|
|
morethanseanJul 31, 2015
14
@sumhat 这不是问题吧……这不是 feature 么……
|
|
bramblexJul 31, 2015
15
各种坑……以及各种坑我自己造的工具……
https://github.com/bramblex/BlxJSTK |
|
civetJul 31, 2015
16
['10', '10', '10'].map(parseInt)
|
|
neetrorschachJul 31, 2015
17
好像js的正则不支持零宽断言
|
|
ChefIsAwesomeJul 31, 2015 via Android
19
(Num).toFixed(n) 居然返回的是字符串
|
|
zhea55Jul 31, 2015
20
|
|
bramblexJul 31, 2015
21
@neetrorschach 也不支持命名分组
|
|
sneezryJul 31, 2015 via iPhone
23
0.1+0.2==0.3
|
|
dong3580Jul 31, 2015
25
@ChefIsAwesome
这个是大坑啊。。。计算精度问题, |
|
26
如果了解javascript解析/编译原理,就不会有这些问题。原理读得太少,上手就是操作,等发现问题了就把这些归类为坑。
|
|
dantJul 31, 2015
27
[1,2,3].map(parseInt) //=> [ 1, NaN, NaN ]
[1,2,3].map(function(x){return parseInt(x);}) //=> [ 1, 2, 3 ] |
|
kenshinhuAug 1, 2015
28
@zonghua 我记得有下在搞monngoose 时,返回的结果是Document类型,直接赋值一个变量时,再修改里的的元素是失效的,这个算是 值拷贝的问题吗?
|
|
29
@sneezry 0.1+0.2==0.3返回false不是js独有的坑呀,这是二进制无法精确表示小数导致的,C语言也有这个坑,PHP也有,Python也存在。
|
|
dcoderAug 1, 2015
30
<a href="http://stackoverflow.com/questions/4886632/what-does-var-that-this-mean-in-javascript">this that ... </a>
|
|
oscarzhaoAug 1, 2015
33
拷贝对象时,JSON.parse(JSON.stringify(obj))比较蛋疼
JSON.stringify 用在 map上面会输出为 [], 直接打印能显示出来 |
|
35
JavaScript排序坑
会把数字先转换为字符串,再用字符串去排序 …… 反人类 |
|
36
补充楼上,高清图片url:"
"具体描述 廖雪峰JavaScript教程,sort篇 http://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/0014351226817991a9c08f1ec0a45c99b9209bcfc71b8f6000 |
|
mingyunSep 4, 2015
37
Json.stringify ()会默认忽略 undefined 的 key
|