在Ruby中,你可以这样做:
3.times { print "Ho! " } # => Ho! Ho! Ho!
我尝试在JavaScript中执行此操作:
Number.prototype.times = function(fn) {
for (var i = 0; i < this; i++) {
fn();
}
}
这有效:
(3).times(function() { console.log("hi"); });
这不是
3.times(function() { console.log("hi"); });
Chrome给我一个语法错误:“意外的令牌ILLEGAL”。为什么呢?
答案 0 :(得分:36)
数字后面的.
表示数字的小数点,您必须使用另一个数字来访问属性或方法。
3..times(function() { console.log("hi"); });
这仅适用于十进制文字。对于八进制和十六进制文字,您只使用一个.
。
03.times(function() { console.log("hi"); });//octal
0x3.times(function() { console.log("hi"); });//hexadecimal
也是指数
3e0.times(function() { console.log("hi"); });
您也可以使用空格,因为数字中的空格无效,因此没有歧义。
3 .times(function() { console.log("hi"); });
尽管wxactly
在评论中指出,缩小器会删除导致上述语法错误的空格。