分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

js es6 解构赋值

发布时间:2023-09-06 01:45责任编辑:白小东关键词:jses6

解构赋值:es6允许按照一定的模式,从数组或对象中提取值

let [a,b,c] = [1,2,3];let {a,b}= {a:1,b:2};


对象

let {a,b}= {b:1,a:2} //输出2,1,即找属性名,不管什么位置


数组
例子1:(完全解构)

let [a,b,c] = [1,2,3];console.log(a)//1console.log(b)//2console.log(c)//3

例子2:(不完全解构)

let [a,[b],c] = [1,[2,3],function(){}];console.log(a)//1 [0]console.log(b)//2 [1][0]console.log(c)//function(){} [2]

这里的b,就是不完全解构的体现

不完全解构

let[a,b]=[1] //a=1,b=undefindlet [a] =true //匹配不成功,报错

----------------解构赋值的默认值-----------------------------
怎么判断的?
如果右边的值===undefined,就取默认值

let [a=1,b=2]=[];console.log(a)//1 console.log(b)//2function add(a=0,b=0){ //ab默认值console.log(a+b)}add() //0

设计默认值时,是惰性求值,即在用到的时候才执行默认值

function fn(){console.log("fn")}let [a=fn()]=[1] //输出1

数组例子1

let[a=b,b=2]=[];//输出a,b时报错,因为a是b的暂时性死区,a拿不到b

对象例子2

let{a=1} = {a:2}//输出2let {PI} =Math //找到Math对象下的PI,let PI=Math.PI


--------------------------------
除了设置默认值时,对象可以用,作为匹配规则
l

et obj ={aaaa:1,bbbb:2}let{aaaa:a,bbbb:b}=obj //输出a=1,b=2;aaaa报错,等号时是设置默认值.

--------------冒号模式,---------------
按照aaaa来匹配,实际使用aaaa的值,obj.aaaa的值aaaa.a的值匹配

例子
let{a,b} = {a:1,b:2}  相当于  let{a:a,b:b} = {a:1,b:2}


如果let{a:ac,b:ad} = {a:1,b:2}   则    ac=1,ad=2;


即默认值设定为let{a:ac=0,b:ad=0} = {a:1,b:2},则   ac=1,ad=2;

js es6 解构赋值

原文地址:https://www.cnblogs.com/grhino/p/8547013.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved