zoukankan      html  css  js  c++  java
  • 21 解构赋值

    解构赋值
    	为什么:
    		更方便的对一组变量赋值
    		从ES6开始,JavaScript引入了解构赋值,可以同时对一组变量进行赋值
    数组解构赋值
    		var [x, y, z] = ['hello', 'JavaScript', 'ES6'];
    			注意,对数组元素进行解构赋值时,多个变量要用[...]括起来
    		let [x, [y, z]] = ['hello', ['JavaScript', 'ES6']];
    		let [, , z] = ['hello', 'JavaScript', 'ES6']; // 忽略前两个元素,只对z赋值第三个元素
    对象解构赋值
    		对一个对象进行解构赋值时,同样可以直接对嵌套的对象属性进行赋值,只要保证对应的层次是一致的
    		var person = {
    			name: '小明',
    			age: 20,
    			gender: 'male',
    			passport: 'G-12345678',
    			school: 'No.4 middle school'
    		};
    		// 把passport属性赋值给变量id:
    		let {name, passport:id} = person;
    		name; // '小明'
    		id; // 'G-12345678'
    		// 注意: passport不是变量,而是为了让变量id获得passport属性:
    		passport; // Uncaught ReferenceError: passport is not defined
    
    解构赋值的默认值
    		对象属性进行赋值时,如果对应的属性不存在,变量将被赋值为undefined,避免了存在的属性返回undefined的问题,解构赋值还可以使用默认值
    				// 如果person对象没有single属性,默认赋值为true:
    				var {name, single=true} = person;
    				
    				// 声明变量:
    				var x, y;
    				// 解构赋值:
    				{x, y} = { name: '小明', x: 100, y: 200};
    				// 语法错误: Uncaught SyntaxError: Unexpected token =
    				这是因为JavaScript引擎把{开头的语句当作了块处理,于是=不再合法。解决方法是用小括号括起来:
    				({x, y} = { name: '小明', x: 100, y: 200});
    				
    			
    

      

  • 相关阅读:
    Linux-modules software
    Vim-Vundle-plugins-scripts
    Ubuntu-1404 GDB 调试C++报错
    Objdump-查看汇编指令
    Tornado-简介
    nginx-简介
    CentOS7 + linux kernel 3.10.94 compile 简记
    2020寒假学习笔记15------Spark基础实验
    2020寒假学习笔记14------Python基础语法学习(三)
    2020寒假学习笔记13------Python基础语法学习(二)
  • 原文地址:https://www.cnblogs.com/xuanjian-91/p/10259798.html
Copyright © 2011-2022 走看看