01 2018 档案
Generator 函数的语法
摘要:1. Generator 函数有多种理解角度。语法上,首先可以把它理解成,Generator 函数是一个状态机,封装了多个内部状态。 执行 Generator 函数会返回一个遍历器对象,也就是说,Generator 函数除了状态机,还是一个遍历器对象生成函数。返回的遍历器对象,可以依次遍历 Gene
阅读全文
Iterator 和 for...of 循环
摘要:1. Iterator 的遍历过程是这样的。 (1)创建一个指针对象,指向当前数据结构的起始位置。也就是说,遍历器对象本质上,就是一个指针对象。 (2)第一次调用指针对象的next方法,可以将指针指向数据结构的第一个成员。 (3)第二次调用指针对象的next方法,指针就指向数据结构的第二个成员。 (
阅读全文
Promise对象
摘要:1. 基本用法 Promise对象是一个构造函数,用来生成Promise实例。 Promise 新建后就会立即执行。 let promise = new Promise(function(resolve, reject) { console.log('Promise'); resolve(); })
阅读全文
Proxy
摘要:1. Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程。 参数一, 目标对象;参数二, 配置对象 访问proxy就等同于访问target
阅读全文
Set和Map数据结构
摘要:1. ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Set 本身是一个构造函数,用来生成 Set 数据结构。 Set 函数可以接受一个数组(或者具有 iterable 接口的其他数据结构)作为参数,用来初始化。 const set = new Set([1
阅读全文
Symbol
摘要:1. js数据类型: undefined、null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object), Symbol 2. 凡是属性名属于 Symbol 类型,就都是独一无二的,可以保证不会与其他属性名产生冲突。 3. let s = Symbol() ;
阅读全文
ES6对象的扩展
摘要:1. 属性的简洁表示法 ES6 允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。 const foo = 'foo'; const baz = {foo} baz // {foo: 'foo'} 上面代码表明,ES6 允许在对象之中,直接写变量。这时,属性名为变量名, 属性值为变量
阅读全文
ES6数组的扩展
摘要:1. 扩展运算符 扩展运算符(spread)是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。 console.log(...[1, 2, 3]); // 1 2 3 console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5 2.
阅读全文
ES6 函数的扩展
摘要:1. 函数参数的默认值 ES6之前不能直接为函数的参数指定默认值,只能通过变通的方法; function log(x, y) { y = y || 'World'; console.log(x, y); } log('Hello'); // Hello World log('Hello', 'xhk
阅读全文
面向对象的程序设计
摘要:1. 面向对象具有类的概念,通过类可以创建任意多个相同的属性和方法。 2. ECMA-262把对象定义为:无序属性的集合,其属性包含基本值、对象或函数。 3. ECMAScript中有两种属性:数据属性,访问器属性。 4. 数据属性: configurable, enumerable, writab
阅读全文
引用类型
摘要:1. Object类型 创建对象的方式 1) 构造函数方式 var obj = new Object(); // Object为构造函数 2)字面量方式 var obj = {} 2. Array类型 ECMAscript数组的每一项可以保存任何类型的数据 创建数组的方式 1)var color =
阅读全文
基本点
摘要:淘宝的样式初始化:body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset, legend, button, input, textarea, th, td { margi
阅读全文
浙公网安备 33010602011771号