聊聊 JavaScript 所谓的坑

我想问问 mono有考虑过吗?

脚本语言了,其实还好了,最近在阅读Engine代码,发现你们很喜欢var a,b,c;这样来声明变量,不知道是不是为了能短点,但是不好读啊。

马克一下

我也回复一个吧,在es5的语法里,不能继承时间的date类。

mark

mark

JS因为历史原因遗留的一些坑确实很多,而且没有专门的一些资料来讲解这些坑,导致新手遇到问题就怀疑人生很正常。

0.1+0.2=0.30000000000000004 ?:sweat_smile:

这个我都是转成整数再除以十,之前也遇到过,小数计算有误

1.等号分==和===, 右移分>>>和>>, 感觉怪怪的
2.本来有一个null又有一个undefine应该是语言层面为了解决某些东西引进的, 在脚本里面还是很奇葩
3.看到说js支持到64位, 最大支持52位的整数, 想当然的用来做位移等操作, 出了问题才知道位移等操作只支持到32位

从java转过来的,刚用真的很操蛋,this总是忘记,然后函数里用self也很操蛋,虽然java里也不能直接用this但是可以类名.this方便一点。for循环里的异步操作也遇到过。确实坑哈哈哈,,遇到的坑有一次是遇到了,至今没有解决。不知道是不是自己疏忽。就是在一个节点的update里判断坐标,如果超过某个坐标就回调执行一个函数。当然得有个flag来标志下避免执行多次了。然后,,奇迹发生了。每次我的回调都会被执行两次。然后各种debug,发现我的flag在条件成立后变为了false,然后奇迹般地又自动变为了true,导致执行两次。我当时就懵逼了。后面直接把这项目删了,老子这暴脾气~

我反而觉得js是非常灵活的一种语言

这肯定是因为你添加了两个相同的组件在场景中