Yas*_*ser 2 javascript coffeescript
这个coffeescript:
if typeof(groups) is undefined or groups.length == 0
Run Code Online (Sandbox Code Playgroud)
被编译成以下javascript:
if (typeof groups === void 0 || groups.length === 0)
Run Code Online (Sandbox Code Playgroud)
基本上我想检查groups数组是否为空或空,并希望如果第一个条件为真,则不会检查第二个条件(短路).但是,Chrome会引发以下错误:
未捕获类型错误:无法读取未定义的属性长度
关于它为什么不会发生短路的任何见解?
因为第一个条件永远不会成真.void 0将评估值undefined(不是字符串"undefined"),但typeof返回字符串"undefined".
JavaScript应该是:
if (typeof groups === "undefined" || groups.length === 0)
Run Code Online (Sandbox Code Playgroud)
要么:
if (groups === void 0 || groups.length === 0)
Run Code Online (Sandbox Code Playgroud)
要修复CoffeeScript,您需要检查字符串"undefined":
if typeof groups is "undefined" or groups.length == 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
704 次 |
| 最近记录: |