- 给一个未声明的变量赋值,该变量会被自动创建为全局变量,在JS开发中,应该避免使用全局变量。所以,在给一个变量赋值时,一定要var声明后再使用。
- 避免使用eval()或Function构造函数;eval()和Function构造函数被称为脚本引擎,每次执行它们的时候都必须把源码转换成可执行的代码,这种操作代价挺大的。
- 不要向setTimeout()和setInterval()方法里传递字符串。如果在这两个方法里传递字符串,那么字符串会像eval那样重新计算,这样速度就会变慢。
- 如果在全局区域里使用with()插入变量,那么,万一有一个变量名字和它名字一样,就很容易混淆和重写,应该避免这种写法。
话说踩100个坑就算是打怪升级成功了。前端这条路很长,需要自己不断雕琢……
No1:使用===替换==,隐患有时候就是这样出现的。
|
|
No2:给数组创建一个随机项
|
|
No3:在特定范围里获得一个随机数
|
|
No4:在数字0和最大数之间生成一组随机数
|
|
No5:数字数组随机排序
|
|
No6:数组追加
|
|
No7:将参数对象转换为数组
|
|
No8:验证一个给定参数是否为数字
|
|
No9:验证一个给定的参数为数组
|
|
No10:从数字数组中获得最大值和最小值
|
|
No11:清空数组
|
|
No12:使用逻辑符号进行判断
|
|
No13:And设置默认值
|
|
No14:使用map遍历数组
|
|
No15:对小数进行取舍
|
|
No16:逗号操作符
|
|
No17:计算或查询缓存变量
|
|
No18:避免负向索引
|
|
No19:避免使用eval()或Function构造函数
|
|
No20:不要向setTimeout()和setInterval()方法里传递字符串
|
|
No21:给XMLHttpRequests设置timeouts
|
|
No22:多级判断用switch语句
|
|