es6
文章平均质量分 68
何其涛
我的qq:459069283 有什么问题可以加我,一起讨论学习!
展开
-
let和const声明
let和const声明let命令let声明只能在代码块中起效{ let a = 10; var b = 1;}a // 未定义b // 1 var全局声明let变量在循环中 let只在每次的循环中起作用var a = [];for (var i = 0; i < 10; i++) { a[i] = function () { consol...原创 2018-05-02 23:14:58 · 523 阅读 · 0 评论 -
React中的函数式编程及函数式编程定义的深刻解读
React中的函数式编程及函数式编程定义的深刻解读因为一直有了解函数式编程,也知道React是比较遵循函数式编程设计模式的框架,但是一直对函数是编程的定义和理解不是很清楚,到底函数式编程有上面优势,React如何遵循函数是编程,这些都是需要去仔细推敲的,可以让以后的代码写的更为优雅和合理什么是函数式编程函数是编程是一种设计思想,就像面向对象编程也是一种设计思想。函数式编程总的来说就是用...原创 2019-02-13 22:35:04 · 4472 阅读 · 3 评论 -
Fetch API基于Promise封装的Http请求接口详解
fetch接口是用来解决Ajax(xhr)在写法和调用上的不合理和开放的js接口,已经在很多项目上使用,运行良好,取代ajax也只是时间问题,虽然fetch还有一些功能不全面但是使用上已经没有什么问题,所以我写下来记录一下自己的学习两者对比Ajax请求var xhr = new XMLHttpRequest();xhr.open('GET', url);xhr.responseTyp...原创 2019-01-16 20:47:25 · 1815 阅读 · 0 评论 -
promise,Generator函数,async函数区别与理解
promise,Generator函数,async函数区别与理解promise,generator函数和async函数是es6中的三个比较重要的新语法,都是用来解决异步操作为问题的,初学时只知道三者大概怎么用,但是最关键的三者到底有什么区别,什么时候可以用到这些认识都很模糊。这里对这三者进行一下个人理解的记录Promisepromise比较简单,也是最常用的,主要就是将原来的用回调函数的...原创 2018-11-07 21:09:53 · 9982 阅读 · 2 评论 -
Generator函数异步编程同步写法
Generator 函数的语法简介基本概念Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同。本章详细介绍 Generator 函数的语法和 API,它的异步编程应用请看《Generator 函数的异步应用》一章。Generator 函数有多种理解角度。语法上,首先可以把它理解成,Generator 函数是一个状态机,封装了多个内部状态。...原创 2018-05-03 11:42:27 · 565 阅读 · 0 评论 -
Interator遍历接口和for...of遍历
Iterator和for…of循环Iterator(遍历器)的概念Iterator作用1,为各种数据解构,提供一个统一的,简便的访问接口2.是数据解构的成员能够按某种次序排列3,创造一种新的遍历命令for…of循环,Interator接受主要供for…of消费Iterator的遍历过程就是不断调用next方法,直到指针指向结束为止,每次返回一个包含value和done两...原创 2018-05-03 11:41:19 · 638 阅读 · 0 评论 -
Promise异步编程
Promise含义Promise是异步编程的一种解决方案 .(1)Promise对象有三种状态:pending,fulfilled,rejected,只有异步操作的结果,可以决定是哪一种状态,其他操作无法改变这个状态(2)Promise对象状态一旦改变,不会再变,任何时候都可以获取到这个结果,而事件一旦发生,没有监听,就得不到结果了基本用法Promise构造函数,可以在回调...原创 2018-05-03 11:40:19 · 158 阅读 · 0 评论 -
Reflect--Object内部方法
Reflect概述(1) 该对象是把Object对象上的一些明显属于语言内部的方法放在Reflect对象上(2)同时修改Object方法,使返回结果更合理(3)让Object操作都变成函数行为。某些Object操作是命令式,比如name in obj和delete obj[name],而Reflect.has(obj, name)和Reflect.deleteProperty(ob...原创 2018-05-03 11:39:51 · 353 阅读 · 0 评论 -
Proxy数据代理
Proxy概述Proxy用于修改某些操作的默认行为,等同于在语言层面做出修改.Proxy在目标对象前架设一层”拦截”.外界对该对象的访问都必须通过这一层拦截,对外界的访问进行过滤和改写var obj = new Proxy({}, { get: function (target, key, receiver) { console.log(`getting ${key}!...原创 2018-05-03 11:38:13 · 1177 阅读 · 0 评论 -
Set和Map数据结构
Set和Map数据结构set基本用法类似于数组,但是成员的值都是唯一的,不能重复const s = new Set();[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));for (let i of s) { console.log(i);}// 2 3 5 4可以接受一个数组或类似数组的对象进行初始化// 例一...原创 2018-05-03 11:35:54 · 148 阅读 · 0 评论 -
Symbol笔记
Symbol概述symbol是一种行的原始数据类型,前六种是:undefined、null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。主要是为了防止继承父类元素,新的属性与父类属性冲突let s = Symbol();typeof s// "symbol"可以放入参数,主要是为了区分Symbol实例let s1 =...原创 2018-05-03 11:35:14 · 238 阅读 · 0 评论 -
对象扩展
对象扩展属性的简写const foo = 'bar';const baz = {foo};baz // {foo: "bar"}// 等同于const baz = {foo: foo};函数内使用属性简写function f(x, y) { return {x, y};}// 等同于function f(x, y) { return {x: x, y:...原创 2018-05-02 23:19:59 · 193 阅读 · 0 评论 -
函数扩展
函数扩展函数参数的默认值设置函数默认值function Point(x = 0, y = 0) { this.x = x; this.y = y;}const p = new Point();p // { x: 0, y: 0 }表达式 赋默认值let x = 99;function foo(p = x + 1) { console.log(p);}...原创 2018-05-02 23:18:44 · 131 阅读 · 0 评论 -
数值的扩展
数值的扩展二进制和八进制表示法用前缀0b表示二进制 0o表示八进制0b111110111 === 503 // true0o767 === 503 // true转成十进制Number('0b111') // 7Number('0o10') // 8Number.isFinite(), Number.isNaN()Number.isFinite()判断是否有...原创 2018-05-02 23:18:08 · 122 阅读 · 0 评论 -
正则扩展
正则扩展RegExp方法var regex = new RegExp('xyz', 'i');// 等价于var regex = /xyz/i;var regex = new RegExp(/xyz/, 'i');//error es5会直接报错new RegExp(/abc/ig, 'i').flags// "i" es6会直接替换原有修饰符u修饰符正则添加了...原创 2018-05-02 23:17:28 · 322 阅读 · 0 评论 -
字符串扩展
字符串扩展codePointAt()codePoint对于中文字符的当前位置取到的就是当前中文字,对于后一位取到的是中文字符内的第二个字符,如果想一个一个区分每个字需要用for….of….let s = '��a';s.codePointAt(0) // 13407---��s.codePointAt(1) // 57271---��的第二个字符s.codePointAt(2...原创 2018-05-02 23:16:50 · 774 阅读 · 0 评论 -
变量的解构赋值
变量的解构赋值数组的解构赋值基本方法let a = 1;let b = 2;let c = 3;//es6 解构let [a, b, c] = [1, 2, 3];只要模式相同就可以匹配let [foo, [[bar], baz]] = [1, [[2], 3]];foo // 1bar // 2baz // 3let [ , , third] = ["f...原创 2018-05-02 23:15:57 · 103 阅读 · 0 评论 -
直白理解javascript中函数柯里化,偏函数,反函数柯里化
直白理解javascript中函数柯里化,偏函数,反函数柯里化因为之前有写过一篇理解函数式编程的,但是讲到函数式编程就必须提到函数柯里化, 函数柯里化是函数式编程中很常见的写法,这篇也是看了很多篇大佬的文章综合理解,下面是个人的一写简洁,希望能够更直白的理解上面这些定义函数柯里化定义官方定义: 是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受...原创 2019-03-22 15:01:15 · 366 阅读 · 0 评论