![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
拓展及总结深入
文章平均质量分 66
可乐雪碧薄荷糖
这个作者很懒,什么都没留下…
展开
-
拓展-10【Promises/A+规范与源码重写】
(1).环境搭建npm init -y全局安装nodemon设置运行命令"scripts": { "dev":"nodemon ./index.js -i ./data/" },npm run dev(2).完成一个基本的promiseMyPromise.jsconst PENDING = 'PENDING', FULFILLED = 'FULFILLED', REJECTED = 'REJECTED';class My原创 2021-02-26 21:06:40 · 110 阅读 · 0 评论 -
拓展-9【Promise全解析】
(1).基本认知1.基本形式promise中有三个状态分别是 实现承诺-resolve 拒绝承诺-reject 承诺等待-pendingpromise是解决异步流程化的一种手段let promise = new Promise((resolve,reject)=>{ //resolve('承诺实现') reject('承诺石城大海')})promise.then((res)=>{ console.log(res)},(err)=>{原创 2021-02-26 21:02:31 · 408 阅读 · 0 评论 -
js继承的几种方式,圣杯模式
继承,在面向对象的编程中用的还是非常多的,虽然面向对象因为其复杂的构建对象的初始化,在大多数的程序中并没用用到,但是我们使用过后才发现,这使得今后项目的扩展和维护更加容易。话不多说,进入正题。1. 传统形式(原型链继承)//父类Father.prototype.name = "Li"function Father() { this.age = 18}//子类Son.prototype = new Father()function Son() {}var son = new Son转载 2020-12-24 16:05:52 · 1425 阅读 · 3 评论 -
拓展-8【exprot和exportdefault】
1、export导出多个对象,export default只能导出一个对象2、export导出对象需要用{ },export default不需要{ },如:export {A,B,C};export default A;3、在其他文件引用export default导出的对象时不一定使用导出时的名字。因为这种方式实际上是将该导出对象设置为默认导出对象,如:假设文件A、B在同级目录,实现文件B引入文件A的导出对象deObject:文件A:export default deObject原创 2020-12-09 09:13:51 · 817 阅读 · 0 评论 -
拓展-7【原型链小结】
一.什么是原型链每个对象都可以有一个原型_proto_,这个原型还可以有它自己的原型,以此类推,形成一个原型链。查找特定属性的时候,我们先去这个对象里去找,如果没有的话就去它的原型对象里面去,如果还是没有的话再去向原型对象的原型对象里去寻找...... 这个操作被委托在整个原型链上,这个就是我们说的原型链了。二.prototype/_proto_prototype: prototype属性,它是函数所独有的,它是从一个函数指向一个对象。它的含义是函数的原型对象,也就是这个函数(...原创 2020-12-09 09:12:37 · 93 阅读 · 0 评论 -
拓展-6【es6新增语法与api小结-未完待续】
一.基础es5发布于2009年 其实用的是99年发布的ecma3.0改进的3, es6发布于15年babel进行es6的转译编码但是不能转译api 可以通过babel-polyfill进行转译在线转码工具有babel 和 traceur两种二.let/constlet变量不提升 不能重复 且同一作用域下不能声明同样名称的两次 包括函数可以用let 来解决闭包的问题,因为每循环一次就产生一次作用域var arr = [];for(let i = 0; i<原创 2020-12-08 09:18:03 · 262 阅读 · 1 评论 -
拓展-5【一篇文章搞懂正则】
一.基本形式ihateregex.io正则查询网站(1).声明方式var exp = /at/gimvar p2 = new RegExp('at','gim') 不建议使用这种方式var p1 = /\.at/var p2 = new TegExp('\\.at')因为在字符串中需要转译(2).空格无法匹配console.log(/ab /.test('ab'));false二.元字符.任意字符?贪婪匹配()子表达式[]字符组[^]非字符原创 2020-12-07 09:55:34 · 327 阅读 · 0 评论 -
拓展-4【数组扩展方法小结2】
一.研究方向(1).reduce基本概念reduce的参数为data.reduce((pre,item,index,itemArray),start)pre:为上一次函数循环后的返回值item:当前操作的项index:当前操作项的下标itemArry:当前操作的数组start:为初始值初始值问题如果不赋值的化,默认Pre为数组第一项,item为数组第二项,index为1如果数组为空,不赋初始值便开始循环为报错,有初始值则为空对象应用问题对象里的属性原创 2020-12-07 09:46:50 · 126 阅读 · 0 评论 -
拓展-3【数组扩展方法小结1】
一.补充知识(1).稀松数组var arr = [1,2,3,4,5]delete arr[1];结果:[1,empty,3,4,5]var arr = [1,,3,4,5]log(arr[1])结果:undefind(2).类数组argumentsDOMList字符串(用数组的Push方法会报错)var str = '12345'log(str[0])结果: 1(3).join/tostringlog([]) = []log(Arra原创 2020-12-07 09:34:23 · 132 阅读 · 0 评论 -
拓展-2【类型转换小结】
一.String()/toString()/''+(1).String1.tostring 会报错(1).tostring()可以步骤String(引用类型)先去找自身原型上的tostring()找不到就去Object的原型上找toString()如果tostring()返回的是引用类型则会调用valueoftoString({}) = [object Object]{}是由object构造而成,所以直接在调用Object原型上的toString 所以是objec原创 2020-12-07 09:18:24 · 94 阅读 · 0 评论 -
拓展-1【date与newdate】
date与newdateDate与new Date也不相等数据类型浏览器提供的,上面是ECMA提供的原创 2020-12-07 09:16:39 · 122 阅读 · 0 评论