博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常用的ES6
阅读量:5733 次
发布时间:2019-06-18

本文共 2349 字,大约阅读时间需要 7 分钟。

1 let 和 const

作用域: 只在声明指令的块级作用域内有效。

let所声明的变量可以改变,值和类型都可以改变,没有限制。

let a = 123a = 456 // 正确,可以改变let b = [123]b = [456] // 正确,可以改变

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

const a ;//报错,一旦声明变量,应该立即赋值!!const b = 2;b = 3//报错,因为定义常量之后不能成重新赋值!!

对于复合类型的变量,如数组和对象,变量名不指向数据,而是指向数据所在的地址。const命令只是保证变量名指向的地址不变,并不保证该地址的数据不变,所以将一个对象声明为常量必须非常小心

const names = [];names = [1,2,3] //出错,因为变量names指向的地址不能发生改变,应始终指向[]所在的地址!!![1,2,3]与[]不是同一个地址const names = [];names = [1,2,3] //出错,因为变量names指向的地址不能发生改变,应始终指向[]所在的地址!!![1,2,3]与[]不是同一个地址//不会报错,因为names指向的地址不变,改变的只是内部数据const names = [];names[0] = 1names[1] = 2names[2] = 3

2 数组

一次性声明多个变量:

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

3 对象的合并:

Object.assign()方法用于对象的合并,将原对象(source)的所有可枚举属性复制到目标对象(target)

const target = { a: 1 };const source1 = { b: 2 };const source2 = { c: 3 };Object.assign(target, source1, source2);target // {a:1, b:2, c:3}

Object.assign方法的第一个参数是目标对象,后面的参数都是源对象。

注意,如果目标对象与源对象有同名属性,或多个源对象有同名属性,则后面的属性会覆盖前面的属性。

const target = { a: 1, b: 1 };const source1 = { b: 2, c: 2 };const source2 = { c: 3 };Object.assign(target, source1, source2);target // {a:1, b:2, c:3}Object.assign 方法实行的是浅拷贝,而不是深拷贝。const obj1 = {a: {b: 1}};const obj2 = Object.assign({}, obj1);obj1.a.b = 2;obj2.a.b // 2

4 Promise对象

Promise 是异步编程的一种解决方案。

5 import 和 export

import 导入模块、export 导出模块

// example2.js  // 导出默认, 有且只有一个默认export default const example2 = {  name : 'my name',  age : 'my age',  getName  = function(){  return 'my name' }}//全部导入 // 名字可以修改import people from './example2.js'-------------------我是一条华丽的分界线---------------------------// example1.js // 部分导出export let name  = 'my name'export let age  = 'my age'export let getName  = function(){ return 'my name'}// 导入部分 // 名字必须和 定义的名字一样。import  {name, age} from './example1.js'

//有一种特殊情况,即允许你将整个模块当作单一对象进行导入

//该模块的所有导出都会作为对象的属性存在

import * as example from "./example1.js"console.log(example.name)console.log(example.age)console.log(example.getName())-------------------我是一条华丽的分界线---------------------------// example3.js  // 有导出默认, 有且只有一个默认,// 又有部分导出export default const example3 = {  birthday : '2018 09 20'}export let name  = 'my name'export let age  = 'my age'export let getName  = function(){ return 'my name'}// 导入默认与部分import example3, {name, age} from './example1.js'            来源:https://segmentfault.com/a/1190000017471239

转载地址:http://hdmwx.baihongyu.com/

你可能感兴趣的文章
Activity的生命周期整理
查看>>
【记录】JS toUpperCase toLowerCase 大写字母/小写字母转换
查看>>
在 Linux 系统中安装Load Generator ,并在windows 调用
查看>>
Visifire charts ToolBar
查看>>
Mysql查询
查看>>
数据传输流程和socket简单操作
查看>>
利用广播实现ip拨号——示例
查看>>
ProbS CF matlab源代码(二分系统)(原创作品,转载注明出处,谢谢!)
查看>>
OC中KVC的注意点
查看>>
JQ入门(至回调函数)
查看>>
1112: 零起点学算法19——输出特殊值
查看>>
【洛天依】几首歌的翻唱(无伴奏)
查看>>
strcspn
查看>>
OpenSSL初瞻及本系列的博文的缘由
查看>>
ISO8583接口的详细资料
查看>>
tmux不自动加载配置文件.tmux.conf
查看>>
经验分享:JavaScript小技巧
查看>>
[MOSEK] Stupid things when using mosek
查看>>
程序实例---栈的顺序实现和链式实现
查看>>
服务的使用
查看>>