gpt4 book ai didi

javascript - Array 对象与 Object 是否不同(认为两者的 typeof 返回相同的值)?

转载 作者:行者123 更新时间:2023-12-02 23:46:53 24 4
gpt4 key购买 nike

其中两个测试失败。谁能解释一下原因以及如何解决它?

var assert = require('assert').strict

Number.prototype.isNbr = true
Number.prototype.isStr = false
Number.prototype.isObj = false
Number.prototype.isArr = false

String.prototype.isNbr = false
String.prototype.isStr = true
String.prototype.isObj = false
String.prototype.isArr = false

Array.prototype.isNbr = false
Array.prototype.isStr = false
Array.prototype.isObj = false
Array.prototype.isArr = true

Object.prototype.isNbr = false
Object.prototype.isStr = false
Object.prototype.isObj = true
Object.prototype.isArr = false

describe('Number', () => {
var x = 0;
it('Is number', () => { assert.ok(x.isNbr) })
it('Is string', () => { assert.ok(!x.isStr) })
it('Is object', () => { assert.ok(!x.isObj) })
it('Is array', () => { assert.ok(!x.isObj) })
})

describe('String', () => {
var x = '';
it('Is number', () => { assert.ok(!x.isNbr) })
it('Is string', () => { assert.ok(x.isStr) })
it('Is object', () => { assert.ok(!x.isObj) })
it('Is array', () => { assert.ok(!x.isObj) })
})

describe('Object', () => {
var x = {};
it('Is number', () => { assert.ok(!x.isNbr) })
it('Is string', () => { assert.ok(!x.isStr) })
it('Is object', () => { assert.ok(x.isObj) })
it('Is array', () => { assert.ok(!x.isObj) })
})

describe('Array', () => {
var x = [];
it('Is number', () => { assert.ok(!x.isNbr) })
it('Is string', () => { assert.ok(!x.isStr) })
it('Is object', () => { assert.ok(!x.isObj) })
it('Is array', () => { assert.ok(x.isObj) })
})

您可以保存到文件t.js并像这样运行:

$ mocha t.js

编辑我

修正线

var x = [];

@MarkMeyer 指出的是错误的。在我的原文中,它是正确的,更正它不会改变结果

最佳答案

正如 @Paulpro 巧妙指出的那样,我的测试很糟糕。我正在检查 .isObj ,而我应该检查 .isArr

如果我修复一切正常

关于javascript - Array 对象与 Object 是否不同(认为两者的 typeof 返回相同的值)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55820183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com