一、用生成器给对象定义迭代器
常规方法
const obj = {
a: 1,
b: 2,
c: 3,
[Symbol.iterator]() {
let [index, values] = [0, Object.values(this)]
return {
next() {
const done = (index >= values.length)
const value = done ? undefined : values[index++]
return {
done,
value
}
}
}
}
}
for (let v of obj) {
console.log(v) // 1 2 3
}
"迭代器(Iterator)和生成器(Generation)"继续阅读
一、ECMAScript5 - Object.defineProperty
利用对象中的访问器属性,监听值的修改。
"简单实现双向绑定"继续阅读
一、对象解构
用法
在一个赋值操作符左边放置一个对象字面量。
let { name, age } = { name: 'cherrie', age: '17' }
console.log(name, age) // cherrie 17
"ECMAScript6 解构赋值"继续阅读
前言
今天,我们来谈谈如何设计一个高性能短链系统,短链系统设计看起来很简单,但每个点都能展开很多知识点,也是在面试中非常适合考察侯选人的一道设计题,本文将会结合我们生产上稳定运行两年之久的高性能短链系统给大家简单介绍下设计这套系统所涉及的一些思路,希望对大家能有一些帮助。
"高性能短链设计[转]"继续阅读
Debian 下安装 Nginx 非常容易。
apt update
apt install nginx
"Debian 下安装 Nginx[转]"继续阅读
一、部署 eslint 规范 JavaScript
1.1 原理
husky + lint-staged + prettier + eslint + commitlint
"通过 eslint stylelint htmllint 规范前端项目代码"继续阅读
安装 rollup
npm install rollup --save-dev
"使用 rollup 打包可按需加载的 NPM 包"继续阅读
版次:2012 年 3 月第 1 版
4 变量、作用域和内存问题
4.1 基本类型和引用类型的值
4.1.4 检测类型
如果变量是给定引用类型的实例,那么 instanceof
操作符就会返回 true
。
4.3 垃圾收集
找出那些不再继续使用的变量,然后释放其占用的内存。为此,垃圾收集器会按照固定的时间间隔,周期性地执行这一操作。
"读书笔记:《JavaScript高级程序设计》 - [美]Nicholas C·Zakas 著 / 李松峰 曹力 译"继续阅读
Write a function that takes in a string of valid JSON and converts it to an object (or whatever your chosen language uses, dicts, maps, etc).
安装
npm install --save-dev webpack@4.30.0 webpack-cli@3.3.2
"webpack 4 快速搭建"继续阅读