- 博客(23)
- 收藏
- 关注
原创 17 ES6标准入门(Module)
精华(1) ES6是静态加载,在编译时加载,为静态代码检查提供了更多可能性。(2) export实质上是向外提供了接口,正确的语法:export const a = 1export function f(){}// 更加推荐的做法:const b = 1const c = 'de'function g(){}export {a, g}export {a as hel...
2018-04-28 14:52:32 264
原创 12 ES6标准入门(Generator函数的异步应用)
ES6 诞生以前,异步编程的方法,大概有下面四种。 - 回调函数 - 事件监听 - 发布/订阅 - Promise 对象协程的Generator函数实现整个Generator函数就是一个封装的异步任务,或者说是异步任务的容器。异步操作需要暂停的地方,都用yield语句注明。Generator函数可以暂停执行和恢复执行,这是它能封装异步任务的根本原因。除此之外,它还有两个特性...
2018-04-27 17:35:50 167
原创 16 ES6标准入门(Decorator)
Webpack 配置目前使用这个特性,需要使用webpack进行编译首先安装插件:npm install babel-plugin-transform-decorators-legacy --save-dev然后在哎.babelrc中进行配置:{ "presets": ["es2015", "stage-0", "react"], "plugins": [ ...
2018-04-27 09:28:21 247
原创 2017年前端面试经历7-瓜子二手车
本来只是打算过去面试,打打酱油,有个一小时就能回来,结果没想到一去就是四面,结束之后居然拿到offer了面试了这么多家,拿到的第一个offer,还是挺高兴的HR总是一副言语轻柔但是盛气凌人的态度,给我的最后期限就是今天下午(周五下午6点前),我不准备接受这个offer,因为我觉得网易和百度应该八九不离十,而且我觉得去瓜子这种平台,我可能不到一年又会想要离开,这样的话我还不如在简单再沉淀一下...
2018-04-26 19:59:02 3379
原创 15 ES6标准入门(class的继承)
这里的内容和原型、继承关系很大,应该再重新回顾原型、继承之后再来重看这里(2018.4.26)简介Class可以通过extends关键字实现继承class Point {}class ColorPoint extends Point { constructor(x, y, color) { super(x, y); // 调用父类的constructor(x, y...
2018-04-26 16:51:52 201
原创 14 ES6标准入门(class)
ES6为了更接近传统语言的写法,引入了Class的概念,作为对象的模板。基本上,ES6的class可以看作只是一个语法糖,它的绝大部分功能,ES5 都可以做到,新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。ES5的写法:function Person(name) { this.name = name}Person.prototype.sayHe...
2018-04-26 11:46:37 195
原创 13 ES6标准入门(async函数)
含义async函数是ES2017引入的,实质上,async函数是Generator函数的语法糖用一个Generator函数依次读取两个文件const fs = require('fs');const readFile = function (fileName) { return new Promise(function (resolve, reject) { fs....
2018-04-25 16:52:50 522
原创 JS40 reduce方法
数组的reduce()方法接受一个函数作为累加器,将数组的每个值从左到右开始用该函数进行处理,最终输出为一个值最常见的用法就是数组求和:let arr = [5, 4, 3, 2, 1];let reducer = (total, currentValue, currentIndex, arr) => { console.log('total', total); con...
2018-04-25 16:11:34 531
原创 11 ES6标准入门(Generator)
基本概念Generator函数是ES6提供的一种异步编程解决方案,语法行为与传统函数完全不同。Generator函数有多种理解角度。语法上,首先可以把它理解成,Generator函数是一个状态机,封装了多个内部状态。执行Generator函数会返回一个遍历器对象,也就是说,Generator函数除了状态机,还是一个遍历器对象生成函数。返回的遍历器对象,可以依次遍历Generator函数...
2018-04-24 19:26:47 132
原创 10 ES6标准入门(Iterator)
Iterator(遍历器)的概念遍历器(Iterator)是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署 Iterator 接口,就可以完成遍历操作(即依次处理该数据结构的所有成员)。Iterator 的作用有三个: 1. 为各种数据结构,提供一个统一的、简便的访问接口 2. 使得数据结构的成员能够按某种次序排列 3. ES6 创造了一种新的遍历命令for....
2018-04-20 15:26:58 132
原创 09 ES6标准入门(Promise)
含义Promise 是异步编程的一种解决方案,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。Promise对象有以下两个特点。对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:...
2018-04-19 10:20:50 203
原创 08 ES6标准入门(Reflect)
概述Reflect 对象与 Proxy 对象一样,也是 ES6为了操作对象提供的新的 API,Reflect 对象的设计目简单来说有两方面: 1. 补充原型定义在 Object 对象上的方法的不规范和不足 2. 与 Proxy 对象一一对应,让 Proxy 对象可以方便的调用对应的 Reflect 方法,也就是说,不管 Proxy 怎么修改默认行为,你总可以在 Reflect 上获取默认行...
2018-04-19 10:20:31 133
原创 07 ES6标准入门(Proxy)
概述Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。var obj = new Proxy({}, { get: function (target, key, receiver) { console.log(`getting ${key}!`); return R...
2018-04-19 10:20:12 289
原创 06 ES6标准入门(Set 和 Map 数据结构)
SetSet类似于数组,但成员都是唯一的。Set本身是一个构造函数,用来生成Set数据结构const set = new Set();let arr = [1, 2, 2, 3, 4, 4, 5];arr.forEach(x = > set.add(x));console.log(set); // 1,2,3,4,5Set函数可以接受一个函数作为参数,用来初始化...
2018-04-18 17:25:27 133
原创 05 ES6标准入门(Symbol)
概述ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值。它是 JavaScript 语言的第七种数据类型,前六种是:undefined、null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。注意,Symbol函数前不能使用new命令,否则会报错。也就是说,由于 Symbol 值不是对象,所以不能添加属性。Symbol函...
2018-04-18 17:25:15 159
原创 04 ES6标准入门(对象的扩展)
==对原型、super关键字的理解还是模模糊糊,super指向当前对象的原型对象,怎么使用呢?为什么在constructor里面要用super呢?看看后面再回头看能不能理解吧。(20180126)==对象的简写对象中可以直接写变量,此时属性名为变量名,属性值为变量值let a = 'z';let b = {a};除了属性,方法也可以简写:let obj = { ...
2018-04-18 17:25:01 187
原创 03 ES6标准入门(函数的扩展)
思考题第一道:function foo() { setTimeout(() => { console.log('id:', this.id); }, 100);}var id = 21;foo.call({ id: 42 });第二道function Timer() { this.s1 = 0; this.s2 = 0; // 箭...
2018-04-18 17:24:44 229
原创 02 ES6标准入门(数组的扩展)
第七章 数组的扩展Array.from()将类数组对象(比如arguments对象和DOM操作返回的NodeList集合)和可遍历对象(iterable, 比如Map和Set)let a = { 0: 1, 1:100, length: 2}[].slice.call(a);Array.from(a)也可以将字符串转换成数组(因为字符串部署了Itera...
2018-04-18 17:24:25 144
原创 01 ES6标准入门(2-6章)
买了一年多了,当时只是为了应付面试,简单看了一下重点,现在发现第三版都已经出了,可是好多东西我还是模棱两可。塌下心来,认真的学习一遍第二章 let和const不存在变量提升let和const不存在变量提升,所以变量一定要在声明后使用,否则报错console.log(a); // undefinedvar a = 123;console.log(b); //...
2018-04-18 17:24:07 196
原创 2017年前端面试经历6-京东无线
京东的机会其实挺多也挺不错的,京东总部在亦庄,实在无法考虑。每天来回的时间最少也得三个多小时。后来发现在京东在北辰还有办公地点,离家很近,坐地铁去不能更方便。于是也参加了两次面试。第一个是京东的无线团队,这个有点特殊,这个团队是京东在上海的团队,但是这个团队需要在北京招聘研发人员留守,所以人在北京,每天业务沟通都要通过电话会议或者其他通讯工具,实在是有些别扭这次面试比较水,现场面试的姑娘和...
2018-04-12 16:46:01 906
原创 清除浮动
一个误区<div class="left">左侧</div><div class="right">右侧</div><div class="bottom">底部</div>.left { float: left; width: 1000px; heigh
2018-04-03 12:07:10 111
原创 call和apply的理解
例子假设有一个构造函数 Catfunction Cat(){}在它的原型上定义一个方法:Cat.prototype.food = 'fish';Cat.prototype.say = function(){ alert('I like ' + this.food)}创建一个 Cat 的实例 miao, 就可以调用原型上的方法let miao = n...
2018-04-03 10:35:25 276
原创 2017年前端面试经历5-华融科技
华融是一个央企,当时经过初试,让我心情很沮丧。但是后来发现,原来不是他们没看上我,而是不担心浪费面试者的时间,就是一次一次慢慢来,初试就是简单聊15分钟就让你走人,回头再约你过来复试。后来收到几个offer之后,也就没在接受它的复试邀请,目前阶段还是不适合去国企。那天本来约了两个面试,上午是华融,下午是美团外卖。上午一大早跑到金融街,结果找不到停车位,费了好久停好车,去了华融。果然是央...
2018-04-02 19:09:36 659
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人