首页 > 开发 > JS > 正文

基于ES6作用域和解构赋值详解

2024-05-06 16:40:41
字体:
来源:转载
供稿:网友

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作用域和解构赋值详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到JavaScript/Ajax教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表