gpt4 book ai didi

javascript - 大括号在变量声明中是什么意思?

转载 作者:行者123 更新时间:2023-11-30 08:37:45 31 4
gpt4 key购买 nike

当包围多个 integer:string 形式的对时,大括号 ({}) 在变量声明中起什么作用?

例如,它们在这里是什么意思?

char = {0:'(',3:') ',6:' - '};

在本例中,它来自以下电话号码格式化脚本:

function formatPhone(obj) {
var numbers = obj.value.replace(/\D/g, ''),
char = {0:'(',3:') ',6:' - '};
obj.value = '';
for (var i = 0; i < numbers.length; i++) {
obj.value += (char[i]||'') + numbers[i];
}
}

我相信定义 char 的行是导致它失败的行。

最佳答案

这是一个 Javascript 对象。最好缩进,它看起来像这样:

char = {
0: '(',
3: ') ',
6: ' - '
}

意思是您正在创建一个具有属性 0 的对象, 3 , 和 6设置为给定的值。然后,使用 char[i] 访问属性,返回 null除非属性被定义——所以对于所有 i除了 0、3 和 6,它默认为 '' .对于 0、3 和 6,它将采用相关字符串。

好吧,我想我知道什么是“不工作”了,不过在我确定之前我需要你再次解释这意味着什么。

这一行:

obj.value += (char[i]||'') + numbers[i];

将插入 undefined在字符串中 if numbers[i]未定义,并且 numbers[i]仅为 i 定义= 0、3 或 6。将行更改为:

obj.value += (char[i]||'') + (numbers[i]||'');

它应该可以工作。

关于javascript - 大括号在变量声明中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29885618/

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