JavaScript中Number方法的奇怪语法 [英] Strange syntax of Number methods in JavaScript

查看:86
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆