JavaScript ES6 赋值

作者: Ekolia | 来源:发表于2018-06-13 08:53 被阅读3次

公司有用到es6的语法糖,对简化代码和阅读性有很大的提高

let

let 关键字声明的变量是属于块作用域,也就是包含在 {} 之内的作用于。
可以用来避免异步回掉,或者闭包。

const

const 关键字一般用于常量声明,用 const 关键字声明的常量需要在声明时进行初始化并且不可以再进行修改,并且 const 关键字声明的常量被限制于块级作用域中进行访问。
注意,对于对象和数组来说,const的不可变,指的是指向对应值的指向不可变性,而不是指不可变。上代码。

const numbers = [1, 2, 3, 4, 6]
// undefined
numbers[4] = 5
// 5
numbers
//(5) [1, 2, 3, 4, 5]
numbers = [1, 2, 3, 4, 6]
// VM141:1 Uncaught SyntaxError: Identifier 'numbers' has already been declared
//    at <anonymous>:1:1

连续赋值

JavaScript是支持连续赋值的

var a = {n:1};  
var b = a; // 持有a,以回查
a.x = a = {n:2};  
alert(a.x);// --> undefined
alert(b.x);// --> [object Object]
// undefined
a
// {n: 2}
b.x
// {n: 2}
a.x
// undefined
b
// {n: 1, x: {…}}
//  n: 1
//  x: {n: 2}
//  __proto__: Object

实际上在连续赋值中,值是直接赋予给变量指向的内存地址。
a.x先存取指向{n:2}的地址,然后a再指向同一个地址,内容覆盖点了x,因此a.x undefined。
而b一开始就指向a,b.x也就指向a.x的原地址。下面代码就很容易理解了。

b.x.n
// 2
b.x.n = 3
// 3
a
// {n: 3}

Deconstruction: 解构赋值

解构赋值允许你使用类似数组或对象字面量的语法将数组和对象的属性赋给各种变量。超级简洁舒服,而且便于阅读。

// Array

var [first, second, third] = someArray;
var [a, , b] = [1, 2, 3];
var [a, ...b] = [1, 2, 3]; // ...不定参数,数组同理
a
// 1
b
// (2) [2, 3]
var {...all} = b
// undefined
all
// {bb: 123, cc: 213}

// Object
var { prop, prop2} = {prop: 5, prop2: 10};
var a, b;
({ a, b } = {a: 1, b: 2}); //注意括号

b = { bb: 123,cc:213 }
var {bb,cc} = b  // 数组同理

Spread Operator

和解构有点相反

let cold = ['autumn', 'winter'];  
let warm = ['spring', 'summer'];  
// construct an array
[...cold, ...warm] // => ['autumn', 'winter', 'spring', 'summer']

That's all. Thx 4 watching.

相关文章

  • ES6解构赋值

    ES6解构赋值 什么是解构赋值 MDN解释: 解构赋值语法是一个 Javascript 表达式,这使得可以将值从数...

  • JavaScript ES6 赋值

    公司有用到es6的语法糖,对简化代码和阅读性有很大的提高 let let 关键字声明的变量是属于块作用域,也就是包...

  • 踩坑指南:JavaScript解构赋值

    踩坑指南:JavaScript解构赋值 开篇 自从 2015 年ES6发布之后,到现在在项目中使用ES6语法应该是...

  • JavaScript ES6 - 解构赋值

    ES6 语法: 解构赋值 本文主要讲解 '解构赋值' 相关内容, 从两个方面入手: 1. 什么是结构赋值; 2. ...

  • ES6

    ES6: ES6 新语法 1.变量 解构赋值 (解构赋值对应的python里的序列解包) 解构赋值方式一: 解构赋...

  • 26

    ES6 一、解构赋值 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为结构赋值,解构赋值主要...

  • JavaScript26

    ES6 一、解构赋值 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为结构赋值,解构赋值主要...

  • js day26

    ES6 一、解构赋值 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为结构赋值,解构赋值主要...

  • ES6

    ##ES6 ### 一、解构赋值 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为结构赋值,...

  • 2018-06-01解构赋值

    ##ES6 ### 一、解构赋值 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为结构赋值...

网友评论

    本文标题:JavaScript ES6 赋值

    本文链接:https://www.haomeiwen.com/subject/auideftx.html