在JSHint各种问题,我得到的消息follwing我的数组声明:在JSHint
jesuschrist["eng_male"] = [//tons of arrays here];
[ 'baby_jesus']比较好写的点号。
是不是说我应该把它写成baby.jesus
?
而且,我声明对象时,给了我一个问题:
jesuschrist = new Object();
JSHint这样说:
使用对象的文字符号{}。
在JSHint各种问题,我得到的消息follwing我的数组声明:在JSHint
jesuschrist["eng_male"] = [//tons of arrays here];
[ 'baby_jesus']比较好写的点号。
是不是说我应该把它写成baby.jesus
?
而且,我声明对象时,给了我一个问题:
jesuschrist = new Object();
JSHint这样说:
使用对象的文字符号{}。
它表明你的代码更改为:
jesuschrist = {};
jesuschrist.eng_male = [//tons of arrays here];
谢谢!为什么点表示法更好呢? – 2012-07-21 13:01:38
3个字以内,看起来更好。 – 2012-07-21 13:04:11
它更干净,它强调你正在处理一个对象而不是一个关联数组(尽管它的行为就像一个!)。 – JohnnyHK 2012-07-21 13:07:29
jShint告诉你使用做记号,因为你要去跟一个字符串(这是静态的)财产。因为属性标识符不会改变。
jesuschrist.eng_male //this wont change
可以访问使用[]的对象的属性,但然后传递属性名作为变量(其可以是动态的)
var prop = "eng_male";
jesuschrist[prop]; //this might be changed, depends on the prop value.
两个给出的例子是确定与JsHint。
那么,我无法改变这个值?这是一个变量。一个变量用于人类,而不是用于计算机(变量名称可以被人类看到,但不能被计算机看到,人类也可以看到像计算机这样的值) – 2012-07-21 17:05:35
你可以改变它,它只是编译器如何解释你的代码。当编译器进入jesuschrist.eng_male时,eng_male已经是您想要获得的属性的名称(因此它是'静态')。如果编译器到达jesuschrist [prop];道具可能是你想要的任何东西(因此是动态的)。实际上属性名称是静态文字时,对[]使用动态访问属性是一个冗余操作。这就是为什么JsHint说“最好用点符号来写..”。 – 2012-07-21 19:23:25
更有意义。而Closure编译器将我的代码作为0字节! – 2012-07-21 19:43:03
请在将来选择更适合的“无意义”的变量名称。 – 2014-04-01 02:27:07