标题有点大了,不过问题还是蛮有意思的
来公司一段时间了,看了不是java和js的编程规范,有几点不理解,求指导。
1、禁止使用for-in语句枚举数组。(这个好像说的是不安全还是怎么回事)。
2、禁止使用with语句。(貌似我没这样用过)。
3、业务代码禁止使用eval。
禁止使用Function 构造器,它是另外一种形式的eval。
禁止给setTimeout 或者setInterval 传递字符串类型参数,否则这两个方法的行为就类似于eval。
(这只知道eval可能把字符串当作代码运行,后面说的完全不知道什么意思)
4、禁止使用new Object(),必须用{}替代。
5、禁止使用new Array(),必须用[]替代。
好吧,先说这些了。至于公司名,他出的手机人称剁手兴,不敢多说了
来公司一段时间了,看了不是java和js的编程规范,有几点不理解,求指导。
1、禁止使用for-in语句枚举数组。(这个好像说的是不安全还是怎么回事)。
2、禁止使用with语句。(貌似我没这样用过)。
3、业务代码禁止使用eval。
禁止使用Function 构造器,它是另外一种形式的eval。
禁止给setTimeout 或者setInterval 传递字符串类型参数,否则这两个方法的行为就类似于eval。
(这只知道eval可能把字符串当作代码运行,后面说的完全不知道什么意思)
4、禁止使用new Object(),必须用{}替代。
5、禁止使用new Array(),必须用[]替代。
好吧,先说这些了。至于公司名,他出的手机人称剁手兴,不敢多说了
你去看看这书你明白了。eval,with这些东西容易出错,所以不用。 就是这样。
setTimeout("hello()",5000);应该这个意思,应该写成setTimeout(hello,5000); 至于传递字符串,底层js实现原理不太清楚,应该不是每个浏览器都按照eval来动态执行吧。。这么多个浏览器核心
4,5应该是基于代码压缩,{}和[]代码量少点。。
就是说不能是用闭包了,同样也不能使用任何一款框架工具了
那么 ajax 是否可以用呢?取到的数据也可能是有害的哟
width 会改变作用域链的层级关系 导致效率降低
eval赋字符串存在安全问题
new Function存在效率问题
应该等同于 {} [];直接 {} [],简单,字符数少,js 文件会稍小
with从没用过,不清楚。
eval,可以认为是危险品。不能随意使用,能不用尽量不要使用
至于new,这个就不清楚了。
2.with语句会改变当前上下文,也就是this指向会改变
3.eval会破坏作用域。
4,5.字面量需要较少的空间
其它的 都还好吧。
嗯,最近我也看这本书了,在“鸡肋”与“糟粕”部分对javascript语法缺点吐槽的很给力。
LZ我有这书的电子版,LZ要的话留邮箱吧。
for(var i = 0; i < obj.length; i++){
obj[i].属性;
}
嗯,最近我也看这本书了,在“鸡肋”与“糟粕”部分对javascript语法缺点吐槽的很给力。
LZ我有这书的电子版,LZ要的话留邮箱吧。
[email protected] 求书
new Object 的效率低于{}
new Array 的效率低于[]
for(var i = 0; i < obj.length; i++){
obj[i].属性;
}
var obj = {name:"jack",age:100};
for(var item in obj){
console.log(obj[item]);
}那这种用for怎么处理呢? 如果不知道obj的属性名的情况下
每个次执行都要重复创建,
因些,作用域破坏了代码的可读性,效率低下
for(var i = 0; i < obj.length; i++){
obj[i].属性;
}
var obj = {name:"jack",age:100};
for(var item in obj){
console.log(obj[item]);
}那这种用for怎么处理呢? 如果不知道obj的属性名的情况下
1、禁止使用for-in语句枚举数组
规范只是禁止forin枚举数组
其实可以用forin来枚举obj的。
new Object 的效率低于{}吗?new Array 的效率低于[]吗?我不晓得哦。
我觉着主要原因是Object和Array是可以被复写的。
举个例子吧,万一在你写的代码之前出现过下面这句话:
var Array = function(){
alert("Hello,foo");
}
你再写一句
var array = new Array();
哇靠,大哥你干了什么,谁能知道。
呃,高手肯定不会起这样的名字,但是高手也得防队友啊,谁也不知道你声明的new Arary是不是你真心想要的Array。