相关疑难解决方法(0)

为什么instanceof对某些文字返回false?

"foo" instanceof String //=> false
"foo" instanceof Object //=> false
true instanceof Boolean //=> false
true instanceof Object //=> false
false instanceof Boolean //=> false
false instanceof Object //=> false

// the tests against Object really don't make sense
Run Code Online (Sandbox Code Playgroud)

数组文字和对象文字匹配......

[0,1] instanceof Array //=> true
{0:1} instanceof Object //=> true
Run Code Online (Sandbox Code Playgroud)

为什么不是所有人呢?或者,他们为什么呢?
而且,它们是什么样的呢?

在FF3,IE7,Opera和Chrome中也是如此.所以,至少它是一致的.


错过了一些.

12.21 instanceof Number //=> false
/foo/ instanceof RegExp //=> true
Run Code Online (Sandbox Code Playgroud)

javascript instanceof literals

273
推荐指数
5
解决办法
9万
查看次数

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'
Run Code Online (Sandbox Code Playgroud)

为什么当它是一个变量时,代码才能正常工作,但是当它是一个数字文字时,它会失败?


而且,奇怪的是,为什么以下行有效?

console.log((2).isIn(1,2,3,4,5)); // <= 'true'
Run Code Online (Sandbox Code Playgroud)

在上面这一行中,我基本上将括号中的文字括起来.

javascript syntax extend

6
推荐指数
2
解决办法
281
查看次数

传入数字,Number.prototype.format

我已经看到在几个站点上引用了这个格式函数,但它们都没有一个如何将数字传入函数的明确示例.

我试过'12345'.format('0.00'),我相信它应该如何写,但它给了我一个错误,该对象不支持属性或方法.我也试过Number('12345').format('0.00'); var num ='12345'// num.format('0.00'); 格式('0.00','12345')甚至尝试使用数字而不是字符串12345.format(0.00).我错过了一些非常明显的东西吗?

包含的功能副本供参考,因此您无需访问该站点(填写所有缺失的部分).

/**
 * I ? Google
 */
String.prototype.stripNonNumeric = function() {
    var str = this + '';
    var rgx = /^\d|\.|-$/;
    var out = '';
    for( var i = 0; i < str.length; i++ ) {
        if( rgx.test( str.charAt(i) ) ) {
            if( !( ( str.charAt(i) == '.' && out.indexOf( '.' ) != -1 ) ||
            ( str.charAt(i) == '-' && out.length != 0 ) ) ) {
                out += str.charAt(i); …
Run Code Online (Sandbox Code Playgroud)

javascript formatting prototype numbers

5
推荐指数
1
解决办法
4358
查看次数