
javascript复习之旅
文章平均质量分 68
lazy_tomato
wx w2505655377
展开
-
javascript复习之旅 2.3 instanceof
看到上述解释的概念,其实可以了解到,instanceof就是沿着对象a的__proto__属性,一直向上寻找__proto__。如果 构造函数的原型对象 在这个链条上,返回 true。原创 2022-11-30 19:39:40 · 511 阅读 · 0 评论 -
javascript复习之旅 2.2 typeof
【代码】javascript复习之旅 2.2 typeof。原创 2022-11-29 20:32:20 · 533 阅读 · 0 评论 -
JavaScript 中常用的排序
如果不取出中间的元素,假如:获取到的中间元素是最大的或者最小的元素。实现原理:for 循环加递归,每次递归从数组中间抽取一项,比中间项小的项,放左侧数组,比中间项大的项,放右侧数组。实现原理就是:双重 for 循环,内层的循环实现相邻的两项进行对比,外层循环每执行完一次,都会筛选出当前数组中最大的项。实现原理:双层循环,内层循环会将数组每一项向后移,直到匹配到满足条件的数据,将其插入对应的数组位置。自己手写这里的代码的时候,这里的取中间元素,我没有使用 splice,将项截取出来。上述的代码,是选择排序。原创 2022-11-27 16:35:51 · 861 阅读 · 0 评论 -
再苦再累也必须要弄懂的:ES6的ES Module
总结一下学到的知识。ES Module 是 ES6提供的模块化标准;默a认开启严格模式;原创 2022-09-03 20:06:48 · 3301 阅读 · 3 评论 -
javascript复习之旅 13.2 模块化(下)
每个模块的变量都是独立的(因为有包装函数),输出数据包裹在对象中,来解决命名冲突的问题。其次除了暴露的数据,内部变量私有,外部无法直接修改。代码同步执行,配合上缓存,来解决依赖之间错综复杂的关系。CommonjsCommonJS模块由JS运行时实现。CommonJS是单个值导出,本质上导出的就是exports属性。CommonJS是可以动态加载的,对每一个加载都存在缓存,可以有效的解决循环引用问题。CommonJS模块同步加载并执行模块文件。Esmodule。...原创 2022-07-31 14:43:27 · 644 阅读 · 0 评论 -
javascript复习之旅 13.1 模块化(上)
通过立即执行函数,我们可以实现数据私有,其次这里为了暴露数据,接收了一个形参。这种做法解决了所有代码都存储在一个文件的问题,但是依旧会出现命名冲突的问题。但是有时候我们代码需要使用到其他第三方库,例如jQuery,该怎么办?按功能,按类别,按规范,将一个js文件拆分成多个js文件。上述案例仅依赖jQuery,所以我可以手动的去导入依赖,去调整。一开始需求比较简单,快速写一个js脚本来实现一个功能。简单理解,就是把变量名放在对象中,简单的对象封装。ES6之前,仅函数存在块级作用域。...原创 2022-07-31 14:41:43 · 197 阅读 · 0 评论 -
javascript复习之旅 11.1 class基础使用
只要你的代码写在类或模块之中,就只有严格模式可用。考虑到未来所有的代码,其实都是运行在模块之中,所以ES6实际上把整个语言升级到了严格模式。一个类必须要有constructor没有的话默认为一个空的constructor。类的内部所有定义的方法,都是不可枚举的(non-enumerable)类和模块的内部,默认就是严格模式,所以不需要使用。暂时就这些,后续更深入理解了再写文章。class声明的函数不会提升。...原创 2022-07-14 20:25:15 · 203 阅读 · 0 评论 -
javascript复习之旅 9.2初识到手写 javascript 中的 bind 函数
今天研究一下 bind 函数,并且手写一下。阅读本文之前请熟练掌握:时间仓促,编写若有错误之处,请见谅。老规矩,第一步先看MDN 官方文档和之前学习的一样, 也是 Function 原型上的方法。再看看MDN官方介绍:bind() 方法创建一个新的函数,在 bind() 被调用时,这个新函数的 this 被指定为 bind() 的第一个参数,而其余参数将作为新函数的参数,供调用时使用。 能改变 this 指向;返回的是一个函数; 并不会执行函数 A 本身;bind 方法的参数,除了第一项,后续的参数会原创 2022-07-01 20:51:55 · 423 阅读 · 0 评论 -
javascript复习 8.从0-1 彻底理解new
运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。好吧,到现在为止我算是彻底理解new关键词干嘛的了。俗话说的好,找不到女票,可以给自己new一个对象。通过new运算符,我们可以得到一个对象。_来手写一个功能类似于new函数加深理解!!!!为了方便理解,模拟的步骤 一一对应 章节四的内容...原创 2022-06-30 21:40:11 · 225 阅读 · 0 评论 -
javascript复习之旅 9.1 从0到1认识`call apply`
好了废话不多说,上来先了解一下这两个函数有什么用。先说, 官方文档官方文档很简洁,但是我们一步一步分析。第一:call 方法,是在函数的原型上的。所以我收到的第一个信息第二:官方的解释是: call() 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。 所以又收到了这么几个信息call 可以使用一个指定的 this 来调用一个函数。 用通俗易懂的话来描述 就是改变 this 指向并且调用函数。 基本功能实现 去除掉注释好了测试一下,看是否 ok 支持接受额外参数说明:原创 2022-06-28 20:17:33 · 205 阅读 · 0 评论 -
javasript基础复习 4.this
当前执行上下文的一个属性,在非严格模式下,总是指向一个对象,在严格模式下可以是任意值。优先级new 绑定 > 显示绑定 > 隐式绑定 > 默认绑定备注原创 2022-06-27 21:53:57 · 155 阅读 · 0 评论 -
10.2 JS中的原型--难点分析以及原型链图解绘制
其实上一篇文章就基本说明了原型之间的关系。这里再总结一下:因为在 JS 中是没有类的概念的,为了实现类似继承的方式,通过 将对象和原型联系起来组成原型链,得以让对象可以访问到不属于自己的属性(即可以访问到原型链上的属性)。其实上面的基本只是理解透彻了,基本原型这个东西就很简单了。但是有一些特殊情况需要研究说明一下。我们知道,函数上有一个 prototype 属性,指向了它的原型对象。实例对象上有一个 指向它构造函数的原型对象。但是不要忘记了,函数也是一种特殊的对象!所以函数也会有属性。我们去看看他指向的什原创 2022-06-12 22:07:58 · 408 阅读 · 0 评论 -
10.1 JS中的原型
多年以前学过JS中的原型,但是并没有彻底理解。导致每次看到 prototype —> 头大。深入学习JS的过程中才发现,原型无处不在。时至今日,就让我再学习一次 JavaScript 中的原型,顺便做个总结。我定义一个函数 Tomato,然后打印一下它。可以发现函数Tomato,除了基本的几个属性,它还有一个属性:prototype。函数的prototype属性是什么?可以到上面的截图,就是一个对象。基于函数 ,我去 一个对象 ,然后打印一下 出来的对象 只有一个属性 。可以通过来获取的属性也可以通原创 2022-06-08 18:59:45 · 398 阅读 · 0 评论 -
14-4.Promise总结
一.测试手写的Promise安装插件npm i promises-aplus-tests -D修改package.json// 添加一个脚本 // ① test可自定义名称// ② promises-aplus-tests 插件名// ③ ./tomato/Promise 相对于package.json的文件路径"scripts": { "test": "promises-aplus-tests ./tomato/Promise" },修改我们的Pr原创 2022-05-21 16:20:06 · 269 阅读 · 1 评论 -
16. async await 基本概念
async函数函数的返回值为 promise 对象promise 对象的结果由 async 函数执行的返回值决定await表达式await 右侧的表达式一般为 promise 对象, 但也可以是其它的值如果表达式是 promise 对象, await 返回的是 promise 成功的值如果表达式是其它值, 直接将此值作为 await 的返回值await 必须写在 async 函数中, 但 async 函数中可以没有 await如果 await 的 promise 失败了, 代码直接暂停原创 2022-05-21 15:34:14 · 111 阅读 · 0 评论 -
14_1.ES6中的 Promise, 学习一下
startPromise中文释义: 承诺。Promise这个单词截止到现在,番茄都不知道敲过多少次了,工作中经常会使用到,但是我觉得我对它掌握程度不够熟练。今天再来理解理解Promise,然后手撕一个出来。YES,祝我好运!学习Promise之前,建议JS基础要打好,基本的原型 ,this指向 ,new 都需要掌握。1.Promise是什么?1.1 概念Promise是异步编程的一种解决方案,比传统的解决方案:“回调函数和事件” 更合理和更强大。所谓Promise,简单说就是一个容器,里原创 2022-05-19 21:15:46 · 377 阅读 · 0 评论 -
14_2.手写Promise
start花了两个小时手写了一个Promise,也算是说做就做,没有拖延。不管写的好坏与否,对Promise掌握程度还是有很大提升,写完的感受就很爽。(*^▽^*)暂时就写完整版吧,相关思路注释写的很详细了。Promise.js// 1 创建一个 函数 叫 Promisefunction Promise(executor) { // 3 实例上有几个属性 this.PromiseState = 'pending' this.PromiseResult = unde原创 2022-05-19 20:42:56 · 196 阅读 · 0 评论 -
14_3.JS中的错误怎么处理? try catch finally throw
标准解释try 语句测试代码块的错误。catch 语句处理错误。finally 语句在 try 和 catch 语句之后,无论是否有触发异常,该语句都会执行。throw 语句创建自定义错误。正文一console.log(1)a()console.log(2)// 1// ReferenceError: a is not defined我们写代码,有点bug是很正常的事情,例如上面的代码,在没有定义a的时候去调用它,就会报错,随即就导致console.log(2)没有被执行。原创 2022-05-19 20:30:55 · 166 阅读 · 0 评论 -
Javascript复习:1.简要说明数据类型
数据类型官方文档地址1.结论JS 数据类型分为两大类及八种数据类型。(到目前为止)JavaScript 是一种弱类型或者说动态语言。这意味着你不用提前声明变量的类型,在程序运行过程中,类型会被自动确定2.数据类型简单(基本)类型(除对象类型(object)以外的其它任何类型定义的不可变的值(值本身无法被改变))Boolean : true/falseNULL:nullUndefined:undifinedNumber:任意数值BigInt:大整数String:任意字符串S原创 2022-05-07 20:26:03 · 529 阅读 · 0 评论 -
21.我想理解 hash history 两种前端路由
START番茄也写一写,前端路由的两种模式时间仓促,能力有限,难免有言语不当之处,望指正。后端路由我最早接触路由这个概念呢,是在学习node.js的时候。使用node.js搭建一个后端服务,通过在后端服务配置不同的路由地址,浏览器请求这些地址。来获取各种内容(例如html,txt,json等).我眼中的路由呢,就好像是一种路径/地址,方便我们依据路径去寻找到对应的资源,仅此而已。早期的一些网站,就是用的后端路由,每点击一个菜单,就会切换一个url地址,来拿到不同的html以及其他原创 2022-04-28 20:25:24 · 922 阅读 · 0 评论 -
Javascript复习之旅--0.序
0.序STRAT番茄作为一个前端也有几个年头了,每当自己做完一个项目,总结成长、收获的时候,总觉得自己一直在吃老本。会觉得焦虑彷徨?仔细想想这样做并不能改变现状,只会让自己更加内耗罢了。思来想去,我觉得,我应该好好复习又或者说重新学习JavaSript。所谓的框架所谓的源码,不都是基于JavaSript?JavaSript玩的滚瓜乱熟,岂不是可以一招鲜吃遍天。目录END最近看了很多人写的文章,写的极好,既有趣又通俗易懂,真叫人拍案叫绝。定下目标:一方面是学到知识,二是写出优秀的博原创 2022-04-25 19:52:53 · 1397 阅读 · 0 评论