JavaScript中Number方法的奇怪语法 [英] Strange syntax of Number methods in JavaScript
本文介绍了JavaScript中Number方法的奇怪语法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
查看以下代码:
Number.prototype.isIn = function () {
for (var i = 0, j = arguments.length; i < j; ++i) {
if (parseInt(this, 10) === arguments[i]) {
return true;
}
}
return false;
};
var x = 2;
console.log(x.isIn(1,2,3,4,5)); // <= 'true'
console.log(2.isIn(1,2,3,4,5)); // <= Error: 'missing ) after argument list'
为什么当它是a时变量,代码正常工作但是当它是一个数字文字时,它会失败吗?
Why is it that when it's a variable, the code works correctly yet when it is a number literal, it fails ?
而且,奇怪的是,为什么以下行是否有效?
And also, strangely enough, why does the following line work?
console.log((2).isIn(1,2,3,4,5)); // <= 'true'
在上面一行中,我基本上将括号中的文字括起来。
In the above line, I basically enclosed the literal in parenthesis.
推荐答案
这是一个语法错误,因为你代表一个数字。字符串可以以这种方式工作,但不是数字,因为紧跟在数字后面的句点表示小数值。 。
之后的字符导致错误。
It's a syntax error because you are representing a number. Strings can work that way, but not numbers, because a period immediately following a number symbolizes a decimal value. The character after the .
is causing the error.
这篇关于JavaScript中Number方法的奇怪语法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文