gpt4 book ai didi

javascript - 这个 JS 语法是什么意思? 'length' 是怎么回事?

转载 作者:行者123 更新时间:2023-12-03 06:38:36 24 4
gpt4 key购买 nike

所以在另一个答案中(How can I create a two dimensional array in JavaScript?)我看到了以下内容

function createArray(length) {
var arr = new Array(length || 0),
i = length;

if (arguments.length > 1) {
var args = Array.prototype.slice.call(arguments, 1);
while(i--) arr[length-1 - i] = createArray.apply(this, args);
}

return arr;
}

createArray(); // [] or new Array()

createArray(2); // new Array(2)

createArray(3, 2); // [new Array(2),
// new Array(2),
// new Array(2)]

这是什么意思:

var arr = new Array(length || 0),
i = length;

我感到困惑的两个部分是 length || 0以及逗号后跟 i = length 的用法。对于 length || 0我做了一些实验,我很困惑。这是一个 JSFiddle,我在其中尝试使用变量 length然后与变量 blah 完全相同并且仅在第二个上出现错误:https://jsfiddle.net/vrp0uhtL/4/您需要进入调试器。我只在 chrome 上测试过这个。

对于,i = length这只是声明 i 的简写吗也作为同一行的 var?

谢谢

编辑:因为我发现发生了一些奇怪的事情,并区分这个问题与其他类似的问题:为什么会这样:

var arr = new Array(length || 0)
console.log(arr)

var arr2 = new Array(blah || 0)
console.log(arr2)

当长度或 blah 都没有在其他地方定义时,只会在第二个上产生错误;更具体地说,为什么即使我没有定义 length,它的值也始终为 0(请参阅上面的 JSFiddle)

最佳答案

在JS中,如果你在赋值操作中看到||,例如x = a || b 表示只要定义了 ax 就会被设置为值 a ,否则将被设置为b

关于javascript - 这个 JS 语法是什么意思? 'length' 是怎么回事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38076991/

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