基于ES6作用域和解构赋值详解
2017-11-03 09:46
986 查看
ES6 强制开启严格模式
作用域
•var 声明局部变量,for/if花括号中定义的变量在花括号外也可访问
•let 声明的变量为块作用域,变量不可重复定义
•const 声明常量,块作用域,声明时必须赋值,不可修改
// const声明的k指向一个对象,k本身不可变,但对象可变 function test() { const k={ a:1 } k.b=3; console.log(k); }
test()解构赋值
{ let a, b, 3, rest; [a, b, c=3]=[1, 2]; console.log(a, b); } //output: 1 2 3 { let a, b, 3, rest; [a, b, c]=[1, 2]; console.log(a, b); } //output: 1 2 undefined { let a, b, rest; [a, b, ...rest] = [1, 2, 3, 4, 5, 6]; console.log(a, b, rest); } //output:1 2 [3, 4, 5, 6] { let a, b; ({a, b} = {a:1, b:2}) console.log(a ,b); } //output: 1 2
使用场景
变量交换
{ let a = 1; let b = 2; [a, b] = [b, a]; console.log(a, b); }
获取多个函数值
{ function f(){ return [1, 2] } let a, b; [a, b] = f(); console.log(a, b); }
获取多个函数返回值
{ function f(){ return [1, 2, 3, 4, 5] } let a, b, c; [a,,,b] = f(); console.log(a, b); } //output: 1 4 { function f(){ return [1, 2, 3, 4, 5] } let a, b, c; [a, ...b] = f(); console.log(a, b); } //output: 1 [2, 3, 4, 5]
对象解构赋值
{ let o={p:42, q:true}; let {p, q, c=5} = o; console.log(p ,q); } //output: 42 true 5
获取json值
{ let metaData={ title: 'abc', test: [{ title: 'test', desc: 'description' }] } let {title:esTitle, test:[{title:cnTitle}]} = metaData; console.log(esTitle, cnTitle); } //Output: abc test
以上这篇基于ES6作用域和解构赋值详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- ES6解构赋值详解
- ES6解构赋值实例详解
- es6中的解构赋值、扩展运算符和rest参数使用详解
- es6中的解构赋值详解
- js -- ES6(三)-- 变量的解构赋值(根据阮一峰ES6标准入门整理 更新中。。。)
- ES6解构赋值
- 基于Java的打包jar、war、ear包的作用与区别详解
- ES6 destructuring 解构赋值
- ES6作用域和解构赋值
- ES6-个人学习笔记二--解构赋值
- ES6新特性:解构赋值
- ECMAScript6(ES6)之解构赋值(数组,对象,字符串)
- 基于SQL中SET与SELECT赋值的区别详解
- es6---解构赋值与字符串的拓展
- ES6中的解构赋值
- ES6学习总结之解构赋值及字符串模板
- es6之详解变量的解构赋值
- es6分享——变量的解构赋值
- ES6变量解构赋值的应用
- 12、ES6 解构赋值的7个用途