随笔分类 - JavaScript随笔
个人学习历程随笔
摘要:1. JavaScript 垃圾回收机制的思想很简单:确定哪个变量不会再被使用,然后释放它所占用的内存空间,垃圾回收程序每隔一段时间就会自动运行一次。但是我们需要对变量进行跟踪,标记不会再使用的变量。 2. 浏览器史上两种主要的标记策略: (1)标记清理:是 JavaScript 最常用的垃圾回收策
阅读全文
摘要:1. JavaScript 中基础类型变量时按照值传递,即 Number、Symbol、String、Boolean、Undefined、Null 引用类型变量按照引用传递,即Object 2. JavaScript 中函数参数都是按照值传递的,然而有些人可能会对下面例子有所误解,认为其是引用传递:
阅读全文
摘要:1. 之前在脑子比较混乱的时候写的一段水文:https://www.cnblogs.com/twinkleG/p/15362246.html 现在回过头来看有点没意义,重新组织一下语言。 2. 红宝书 P88 (1)JavaScript 中作用域也叫做执行上下文,变量和函数所处的上下文决定了它们能够
阅读全文
摘要:1. 之前转载别人的:https://www.cnblogs.com/twinkleG/p/15310285.html 2. JavaScript红宝书第四版学习总结: 【1】==、!= 被称作等于和不等于, 、!==被称作全等和不全等 【2】等于和不等于在进行比较之前会预先对操作数进行一些转换,转
阅读全文
摘要:Symbol符号:符号的用途确保对象属性使用唯一标识符,创建唯一记号,进而用作非字符串形式的对象属性。(1)基本用法:Symbol需要依靠Symbol()函数初始化,在调用Symbol()函数时,可以传入一个字符串参数作为对符号的描述。 let sym = Symbol('my symbol');
阅读全文
摘要:1. 闭包:指的是那些引用了另一个函数作用域变量的函数,通常在嵌套函数中出现闭包。 2. 简单理解一下定义和执行一个函数时发生的事情 【假设在全局作用域中定义函数】:首先,在定义一个函数时,会为这个函数创建一个作用域链,它预装载了全局变量对象,之后将这条作用域链保存到这个函数的内部属性 [[ sco
阅读全文
摘要:1. ES6 箭头函数:一对圆括号包含命名参数,后跟一个胖箭头(=>),加函数体。 可以实现和普通函数一样的功能,不同之处在于: (1)无法使用 arguments、super 、new.target 等,同时不能用于构造函数,箭头函数没有 prototype 属性. 在箭头函数中使用 argume
阅读全文
摘要:1. 在循环时,使用 while 的效率要比 for 高,因此尽量采用 while 循环: Array.prototype.myforEach = function (callback) { let index = -1; const length = this.length; while (++i
阅读全文
摘要:1. 首先需要了解一下在内存中数据的存放形式。内存中,分为了 栈区、堆区、全局/静态区、只读区。栈区主要存放局部变量值、函数命名参数,堆区存放引用类型变量。全局/静态区存放全局变量和静态变量,只读区存放常量和代码段。 2. 深拷贝和浅拷贝实际上是针对于应用类型数据来说的,因为对于基本数据类型变量来说
阅读全文
摘要:1. 下面两个情况分别输出什么? function a(b, c) { function b() {} alert(b); // function b() {} } a(1, 2); function a(b, c) { var b; alert(b); // 1 } a(1, 2); 2. 不太理
阅读全文
摘要:转自:https://blog.csdn.net/weixin_41784648/article/details/108252962 一些关于原型链的题目: 1. 让 Foo 继承 Bar,求 Foo.__proto__、Foo.prototype.__proto__ 以及 Function.__p
阅读全文
摘要:【很乱,不知道怎么说】 作用域就是一块代码区域中变量和函数的可访问范围,它控制着变量和函数的可见性和生命周期。一般分为全局作用域、函数作用域、ES6的块级作用域【let、const】。 作用域链决定了各级作用域中变量和函数的访问顺序,当前正处于哪个作用域,那这个作用域就处于作用域链的最前端,一般先在
阅读全文
摘要:1. new 一个构造函数的过程: 【1】创建一个空对象 【2】空对象的 [[ prototype ]] 指向 构造函数的 prototype 【3】将 this 指向新对象 【4】执行构造函数内部代码,给新对象添加属性 【5】返回新对象 2. 手写 new: function Dog(name)
阅读全文
摘要:1. 今天遇到了一些问题,复习了一下原型式继承... 详细讲解在:https://www.cnblogs.com/twinkleG/p/15325715.html 2. 原型式继承 目的是 实现一个对象属性被实例所共享,上代码: function func(obj) { function f() {
阅读全文
摘要:1. 模板字符串 2. 对象解构 3. 三个点 ... 4. Map、WeakMap、Set、WeakSet 5. Promise 6. async、await 7. 简写对象属性名 8. let const 9. class 10. Proxy
阅读全文
摘要:1. apply:改变函数的 this 指向并立即调用,第一个参数是 this 指向,第二个参数为数组形式传入函数参数. Function.prototype.apply = function (thisArg) { let context = thisArg || window; // windo
阅读全文
摘要:1. 在牛客看面试题时,经常看到这个题目,即 Object.prototype.toString.apply() / call(),所以记录一下查看的资料. 2. MDN 给出了比较详细的介绍:https://developer.mozilla.org/zh-CN/docs/Web/JavaScri
阅读全文
摘要:1. JavaScript 有六种基本数据类型:Number | String | Boolean | Undefined | Null | 【ES6新增】Symbol,以及引用数据类型 Object 2. 对于基本数据类型的判断:typeof 操作符,对于不同的数据类型会返回不同的值,以下为七种常
阅读全文
摘要:看了很多博客,只能说一知半解,先记录一下等到以后更清晰了回来更新. 1. JavaScript 是一门单线程语言,这是由于其工作场景导致的,在浏览器中,如果 JavaScript 是多线程语言,那么两个线程要做的事情分别为:A:我要删除元素 div,B:我要给 div 添加一个类,此时如果是多线程同
阅读全文
摘要:1. 寄生式继承:类似于 原型式继承,实际上就是 原型式继承 + 工厂模式,直接上代码: function object(o) { function F() {} F.prototype = o; return new F(); } 原型式继承 创建对象,用于被所有实例对象所共享,之后使用 工厂模式
阅读全文

浙公网安备 33010602011771号