JavaScript、ECMAScript6学习笔记
JavaScript
对象就是一组“键值对”的集合,是一种无序的复合数据集合。
如果键名是数值,会被自动转为字符串。
如果键名不符合标识名的条件,需加单引号。
键值可以是任何数据类型,比如函数,这样就可以像函数一样的调用,比如 obj.p(1)。
如果键值还是一个对象,就形成了链式引用。
with语句是为了书写方便。
匿名函数 let fc = function(){};
箭头函数 const add = (a, b) => a + b;
函数的length属性返回函数预期传入参数的个数
函数的toString()返回一个字符串,内容属函数的源码
函数的arguments对象可以读取所有参数,看着像数组,但它是一个对象
eval命令接受一个字符串作为参数,并将这个字符串当作语句执行
stack属性用来查看错误发生的堆栈
编程规范,涉及到的全局变量,用全大写,字母间用"_"
面向对象编程:对象是一个容器,封装了属性和方法
use strict 放在第一行,进入严格模式
回调函数:把函数当参数传入后调用
发布/订阅模式
Promise的设计思想是,所有异步任务都返回一个Promise实例,实例有一个then方法,用来指定下一步的回调函数
浏览器加载JavaScript脚本,主要通过 script 元素完成,不等到下载完就开始解析
增加了defer属性后,可以延迟脚本的执行,等到DOM加载生成后再执行脚本,与之对应的是async属性
Woker()构造函数,新建一个Worker线程
ECMAScript 6
于2015年6月发布
Babel是一个JavaScript编译器,转换为普通函数,兼容低版本的JavaScript环境
let 代替var,规范作用域,有两种场景,一是内层变量会覆盖外层变量;二是循环内的变量可能会泄漏为全局变量
允许使用块级作用域{{{}}} 任意嵌套
ES6的块级作用域必须有大括号,如果没有,JavaScript引擎就认为不存在块级作用域
const 声明一个只读的常量,一旦声明,值不可改变;声明即初始化
null 严格意义上不等于undefined
简单的、单行的、不会复用的函数,采用箭头函数,如果函数较为复杂,行数较多,则采用传统的函数写法。
浙公网安备 33010602011771号