- 博客(12)
- 收藏
- 关注
原创 JS原生实现Promise.all
旦旦最近开始找工作啦~~~~~今天遇到一个挺有意思的面试题,让我用js原生实现Promise.all因为不熟悉这个API,所以当时只是实现了全部resolve后执行回调这个功能回来后又看了下Promise.all的详细规则和使用方法,做了亿点改进Promise.all描述Promise.all(iterable) 方法返回一个 Promise 实例此实例在 iterable 参数内所有的 promise 都“完成(resolved)”或参数中不包含 promise 时回调完成(resolve
2020-11-12 23:49:03 1972 4
原创 V8引擎笔记整理(一)——JS编译方案发展简史
V8引擎笔记整理(一)1 - 知名的js引擎有哪些?V8-由谷歌开源的以 C++ 语言编写Google开源高性能JavaScript和WebAssembly引擎。它用于Chrome和Node.js等。它实现了ECMAScript和WebAssembly,并在Windows 7或更高版本,macOS 10.12+和使用x64,IA-32,ARM或MIPS处理器的Linux系统上运行。—— 简单来说,它是一个接收JavaScript代码,编译代码然后执行的C++程序,编译后的代码可以在多种操作系统多种处
2020-10-05 00:26:14 471
原创 JavaScript闭包(1):闭包的形成机制梳理
JavaScript闭包详解闭包前置知识:作用域,作用域链,变量生命周期1.当我们调用函数的时候,js引擎为我们做了什么?2.JavaScript的垃圾回收机制闭包前置知识:作用域,作用域链,变量生命周期从我自学前端以来,就有无数的人告诉我,闭包几乎是JavaScript中最重要的几个技术点之一,必须把把闭包掌握,才算是踏入JavaScript的大门。现在,让我们一起揭开闭包的神秘面纱,看看这到底是个什么机制。在学习闭包前,我们需要对JavaScript的变量生命周期,作用域,作用域链等有一定的认识,
2020-07-10 20:57:39 1197 1
原创 JavaScript完整原型链图解
了解完整原型链对我们有什么帮助?没什么帮助,装逼意义大于实用(doge)好的吧,可能是我还是新手,没碰上这方面的需求完整原型链图示上图里,我们常用的部分是右下至右上的链,即从构造函数到构造函数原型对象再到null的部分。而实际上,我们常见的Function和Object也参与了原型访问链。在这个图中,不管将哪个块当作实例对象,总有一个构造函数和一个原型对象和它组成三角关系。只有一个块例外,那就是Object.prototype。若Object.prototype.__proto__ ===
2020-07-06 21:04:00 4929 5
原创 这些细节你可能一辈子都用不上——JavaScript各种冷知识(持续更新)——好的吧,有些可能也用得上
js各种小坑1. isNaN()与Number.isNaN()2. 数字字面量后的"."优先识别为字面量的一部分,而非对象属性访问符3.1. isNaN()与Number.isNaN()在JavaScript中,NaN是一种特殊的值NaN表示(not a number 不是一个数字),如果数学运算符的操作数不是数字类型,且无法隐式转换成数字类型,则会返回NaN.常见的对NaN困惑有:NaN的类型是numbertypeof NaN ; //number对,如你所见,“not a numbe
2020-06-16 23:02:34 341 1
原创 有一个无聊的人用JavaScript封装了单向链表LinkedList构造函数
都说对于程序员,数据结构算法才是ta的核心竞争力。然而作为一个野蛮自学的JavaScript的拥护者,我,旦旦boom,至今还没对算法进攻,真是愧对csdn这么多资源。我有罪,我反省orz栈和队列就直接跳过了,直接来搞链表的封装。JavaScript中的构造函数总所周知,js是没有类class这个东西的,虽然ES6提供了class的书写方式,但本质上也是用函数模拟出来的。...
2020-06-15 21:45:21 372 1
原创 JavaScript预编译——谁说js代码是由上到下一行一行执行的?
总所周知,js在运行时,会有三个阶段,分别是:词法分析阶段预编译阶段解释执行阶段
2020-06-09 09:44:35 1749
原创 2020年了,你还不懂this绑定规则?一篇博客让你理解指向玄幻的this!
一、JavaScript中的this是什么?先答后解:this是一个属性,它会绑定一个指针,指向一个对象。解:什么的属性?活动记录的属性。当一个函数被调用时,会创建一个执行上下文,也称活动记录。这个记录会包含函数的调用栈、调用方式、传入的参数等,this就是其中一个属性。指向哪个对象?调用这个函数的对象,即谁调用这个函数,这个函数里的this就指向谁。至于如何找到这个对象,请看下节。什么时候绑定?当函数被调用的时候绑定,当函数被调用时绑定,当函数被调用时绑定,重要的事情说三遍。
2020-06-08 22:31:02 398
原创 JavaScript全局污染
当我们在全局声明变量的时候,我们干了啥?先答后解:当我们var一个变量的时候,我们其实定义了一个不可配置的属性。谁的属性?当然是对象的属性。哪个对象?盲生,你发现了华点!window全局对象表示有被cue到。PS:在非严格模式中,若未事先声明变量就直接赋值,js会隐式声明该变量,与用var声明的变量不同,这种隐式声明的变量是可配置的(可用delete运算符进行删除)。首先,让我们var...
2020-06-05 15:20:25 718
原创 JavaScript学习笔记——工厂模式、构造函数模式、原型模式
常用的使用字面量或Object构造函数来创建对象的时候,如果需要创建多个具有相同属性不同属性值的对象时,会产生大量的重复代码,这无疑对于代码的书写和阅读都有极大的不便利。为了解决这个问题,工厂函数应运而生。1.工厂模式由于在js中无法创建类,故使用封装函数的方式,封装以特定接口创建对象的细节,在调用的时候,可直接根据接受的参数,来构建包含所有必要信息的对象。如下:<script>...
2020-03-09 09:15:40 199
原创 JavaScript 作用域 作用域链 变量的生命周期
本文参考:JavaScript权威指南(第六版)当我们声明变量的时候,我们在干嘛?先答后解:当我们var一个变量的时候,我们其实在定义一个不可配置的属性。谁的属性?当然是对象的属性。哪个对象?盲生,你发现了华点!PS:在非严格模式中,若未事先声明变量就直接赋值,js会隐式声明该变量,与用var声明的变量不同,这种隐式声明的变量是可配置的(可用delete运算符进行删除)。首先,让我们...
2020-02-27 10:08:12 370
原创 关于JavaScript严格模式的一些笔记
严格模式是什么?js的严格模式,即ES5中引入一种代码执行方式的变体,与js的非严格模式相比,它:修正了该语言的一些重要缺陷,消除了一些不严谨的地方清除了一些代码运行的不安全之处,增强了安全机制提高了代码的运行速度禁用了一些未来可能会定义的语法,为以后的版本做准备支持严格模式的浏览器: Internet Explorer 10 +、...
2020-02-25 00:53:23 243
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人