JavaScript 原型(深度解析)
一、原型概念图 二、原型相关的几个属性 在介绍原型之前,我们先要了解几个属性: 1.1 显示原型属性 prototype prototype 属性是一个显示原型属性,只有函数才拥有该属性。基本上所有函…
JavaScript 强制类型转换
将值从一种类型转换为另一种类型通常称为类型转换,这是显示的情况;隐式的情况称为强制类型转换。 我们可以这样来区分:类型转换发生在静态类型语言的编译阶段,而强制类型转换则发生在动态类型语言的运行时。然而…
JavaScript 值和类型
一、类型 大多数开发者认为,像 JavaScript 这样的动态语言是没有类型(type)的。 我们这样来定义“类型”:对语言引擎和开发人员来说,类型是值的内部特征,它定义了值的行为,以使其区别于其他…
数组扁平化
数组的扁平化:就是将一个嵌套多层的数组转换为一维数组 例如:数组 [1, 2, [3, 4, [5, 6], 7], 8] 扁平化后为 [1, 2, 3, 4, 5, 6, 7, 8] 解决的方案有多…
this 全面解析
一、关于 this this 关键字是 JavaScript 中最复杂的机制之一。它是一个很特别的关键字,被自动定义在所有函数的作用域中。 消除误解: this 不指向函数自身 this 不指向函数的…
JS中浮点数精度问题
问题描述:在使用JS过程中,经常会涉及到数值计算操作,比如在商品加入购物车时计算商品价格等。计算时经常会出现精度问题,比如:24.9 * 1.2 = 29.879999999999995 原因 Jav…
数组去重
数组去重(多种方案实现) 方案一:双重循环 function unique(arr) { let result = [] for (let i = 0; i < arr.length; i++)…
节流
节流的原理很简单:如果你持续触发事件,每隔一段时间,只执行一次事件 关于节流的实现,有两种主流的实现方式,一种是使用时间戳,另一种是设置定时器。 使用时间戳 当触发事件的时候,我们取出当前的时间戳,然…
防抖
防抖:所谓防抖,就是指触发事件后,把触发非常频繁的事件合并成一次去执行。即在指定时间内只执行一次回调函数,如果在指定的时间内又触发了该事件,则回调函数的执行时间会基于此刻重新开始计算。 解释:你尽管触…