变量的解构赋值

变量的解构赋值

用来减少变量的定义,并且从数组或对象中提取值更方便,ES6提出了解构赋值

数组的解构赋值

let[a,b,c]=[1,2,3]

    console.log(a)//1

    console.log(b)//2

    console.log(c)//3

可以省略变量

可以与扩展运算符连用

let[a,...b]=[1,2,3,4,5]

            console.log(a)//1

            console.log(b)//[2, 3, 4, 5]

可以定义默认值

let[a,b,c=0]=[1,2]

            console.log(a)//1

            console.log(b)//2

            console.log(c)//0

可以应用解构赋值的其他变量

 let[a,c=a]=[1]

            console.log(a)//1

            console.log(c)//1

注意情况

1.解构赋值前后类型对应

let[a]=null//报错

let[a]={}//报错

2.undefined不能替换默认值

let[a=0]=[null]//null

let[a=0]=[undefined]//0

3.引用扩展运算符和解构赋值的其他变量,不能倒着写

let[...a,b]=[1,2,3,4]//报错

let[c=a,a=1]=[]//报错

对象和解构赋值

基本用法

let{name,sex} ={name:"张良",sex:"男"}

           console.log(name)//张良

           console.log(sex)//男

给对象起别名

let{name:a,sex:b} ={name:"张良",sex:"男"}

            console.log(a)//张良

            console.log(b)//男

可以定义默认值

let{name:a,sex:b,age=22} ={name:"张良",sex:"男"}

            console.log(age)//22 

嵌套对象的解析

 var {name,mon:[a,b,c]}={name:"张",mon:[2000,3000,1000]}

            console.log(name)//张

            console.log(a)//2000

            console.log(b)//3000

            console.log(c)//1000

字符串的解构赋值

解析字符串的值

    var [...arr]="hello"

      console.log(arr)//[h,e,l,l,o]

解析对象下的属性和方法

            var {length}="hello"

            console.log(length)//5

函数下的参数解构赋值

当参数为一个数组进行解构

 function fun([a,b,c]){

                console.log(a)

                console.log(b)

                console.log(c)

            }

            fun(1,2,3)

当参数为一个对象进行解构

 function fun1({name:a,age:b}){

                console.log(a+","+b)

            }

            fun1({name:"z",age:23})

注意:当解构赋值后面的值为其他类型,先考虑这个类型是否能转化成对象,否则不能解析

引用类型下新增的属性方法

数字扩展

0b10101//定义二进制

0o767//八进制 o大小写都可以

属性和方法

parseInt()转化成整数

parseFloat()转化成浮点数

isNaN()判断是否是数字

isFinite()判断是否是有限数字

isInteger()是否是整数 //整数返回true

数学扩展

trunc()去除一个数的小数部分

sign()判断一个数是正数、负数、还是零

返回+1正数 返回-1负数

返回+0正零 返回-0负零

返回NaN其他值

cbrt()计算一个数的立方根

imul()返回两个数的乘积,包含正负号

hypot()返回参数的平方和的平方根

signbit()判断正负数,返回布尔值,为负数返回true

console.log(Math.signbit(-5))//true

        console.log(Math.signbit(5))//false

        console.log(Math.signbit(+0))//false

        console.log(Math.signbit(-0))//true

        console.log(Math.signbit("add"))//flase

指数运算:2**3//为8,2乘以3遍=>2*2*2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兔子^-^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值