ES6笔记一

1.let与const

ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。

for循环的计数器,就很合适使用let命令。

ES6 的块级作用域必须有大括号,如果没有大括号,JavaScript 引擎就认为不存在块级作用域。

与var相比,主要区别在于:

a)没有预解析,不存在变量提升
b)在同一个作用域里不能重复定义变量

const声明一个只读的常量。一旦声明,常量的值就不能改变。

这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。

但是对于引用类型数据,const声明的变量是可以改变的

const b = {
            a: '1',
            b: '2'
        }

 b.a = '3'
console.log(b) // {a: '3', b: '2'}

 const arr =['apple','banana'];

 arr.push('orange');
 console.log(arr); // ['apple','banana','orange']

 

2.变量的解构赋值

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

// 左右两边结构和格式要保持一致
// 解构不成功为undefined
// 解构数组
let [a,b,c] = [1, 2,3]
// 解构json
let json = {
   name:‘strive',
age: 18,
job: 'hah'
}
let {name, age, job} = json;

 用途:

1).交换变量

let x = 1;
let y = 2;

[x, y] = [y, x];

2).从函数返回多个值

函数只能返回一个值,如果要返回多个值,只能将它们放在数组或对象里返回。有了解构赋值,取出这些值就非常方便。

// 返回一个数组

function example() {
  return [1, 2, 3];
}
let [a, b, c] = example();

// 返回一个对象

function example() {
  return {
    foo: 1,
    bar: 2
  };
}
let { foo, bar } = example();

3).提取json数据

let jsonData = {
  id: 42,
  status: "OK",
  data: [867, 5309]
};

let { id, status, data: number } = jsonData;

console.log(id, status, number);
// 42, "OK", [867, 5309]

 3.字符串的扩展

比较有用的是这个模板字符串

反撇号 ··
嵌入变量: ${ 变量名 }

let name ='Strive';
let age = 18;
let str = `这个人叫${name}, 年龄是 ${age}岁`;
console.log(str);

 

posted @ 2020-03-03 14:27  Thinkguo  阅读(253)  评论(0编辑  收藏  举报