Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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_Syntax - Fatal编程技术网

Javascript中多变量声明期间不熟悉方括号的使用

Javascript中多变量声明期间不熟悉方括号的使用,javascript,string,syntax,Javascript,String,Syntax,我是Javascript的初学者,遇到了以下语法用法(简化): 我的问题是,变量a和b在第2行变成了什么类型? 我过于简单的调查似乎表明a和b被分配了各自的字符串值 但是引擎盖下面发生了什么?为什么我们在这里使用方括号[]?进程中不是由.split()返回并创建了一个数组吗?否则,在后台创建了哪些对象? 也欢迎链接来理解[a,b]的这种声明风格。这与许多函数式语言中的模式匹配相似 但是引擎盖下发生了什么 destructuring assignment语法是一个JavaScript表达式 可以从

我是Javascript的初学者,遇到了以下语法用法(简化):

我的问题是,变量a和b在第2行变成了什么类型?
我过于简单的调查似乎表明a和b被分配了各自的字符串值

但是引擎盖下面发生了什么?为什么我们在这里使用方括号[]?进程中不是由.split()返回并创建了一个数组吗?否则,在后台创建了哪些对象?
也欢迎链接来理解[a,b]的这种声明风格。

这与许多函数式语言中的模式匹配相似

但是引擎盖下发生了什么

destructuring assignment语法是一个JavaScript表达式 可以从数组中解压缩值,或从 对象转换为不同的变量

由于split函数返回一个数组,因此
var[a,b]=array
您正在按索引顺序分配值,在示例中:

console.log(a); // 'firstName'
console.log(b); // 'lastName'
它们是简单的字符串变量。您可能需要查看以下链接:


更多参考资料:既然你提到你是从JS开始的,我建议你阅读这本放大版中提到的书,这是ES6的一项功能。谢谢你的及时帮助,看起来有点让我头晕目眩。谢谢你提供的详细信息和链接。有趣的是,在这个过程中没有创建最终的数组,只有a&b作为字符串原语。是的,你也可以使用rest操作符
var[a,b,…c]=[1,2,3,4]
你认为什么值可以保存变量
c
c
包含一个数组(其余的值没有“单独”赋值)。谢谢Ricardo,我学到了一些关于。。。rest操作员也是。实际上,我已经开始阅读凯尔·辛普森的《你不知道Js》,但有些部分很难立刻理解,所以我可能需要做更多的练习,并重新阅读章节。
// You declare a string variable
var testString = "firstName, lastName";

// Split method help you to divide the string value according with the
//indicated separator, in this examle the comma
var [a,b] = testString.split(", ");
console.log(a); // 'firstName'
console.log(b); // 'lastName'