creator 1.5.2 这是谁的锅?split.length = 1, 但 !split[1] 却是 false

虽然我没用过js,但一个长度为1的数组你用下标1去取值本来就是不正确的用法啊

好牛的bug

应该是因为全局的 split 被重写了,或者是 Array.prototype[“1”] = xxx 被重写了

js 可以这样,

js是单线程的吧, 这顺序执行下来的, 其它可能还会触发什么get, set, 但console.log 顺序打印下来, 也至于出错吧?

这和线程无关

如果是我会用另一种方式检查吧?
MDN:javascript:Boolean
这边有提到
「如果Boolean构造函数的参数不是一个布尔值,则该参数会被转换成一个布尔值.如果参数是 0, -0, null, false, NaN, undefined, 或者空字符串 (""),生成的Boolean对象的值为false. 其他任何值,包括任何对象或者字符串"false", 都会创建一个值为true的Boolean对象.」

所以我会试试改成
if (Boolean(split[1]) === false)

另外我也没用过Javascript…一开始就用Typescript了。

这是引擎里的代码, 而且 split.length = 1,

我还是这个观点

Object.defineProperty(Array.prototype, “1”, {get(){return this[0]}})