摘要:
继承的7种方式 原型链继承构造函数继承组合继承原型式继承寄生式继承寄生组合式继承Es6 class extends 继承 原型链继承: 将父亲的实例作为孩子的原型. 优点: 父亲的方法可以被子类复用 缺点: 父类的所有属性都会被子类进行共享, 更改了一个子类的属性, 其他的子类的属性也一起变了. 子 阅读全文
摘要:
一、Map Map可以用来存储键值对,在一定程度上扩展了Object的内容。 1. Map的基本API 创建新的Map实例 // 创建一个空映射 let map = new Map() // 传入一个包含键值对组的可迭代对象, // 传入的可迭代对象会按顺序插入到新的map实例里 let arr = 阅读全文
摘要:
1. eval函数有什么用? 调用eval函数,可以将其参数作为JavaScript程序进行解释。换句话说,eval可以把它的参数当做代码 来执行。 例子 function f(x) { eval('var y=x'); console.log('y:', y); } f('hello');//y: 阅读全文
摘要:
1. 回顾进程和线程的定义 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。 线程(Thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。 2. Node.js的单线程 Node特点主线程是单线程的 阅读全文
摘要:
前言 在 JavaScript 中,我们可以有多种方式定义函数,如:函数声明、函数表达式和箭头函数 // 函数声明 function normalFn() { return 'normalFn'; } // 函数表达式 const normalFn = function() { return 'no 阅读全文
摘要:
引入一个现实生活中的案例 我们作为用户需要去如何评估一个房子的好坏、如何办理住房手续等一些列繁琐的事物吗?显然,用户肯定不愿意这样做。用户最关心的是结果,用户对房子提出需求以及提供对等价值的金钱就可以获得满意的房子,这就是结果。 那么谁为用户去解决一系列繁琐的买房过程呢?当然就是“房屋中介”了!房屋 阅读全文
摘要:
ES6允许按照一定模式从数组或对象中提取值,然后对变量进行赋值,称为解构。只要等号两边的模式相同,左边的变量就会被赋予对应的值,这种写法属于“模式匹配”。统称起来就叫做“解构赋值”。 let [a, b, c] = [1, 2, 3] 同时定义多个变量,a匹配1、b匹配2、c匹配3 解构赋值允许指定 阅读全文
摘要:
1.call的实现 第一个参数为null或者undefined时,this指向全局对象window,值为原始值的指向该原始值的自动包装对象,如 String、Number、Boolean 为了避免函数名与上下文(context)的属性发生冲突,使用Symbol类型作为唯一值 将函数作为传入的上下文( 阅读全文
摘要:
1.什么是伪数组 JavaScript中存在有一种类数组,或者说伪数组。经常见到的伪数组有函数的arguments对象、dom.querySelectorAll等获取的NodeList类(NodeList本身具有forEach方法)等。 伪数组并不是数组,它没有继承Array.prototype,但 阅读全文
摘要:
什么是 GPU.js 首先,官网地址:https://gpu.rocks/ 简而言之,GPU.js 是一个 JavaScript 加速库,可用于使用 JavaScript 在 GPU 上进行通用计算。它支持浏览器、Node.js 和 TypeScript。 除了性能提升外,我推荐使用 GPU.js 阅读全文
摘要:
前言 分享两个监测元素是否在视口内的方法 1. 位置计算 使用 Element.getBoundingClientRect() 方法返回元素相对于视口的位置 const isElementVisible = (el) => { const rect = el.getBoundingClientRec 阅读全文