ES6 (阮一峰日志)学习笔记

本文详细介绍了ES6中的Generator函数,包括其数据交换和错误处理机制。Generator函数可以暂停和恢复执行,用于封装异步任务。文章讨论了`const`、`undefined`和`null`、箭头函数、严格模式、`export`和`import`、`export default`、对象解构赋值、Symbol、以及Generator函数的异步应用。重点讲述了Generator如何通过`next()`方法进行数据交换,以及错误处理的实现。
摘要由CSDN通过智能技术生成

目录

const

undefined 和 null

箭头函数

严格模式

export 

import

export default

对象的解构赋值

Symbol

Generator 函数的异步应用

Generator 函数的数据交换和错误处理


 

  • const

const 声明一个只读的常量。一旦声明,常量的值就不能修改,这也意味着一旦声明,必须马上赋值。当然与 let 一样,只在声明所在的块级作用域内有效和不可重复声明。

本质:const 实际保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此等同于常量。但对于复合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是一个指向实际数据的指针,const只能保证这个指针是固定的(即总是指向另一个固定的地址),至于它指向的数据结构是不是可变的,就完全不能控制了。

  • undefined 和 null

undefined 值在布尔类型环境中会被当做 false ,在数值类型环境中 undefined 会被转换成 NaN。

当对一个 null 变量求值时,空值 null 在数值类型环境中会被当做 0 来对待,而布尔类型环境中会被当做 false 。

  • 箭头函数

如果箭头函数不需要参数或者需要多个参数,就使用一个圆括号代表参数部分

var f = () => 5;
// 等同于
var f = function () { return 5 };

var sum = (num1, num2) => num1 + num2;
// 等同于
var sum = function(num1, num2) {
  return num1 + num2;
};
  • 严格模式

变量必须声明后再使用

函数的参数不能有同名属性,否则报错

不能使用with语句

不能对只读属性赋值,否则报错

不能使用前缀 0 表示八进制数,否则报错

不能删除不可删除的属性,否则报错

不能删除变量delete prop,会报错,只能删除属性delete global[prop]

eval不会在它的外层作用域引入变量

evalarguments不能被重新赋值

arguments不会自动反映函数参数的变化

不能使用arguments.callee

不能使用arguments.caller

禁止this指向全局对象

不能使用fn.callerfn.arguments获取函数调用的堆栈

增加了保留字(比如protectedstaticinterface



  • export 

ES6 模块不是对象,而是通过 export 命令显示指定输出的代码,再通过 import 命令输入。

export 命令用于规定模块的对外接口。

// 写法一
export var m = 1;

// 写法二
var m = 1;
export {m};

// 写法三
var n = 1;
export {n as m};

但是一下两种写法都是错误的:

// 报错
export 1;

// 报错
var m = 1;
export m;

上面两种写法都是错误的,因为没有提供对外的接口。第一种写法直接输出 1 ,第二种写法通过变量 m ,还是直接输出1 。1 只是一个值,不是接口。

同样的,function 和 class 的输出,也必须遵守这样的写法:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值