我刚观看了Douglas Crockford关于2009年着作"JavaScript:The Good Parts"的演讲视频.
在视频中,他解释说以下块是危险的,因为它会产生无声错误:
return
{
ok: false
};
Run Code Online (Sandbox Code Playgroud)
它实际上应该这样写(强调虽然看似相同,但行为差异至关重要):
return {
ok: false
};
Run Code Online (Sandbox Code Playgroud)
你可以在32分钟左右看到他的评论:http://www.youtube.com/watch?v = hQVTIJBZook&feature = player_embedded#!&start = 1920
我以前没有听过这个,并且想知道这个规则是否仍然适用,或者自从这个陈述发表以来JavaScript语言的这种要求是否被克服了.
我发现这非常有趣,因为我没有以这种方式编写代码,并想检查这些信息是否已过时.
Pek*_*ica 15
无声错误undefined是返回的!
分号在JavaScript中是可选的,因此
return
{
ok: false
};
Run Code Online (Sandbox Code Playgroud)
被解析就好像它一样
return; // Leaves function straight away
{
ok: false
};
Run Code Online (Sandbox Code Playgroud)
JSLint将识别这些模式并警告它们:
棉绒警告:意外结束; 这些行是否属于同一语句是不明确的
lint警告:缺少分号
lint警告:无法访问的代码
皮棉警告:无意义的阻止; 花括号没有影响
这已在"最奇怪的语言特征"问题中讨论过.
| 归档时间: |
|
| 查看次数: |
1351 次 |
| 最近记录: |