随笔分类 -  Javascript

摘要:Person类和person实例 首先给出一段js代码: function Person() {} const person = new Person() 根据以下规则: 每个实例都有一个__proto__指向其原型对象。 每个构造函数都有一个prototype属性指向其实例的原型对象 每一个原型都 阅读全文
posted @ 2024-05-21 17:30 hdxg 阅读(10) 评论(0) 推荐(0) 编辑
摘要:面试的时候,多次被问到Object和Map的区别,我都没答上,我以为可能问原理的可能多一些... 于是今天就仔细地看了一下Object和Map的区别。网上各文章都说Object的键只能是字符串或Symbol,那我怎么记得我之前可以使用数字作为键呢。于是我就打开控制台试了一下: const objKe 阅读全文
posted @ 2023-02-16 23:05 hdxg 阅读(118) 评论(0) 推荐(0) 编辑
摘要:参考资料 [1] javascript——原型与原型链 constructor、__proto__、prototype组成的复杂网络 先给出一段代码: function Person() {} var person = new Person(); var object = new Object(); 阅读全文
posted @ 2021-09-12 17:58 hdxg 阅读(15) 评论(0) 推荐(0) 编辑
摘要:参考资料 js实现浅拷贝与深拷贝的区别于实现方式 前言 js中的数据类型就只有string、number、boolean、object、null、undefined这6种。而浅拷贝和深拷贝只是针对object而言的,其他5种不存在浅拷贝和深拷贝的问题。 一个object其实可以看做是一颗树,树的叶子 阅读全文
posted @ 2021-09-12 17:57 hdxg 阅读(41) 评论(0) 推荐(0) 编辑
摘要:前言 网上找了几篇文章,发现最终都参考自参考资料1。但我觉得参考资料1写得不够好,特别是实现const,并没有考虑完整。作者将常量挂在了window上,导致全局不能出现同名的常量。并且如果在某个函数内用const声明的常量,在函数外应该是访问不到的,而由于挂在了window上,导致函数内声明的常量也 阅读全文
posted @ 2021-09-12 17:56 hdxg 阅读(83) 评论(0) 推荐(0) 编辑
摘要:前言 抖动和防抖都是用来限制函数的执行频率,以优化函数触发频率过高导致的响应速度更不上触发速度,出现延迟、假死或卡顿的现象。 常见的频繁触发的事件有: 输入框的keyup/keydown 调整窗口大小的resize 页面滚动的scroll 鼠标滑动的mousedown/mousemove 防抖 在高 阅读全文
posted @ 2021-06-01 13:24 hdxg 阅读(121) 评论(0) 推荐(0) 编辑
摘要:PS:本文是对参考资料1的阅读笔记,可以稍微浏览下,建议还是看参考资料1。 constructor() Promise在构造函数传入的函数里(通过resolve或reject)决定状态,在then()函数里注册确定状态后的回调。 如果在resolve里传入一个新的promise,那么当前promis 阅读全文
posted @ 2021-05-03 16:10 hdxg 阅读(81) 评论(0) 推荐(0) 编辑
摘要:前言 Promise 规范有很多,如 Promise/A,Promise/B,Promise/D 以及 Promise/A 的升级版 Promise/A+,最终 ES6 中采用了 [Promise/A+ 规范](Promise/A+ 规范)。 本文是对参考资料1中给出的源代码的阅读笔记,为了尊重原作 阅读全文
posted @ 2021-05-03 16:08 hdxg 阅读(113) 评论(0) 推荐(0) 编辑
摘要:为什么要搞懂this 简单地说,this就是当前函数的调用者。然而this的调用者有时候不那么明显可以看出,因此会造成各种编程中的问题: 对于下面这段代码,因为fn()在box.onclick()内被执行的,因此很多人会认为fn()的调用者是box,但实际上却是window。 var box = d 阅读全文
posted @ 2021-05-03 16:07 hdxg 阅读(63) 评论(0) 推荐(0) 编辑
摘要:PS:下面是我个人的总结,有些所以然都略过了,想理解得更透彻,建议看参考资料。 三者的用法及区别 const obj = { name: 'jack' } function printMessage(age, sex) { console.log(`my name is ${this.name}, 阅读全文
posted @ 2021-05-03 16:06 hdxg 阅读(175) 评论(0) 推荐(0) 编辑
摘要:参考资料 [1] JS浏览器事件循环机制 [2] 我以为我很懂Promise,直到我开始实现Promise/A+规范 PS: 本文除了对微任务和宏任务有自己的理解外,其他的都是复制粘贴。 浏览器内核 浏览器内核中有种线程在工作: GUI渲染线程:负责渲染页面,解析HTML,CSS构成DOM树等,当页 阅读全文
posted @ 2021-05-03 15:59 hdxg 阅读(154) 评论(0) 推荐(0) 编辑
摘要:constructor、__proto__、prototype组成的复杂网络 先给出一段代码: function Person() {} var person = new Person(); var object = new Object(); 根据这段代码,可以画出下图: 图看起来很复杂,但其实可 阅读全文
posted @ 2021-05-01 23:08 hdxg 阅读(24) 评论(0) 推荐(0) 编辑
摘要:以下情况会在js中出现一些莫名的bug,每个情况用分割线分开。 PS:有新发现时更新。 在条件语句中出现赋值语句(而不是应该出现的判断语句),js会认为是true: if (condition = 'A') { // 这里面的代码必定会执行 } 在逻辑判断时,使用==有时候会出现我们不想出现的结果, 阅读全文
posted @ 2021-05-01 19:44 hdxg 阅读(76) 评论(0) 推荐(0) 编辑
摘要:一个斜杠加上一个字母的形式,称为转义字符。为什么会有转义字符这个东西呢?因为我们的键盘很小,没法把所有的字符(包括特殊字符)全部排列在有限的空间里。因此如果我们想要使用这些特殊的字符,就得使用转义字符进行转义。可以理解为转义字符(斜杠+键盘上某个可见字符)被映射成了一个特殊字符。 如何在正则表达式中 阅读全文
posted @ 2020-10-13 18:52 hdxg 阅读(7086) 评论(0) 推荐(0) 编辑

// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css
点击右上角即可分享
微信分享提示