Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在变量声明中,花括号是什么意思?_Javascript_String_Variables_Character Arrays - Fatal编程技术网

Javascript 在变量声明中,花括号是什么意思?

Javascript 在变量声明中,花括号是什么意思?,javascript,string,variables,character-arrays,Javascript,String,Variables,Character Arrays,在变量声明中,当围绕多对形式为integer:string的字符串时,花括号({})起什么作用 例如,它们在这里是什么意思 char = {0:'(',3:') ',6:' - '}; 在本例中,它来自以下电话号码格式化脚本: function formatPhone(obj) { var numbers = obj.value.replace(/\D/g, ''), char = {0:'(',3:') ',6:' - '}; obj.value = '';

在变量声明中,当围绕多对形式为
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];
    }
}
功能格式化电话(obj){
变量编号=对象值。替换(/\D/g',),
char={0:'(',3:')',6:'-'};
obj.value='';
对于(变量i=0;i
我相信定义字符的那一行是导致它失败的原因。

它创建了一个对象:

obj = {0:'(',3:') ',6:' - '};
在对象中有两个元素,键为0、3和6。您可以访问它们obj[0]、obj[3]和obj[6]

或者,您也可以像在示例中那样在循环中访问它们。

它创建了一个对象:

obj = {0:'(',3:') ',6:' - '};
在对象中有两个元素,键为0、3和6。您可以访问它们obj[0]、obj[3]和obj[6]


或者您可以像在示例中那样在循环中访问它们

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

char = {
    0: '(',
    3: ') ',
    6: ' - '
}
这意味着您正在创建一个对象,其属性
0
3
6
设置为给定值。然后,使用
char[i]
访问属性,除非定义了属性,否则返回
null
——因此对于除0、3和6之外的所有
i
,它将默认为
'
。对于0、3和6,将使用相关字符串

好吧,我想我知道了什么“不起作用”,不过在我确定之前我需要你解释一下这意味着什么

这一行:

obj.value += (char[i]||'') + numbers[i];
如果未定义
numbers[i]
,并且仅为
i
=0、3或6定义了
numbers[i]
,则将在字符串中插入
undefined
。将行更改为:

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

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

char = {
    0: '(',
    3: ') ',
    6: ' - '
}
这意味着您正在创建一个对象,其属性
0
3
6
设置为给定值。然后,使用
char[i]
访问属性,除非定义了属性,否则返回
null
——因此对于除0、3和6之外的所有
i
,它将默认为
'
。对于0、3和6,将使用相关字符串

好吧,我想我知道了什么“不起作用”,不过在我确定之前我需要你解释一下这意味着什么

这一行:

obj.value += (char[i]||'') + numbers[i];
如果未定义
numbers[i]
,并且仅为
i
=0、3或6定义了
numbers[i]
,则将在字符串中插入
undefined
。将行更改为:

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

它应该可以工作。

这是一个Javascript对象

除了使用构造函数创建对象外,还可以 使用对象初始值设定项创建对象。使用对象初始值设定项 有时被称为使用文字符号创建对象。 “对象初始化器”与C++所使用的术语一致。 使用对象初始值设定项的对象的语法为:

var obj = { property_1:   value_1,   // property_# may be an identifier...
            2:            value_2,   // or a number...
            // ...,
            "property n": value_n }; // or a string
其中obj是新对象的名称,每个
属性_i
都是一个 标识符(名称、数字或字符串文字)以及
value\u i
是一个表达式,其值分配给
属性\u i


本文的其余部分可用。

这是一个Javascript对象

除了使用构造函数创建对象外,还可以 使用对象初始值设定项创建对象。使用对象初始值设定项 有时被称为使用文字符号创建对象。 “对象初始化器”与C++所使用的术语一致。 使用对象初始值设定项的对象的语法为:

var obj = { property_1:   value_1,   // property_# may be an identifier...
            2:            value_2,   // or a number...
            // ...,
            "property n": value_n }; // or a string
其中obj是新对象的名称,每个
属性_i
都是一个 标识符(名称、数字或字符串文字)以及
value\u i
是一个表达式,其值分配给
属性\u i


这篇文章的其余部分可用。

事实上,在0和6之间有
3
。随时准备帮助别人做出比我更好的答案并偷走我所有的代表!;)这提醒了我——多亏了@QPaysTaxes,你可以使用
obj[\u]
,而不是
obj.\u
.10点到Griffindor))访问带编号的属性。你有你的代表,我想)事实上,在0和6之间有
3
。随时准备帮助别人做出比我更好的答案,并偷走我所有的代表!;)这提醒了我——多亏了@QPaysTaxes,你可以使用
obj[\u]
,而不是
obj.\u
.10点到Griffindor))访问带编号的属性。你有你的代表,我想)请添加一个相关的摘录从你的位链接。实际上,您的答案严重不足——如果该链接失效会发生什么?我原以为该链接会自动扩展,但显然我不得不“批准”该功能。AJ,谢谢你的提示。@Alan,你必须批准我的编辑,它扩展了链接并修改了文本。它不会自动知道要粘贴什么。它也不知道如何格式化它。将来,请你自己做这件事——虽然没有那么难,但这是一件让人头疼的事。请添加一段你链接的相关摘录。实际上,您的答案严重不足——如果该链接失效会发生什么?我原以为该链接会自动扩展,但显然我不得不“批准”该功能。AJ,谢谢你的提示。@Alan,你必须批准我的编辑,它扩展了链接并修改了文本。它不会自动知道要粘贴什么。它也不知道如何格式化它。在将来,请你自己做这件事——虽然没有那么难,但这是一件痛苦的事。这句话并没有给你带来问题。到底出了什么问题?我看看我是否也能帮上忙。如果你有任何问题,你能接受回答吗