随笔分类 - JavaScript
UES-13-模块封装代码 (End)
摘要:模块 模块是相对于普通 js 文件而言以不同方式加载的 js 文件。特点有: 代码自动在严格模式下运行。 顶级作用域中的变量不会自动添加到共享的全局作用域中,顶级作用域中的 this 值为 undefined。 代码中不允许使用 HTML 风格的注释。 外部代码想要使用模块中的内容时,该内容必须从模
阅读全文
UES-12-代理与反射 API
摘要:在 ECMAScript 5 之前,JavaScript 环境中具有不可枚举和不可写的对象属性,但是开发者不能定义不可枚举或不可写的属性。ECMAScript 5 添加的 Object.defineProperty() 方法允许开发者定义不可枚举和不可写的对象属性。 ECMAScript 6 给予了
阅读全文
UES-11-Promise 与异步编程
摘要:异步编程 JS 引擎使用单线程执行代码,某一时刻只能执行一段代码,不能并行执行代码。执行代码时,JS 引擎会把将要执行的代码段放入作业队列中,当前代码执行完毕后,会从队列中取出代码段并执行,循环上述操作,直到执行完所有需执行的代码。 每个事件与一个处理该事件的代码段关联,一般情况下这个代码段组织成函
阅读全文
UES-10-增强数组
摘要:创建数组 Array.of() 方法将接收的每个参数作为数组元素创建并返回数组。和 Array 构造器相比,用于函数参数更可靠。 function create(fun, value) { return fun(value); } let items = create(Array.of, value
阅读全文
UES-09-类
摘要:仿类结构 先创建一个构造器函数,然后在这个函数的原型中存储方法,这个构造器函数生成的实例从原型继承了存储的方法。 function Con(n) { this.n = n; } Con.prototype.fun = function () { console.log(this.n); }; let
阅读全文
UES-08-迭代器和生成器
摘要:循环问题 在一般循环结构中,如果需要跟踪多个变量,情况将变得复杂,容易出错。 迭代器 用于迭代对象的对象,一般提供 next() 方法用于迭代对象中的元素,该方法返回两个变量,value 表示返回的值,done 表示是否还存在没有遍历的元素。 function create(items) { var
阅读全文
UES-07-Set 和 Map
摘要:之前的 Set 和 Map 对象模拟 Set: let obj = Object.create(null); // 创建的对象原型为 null obj.v = true; if (obj.v) // 判断值是否存在 模拟 Map: let obj = Object.create(null); obj
阅读全文
UES-06-符号及其属性
摘要:创建 符号没有字面量形式。使用 Symbol 函数可以创建一个符号,这个函数接收可选的字符串,用于描述这个符号,这个字符串存储在内部属性 [[Description]] 中,调用符号的 toString() 方法时,该信息会被读取。使用 typeof 可以判断变量类型是否为符号类型。 let a =
阅读全文
UES-05-解构
摘要:解构的作用 方便从对象或者数组等数据结构中提取想要的数据。 使用任何一种类型的解构,当 = 右边的值为 null 或 undefined 时,会抛出错误。 对象解构 通过在 = 左边使用 {},在大括号内部写入以逗号分隔的 = 右边对象的属性名,则对应的属性名作为本地变量名,同时变量的值即为属性值。
阅读全文
UES-04-扩展的对象功能
摘要:对象类型 普通对象:拥有 js 对象所有默认的内部行为。 奇异对象:某些方面,内部行为不同于默认行为。 标准对象:标准中定义的对象,可以是普通的,也可以是奇异的。 内置对象:js 运行环境提供的对象。 对象字面量扩展 当对象字面量只有属性名称时,js 引擎会在周边作用域中查找与该名称相同的变量,将变
阅读全文
UES-03-函数
摘要:带参数默认值的函数 函数的参数数量不受声明时指定的参数个数影响,可以有任意多个。 函数声明时使用参数默认值直接在形参后面添加 '= defaultValue' 即可。可以给任意位置的参数添加默认值,只有当没有给这个位置的参数传值或者传的值为 undefined 时该参数使用默认值。 在使用参数默认值
阅读全文
UES-02-字符串与正则
摘要:Unicode 支持 16 位二进制数称为一个码元,原先的 UTF-16 中一个码元表示一个字符。现今的 UTF-16 中,一个代码点表示一个字符,一个代码点由一个码元或者两个连续的码元表示,也就是一个字符由一个码元或者两个连续的码元表示。 字符串的 codePointAt() 方法接收一个索引值,
阅读全文
UES-01-块级绑定
摘要:var 如果在函数内部使用 var 声明变量,无论在内部的哪个地方声明,都相当于在函数的第一行声明该变量。若在函数外部使用 var 声明,则相当于在源文件的第一行声明该变量。这种行为称为变量提升 (hoisting)。 块级声明 let 声明的变量和其他类 C 语言一样具有块级作用域,生命周期从声明
阅读全文