
JavaScript
文章平均质量分 96
JavaScript
Peter-Lu
前端爱好者 | 欢迎关注我的Github:Peter-Luna
展开
-
【JavaScript】严格模式 “use strict“; 详解
严格模式 (Strict Mode) 是 JavaScript 在 ECMAScript 5 (ES5) 中引入的一种运行模式。消除 JavaScript 语法中的不合理、不安全之处,减少意外错误的发生。提高 JavaScript 代码的执行效率,某些情况下 JavaScript 引擎可以进行更多优化。为未来版本的 JavaScript 语法变更做准备,避免某些新特性与旧代码冲突。显式启用,不会默认开启,必须手动添加。作用域可控,可以作用于整个脚本文件,也可以只应用于单个函数。严格模式 (原创 2025-04-01 22:16:11 · 797 阅读 · 0 评论 -
【JavaScript】寄生组合继承详解
寄生组合继承是一种改进版的组合继承,它通过解决了Parent构造函数调用两次的问题,使得 JavaScript 继承更加高效。尽管 ES6 的class语法在现代开发中更常见,但理解寄生组合继承的原理有助于深入掌握 JavaScript 的继承机制。原创 2025-03-20 22:25:08 · 847 阅读 · 0 评论 -
【JavaScript】继承的实现方式详解
继承方式主要特点优点缺点原型链继承让子类prototype指向父类实例方法共享共享引用属性构造函数继承使用call调用父类解决共享问题,可传参方法无法复用组合继承构造函数 + 原型链解决共享问题调用两次父类构造函数寄生组合继承最优 ES5 方案解决所有问题代码略复杂ES6class继承最现代化方案语法简洁,推荐使用仅限 ES6+在现代 JavaScript 开发中,建议优先使用 ES6class继承,但在需要兼容旧浏览器时,可以使用寄生组合继承。原创 2025-03-20 22:14:41 · 1003 阅读 · 0 评论 -
【JavaScript】构造函数 vs. 工厂函数:彻底解析
构造函数(Constructor Function)是一种用于创建对象的特殊函数。使用new关键字调用约定以大写字母开头(例如Personthis指向新创建的对象省略return,默认返回this${this`);// Alice工厂函数(Factory Function)是一种返回对象的普通函数,它不使用new关键字,而是手动返回一个对象。`);// Bob构造函数。原创 2025-03-20 22:00:55 · 873 阅读 · 0 评论 -
【JavaScript】创建对象的方式详解
对象是一组键值对(key-value pair)的集合,其中键是字符串(ES6 之后也可以是 Symbol),值可以是任何数据类型,包括字符串、数字、数组、函数,甚至是另一个对象。对象是 JavaScript 处理数据的核心结构,可以看作是键值存储的容器。// 输出: Hello, my name is Alice`);// 输出: Hello, my name is Alice在这个例子中,personnameage和greet,其中greet。原创 2025-03-20 21:57:48 · 646 阅读 · 0 评论 -
【JavaScript】数组的随机排序方法详解
本文介绍了 JavaScript 实现数组随机排序的几种方法,包括sort()方案、Fisher-Yates 洗牌、map()sort()reduce()splice()以及 Web Worker 方案。对于小型数组,可以直接使用sort(),但 Fisher-Yates 是更优的通用方案。在大数据量情况下,Web Worker 方案能提升性能。原创 2025-03-20 21:29:58 · 621 阅读 · 0 评论 -
【JavaScript】生成随机数的各种方法详解
是 Web Crypto API 提供的安全随机数生成方法,适用于需要更高随机性和安全性的场景,如密码学应用。在某些场景下,我们希望随机数是可预测和可复现的,比如游戏随机种子、数据模拟等。这时可以使用seedrandom库。:适用于一般性随机数需求,但不适合高安全性场景。:适用于高安全性需求,如密码生成。Node.js:适用于服务器端高安全性随机数生成。seedrandom:适用于需要可复现随机数的场景,如游戏随机种子。原创 2025-03-20 16:45:59 · 628 阅读 · 0 评论 -
【JavaScript】标签语法详解
在 JavaScript 中,标签(Label)是一种可以用于标记代码块的标识符,通常与break和continue语句配合使用。labelName是自定义的标签名称,命名规则与变量命名规则相同。statement是与标签关联的代码语句,通常是一个循环或者代码块。原创 2025-03-20 16:07:04 · 747 阅读 · 0 评论 -
【JavaScript】如何给浮点数添加千分位逗号
适合简单场景,且能自动适配不同地区格式。正则表达式方法适合大部分场景,代码简洁且性能较高。提供更强的格式化能力,适合国际化应用。手动实现方法适用于所有环境,适合对格式有特殊需求的场景。原创 2025-03-19 11:08:32 · 603 阅读 · 0 评论 -
【JavaScript】字符串转数字的多种方法详解
parseInt()适用于解析整数,可解析不同进制。适用于解析浮点数,支持小数点和科学计数法。Number()和适用于转换完全有效的数字字符串。结合Math方法进行取整。原创 2025-03-19 10:29:38 · 749 阅读 · 0 评论 -
【JavaScript】== 操作符的强制类型转换规则详解
=允许不同类型的值进行比较,并会尝试强制类型转换。null和undefined仅彼此相等,与任何其他值都不相等。Boolean值会转换为0或1再进行比较。String与Number进行比较时,String会转换为Number。Object在比较时会转换为原始值(通常是toString()或valueOf()结果)。Symbol不能与非Symbol值进行宽松相等比较。建议优先使用===,避免不必要的隐式类型转换。原创 2025-03-19 10:14:29 · 849 阅读 · 0 评论 -
【JavaScript】Symbol 及其强制类型转换详解
Symbol 是 ES6 引入的一种原始数据类型,它的主要特点是唯一性和不可变性。与字符串或数值不同,每个 Symbol 值都是独一无二的,即使创建时传入相同的描述字符串,它们依然是不同的值。// false在上述代码中,尽管 sym1 和 sym2 具有相同的描述符(description),它们依然是不同的 Symbol 值。return {})// 1, 2, 3Symbol 是 JavaScript 中的一种特殊数据类型,具有唯一性和不可变性的特点,主要用于创建对象的私有属性。原创 2025-03-19 09:30:11 · 723 阅读 · 0 评论 -
【JavaScript】位运算符 ~ 的作用详解
JavaScript 的(按位取反)运算符虽然不常用,但它具有一些独特的用途判断indexOf结果是否为-1二进制掩码、标志位处理特定布尔值转换尽管它在 ES6 之后的应用场景减少,但在某些低级优化和位运算场景下依然有一定价值。原创 2025-03-19 09:16:46 · 948 阅读 · 0 评论 -
【JavaScript】其他值到布尔类型的转换规则详解
显式转换:使用或者!!value进行强制转换。隐式转换:在逻辑运算、条件判断(如)、三元运算符(condition?)等场景下发生。所有值在转换为布尔类型时,最终都会变成true或false。JavaScript 将值分为“真值(truthy)”和“假值(falsy)”两类。JavaScript 将值分为truthy和falsy,在逻辑运算中会自动转换。7 种 falsy 值false0-0""nullundefinedNaN。其他所有值(非零数字、非空字符串、对象、数组、Symbol。原创 2025-03-18 20:20:34 · 862 阅读 · 0 评论 -
【JavaScript】其他值到数字值的转换规则详解
JavaScript 在不同场景下会对非数值类型进行隐式或显式转换,了解这些转换规则有助于避免错误,提高代码的可预测性。尽量避免依赖隐式转换,使用显式转换确保代码行为符合预期。原创 2025-03-18 16:59:05 · 341 阅读 · 0 评论 -
【JavaScript】其他值到字符串的转换规则
String()是显式转换的首选方式。toString()可用于大多数情况,但null和undefined需要特殊处理。操作符会进行隐式字符串转换。Symbol不能隐式转换为字符串。可用于将对象转换为 JSON 格式。原创 2025-03-18 16:48:58 · 961 阅读 · 0 评论 -
【JavaScript】isNaN 和 Number.isNaN 的区别详解
NaN(Not-a-Number)是 JavaScript 中的一个特殊值,表示无法计算出合法的数值。例如,0 / 0或都会返回 NaN。typeof NaN仍然是number,尽管它表示“不是数字”。NaN 与任何值都不相等,包括它自身,即NaN!== NaN。isNaN(NaN)返回true。方法是否进行类型转换只检测 NaN 本身可靠性是否低(可能误判)否是高(仅检测 NaN)原创 2025-03-18 16:32:33 · 819 阅读 · 0 评论 -
【JavaScript】Map 与对象的区别及迭代方式解析
JavaScript 中的 Map 和对象(Object)都是用于存储键值对的数据结构,但它们在底层实现、性能、适用场景等方面存在显著区别。在某些情况下,对象的键顺序可能与插入顺序不同,而 Map 总是按照插入顺序维护键值对,这在需要顺序遍历时非常重要。使用哈希表实现,查找和删除操作的时间复杂度通常为 O(1),而对象的查找可能涉及哈希冲突或原型链查找,可能更慢。对象的键会被强制转换为字符串,而 Map 则保持键的类型,这使得 Map 在存储复杂数据时更具优势。Map 提供了更直接的迭代方式,如。原创 2025-03-14 12:39:13 · 869 阅读 · 0 评论 -
【JavaScript】splice() 和 slice() 方法详解
splice()方法用于添加、删除或替换数组中的元素,并且会直接修改原数组。start(必填):指定要修改的起始索引。(可选):指定要删除的元素个数。(可选):要插入到数组中的新元素。slice()方法用于从原数组中提取部分元素,但不会修改原数组。start(必填):提取的起始索引。end(可选):提取的结束索引(不包含end位置的元素)。原创 2025-03-09 19:42:46 · 1204 阅读 · 0 评论 -
【JavaScript】HTMLFormElement详解
是一个表示表单元素的接口,继承自。访问和修改表单的属性,如actionmethod等。访问表单内的各个控件。执行表单的提交和重置操作。原创 2025-02-20 20:07:13 · 960 阅读 · 0 评论 -
【JavaScript】document 对象详解
在 Web 开发中,`document` 对象是连接 JavaScript 与网页内容的桥梁。通过操作 `document` 对象,开发者可以动态地访问和修改网页的结构、内容和样式,从而实现丰富的交互效果。原创 2025-02-20 19:52:08 · 986 阅读 · 0 评论 -
【JavaScript】优先队列(Priority Queue)的应用详解
优先队列是一种特殊的队列数据结构,其中每个元素都有一个与之相关的优先级。在出队操作时,优先队列会始终返回优先级最高的元素。与普通队列不同,优先队列的出队顺序是根据元素的优先级而非插入顺序来确定的。优先队列通常由堆(Heap)实现,堆提供了一个高效的方式来管理优先级。在 JavaScript 中,如果需要使用优先队列,可以通过库来实现。该库提供了最大堆(Max Heap)和最小堆(Min Heap)的实现,开发者可以通过指定比较函数来定制优先级规则。最大堆(Max Heap)原创 2025-01-08 21:46:15 · 988 阅读 · 0 评论 -
【JavaScript】localeCompare 方法详解
是 JavaScript 字符串对象的一个方法,专门用于比较两个字符串。与传统的比较方法不同, 可以根据不同的语言环境(locale)来确定字符串的排序顺序。这样,开发者就能够确保字符串比较的结果符合特定语言或区域的规则。语法如下: 和 是需要进行比较的两个字符串。该方法返回一个数字,表示 与 的比较结果。2. 返回值的意义 方法返回一个数字,表示两个字符串的相对排序关系:二、 方法的参数除了基本的比较操作外, 还接受两个可选的参数: 和 ,用于更细致地控制比较规则。 参数指定一个或多原创 2025-01-04 11:58:07 · 1242 阅读 · 0 评论 -
【JavaScript】为什么调用 sleep 时需要加上 await 才能执行?
sleep是一种常见的工具函数,用于在异步代码中暂停一段时间,模拟延迟或等待某些操作完成。在 JavaScript 中,可以通过Promise和setTimeout});从定义可以看出,sleep是一个返回Promise的函数。在其内部,通过setTimeout方法延迟执行resolve,从而实现暂停功能。原创 2024-12-24 20:34:00 · 1032 阅读 · 0 评论 -
【JavaScript】Array.from及其相关用法详解
Array.from是 ES6 引入的一个静态方法,用于从类数组对象(具有length属性的对象)或可迭代对象(如字符串、Set、Map)创建一个新的数组实例。arrayLike:要转换为数组的类数组对象或可迭代对象。(可选):一个函数,对每个元素执行转换。thisArg(可选):执行时的this值。一个新的数组。原创 2024-12-19 21:00:53 · 2325 阅读 · 0 评论 -
【JavaScript】flat()及其相关方法详解
flat()是 JavaScript Array 对象提供的一种方法,用于将嵌套数组“拍平”成指定深度的单层数组。它的出现极大地方便了开发者处理复杂的多维数组。depth(可选):表示要拍平的深度。默认为 1。一个新的数组,包含了拍平后的元素。flatMap()是flat()的一个衍生方法,它结合了map()和flat()的功能。使用时,先对数组中的每个元素执行映射函数,然后将结果数组拍平一层。callback:一个函数,用于生成新的数组元素。thisArg:可选,执行callback函数时的。原创 2024-12-19 20:41:30 · 1113 阅读 · 0 评论 -
【JavaScript】检查变量类型的常用方法详解
在 JavaScript 开发中,变量类型的检查是一个常见且重要的需求。无论是调试还是数据校验,了解变量的类型可以帮助我们编写更加健壮的代码。本文将详细讲解 JavaScript 中用于检查变量类型的多种方法,并分析它们的优缺点以及适用场景。原创 2024-12-12 15:54:35 · 826 阅读 · 0 评论 -
【前端基础】JSON 的常用方法详解
用于将 JavaScript 对象或数组转换为 JSON 格式的字符串。用于将 JSON 格式的字符串转换为 JavaScript 对象。原创 2024-12-12 15:12:07 · 1126 阅读 · 0 评论 -
【JavaScript】fromCharCode 和 fromCodePoint 的详解与应用
是 JavaScript 内置的一个静态方法,它将一组 Unicode 值转换为对应的字符,并返回一个字符串。这种方法非常适合于处理简单的字符编码转换。是要转换为字符的 Unicode 编码值。可以传入一个或多个数字。// 输出 "A"// 输出 "a"// 输出 "€"在这个例子中,我们传入了不同的 Unicode 编码值,分别返回了字符'A''a'和'€'。是 ES6 引入的一个更为强大的方法,它与类似,但可以处理更广泛的字符集。与只能处理 16 位编码的字符不同,原创 2024-12-10 11:22:27 · 1159 阅读 · 0 评论 -
【JavaScript】indexOf() 和 lastIndexOf() 方法详解
在 JavaScript 中,`indexOf()` 和 `lastIndexOf()` 方法是处理字符串和数组时非常常用的两个方法。它们分别用于查找指定元素的第一次和最后一次出现的位置。本文将深入解析这两个方法的原理、用法,并通过实例帮助大家更好地理解它们的实际应用。原创 2024-12-09 20:08:41 · 1615 阅读 · 0 评论 -
【JavaScript】深入理解正则表达式中的 test 和 /[^A-Za-z0-9]/ ️
testtest是 JavaScript 正则表达式对象 (RegExp) 提供的一种方法,用于测试字符串是否匹配特定的正则表达式模式。它是验证字符串内容是否符合要求的最常用方法之一。原创 2024-12-09 19:44:44 · 1180 阅读 · 0 评论 -
【JavaScript】正则表达式中的分组以及如何获取分组
在正则表达式中,分组是通过圆括号()来实现的。分组的主要作用是将一部分模式组合在一起,以便可以对其进行后续的操作,比如提取、替换或匹配。分组可以分为捕获分组和非捕获分组两种类型。原创 2024-12-08 11:41:55 · 1547 阅读 · 0 评论 -
【JavaScript】详解 Object.values()、map.values()、Object.entries() 和 map.entries() 及其灵活用法
特性适用数据结构普通对象Map普通对象Map返回值类型数组迭代器(可转为数组)二维数组迭代器(迭代方式支持适合数组操作支持for...of适合数组操作支持for...of灵活性简单操作值操作Map数据更强键值对操作友好键值对操作友好在实际开发中,选择适合的方法取决于数据结构和具体需求。原创 2024-12-07 12:02:03 · 823 阅读 · 0 评论 -
【JavaScript】逻辑或 || 的妙用及相关知识详解
在 JavaScript 中,`||`(逻辑或运算符)是一个非常常见但又容易被忽视的运算符。它不仅能用于条件判断,还能在日常编程中提供默认值、防止错误甚至优化代码逻辑。本文将带你全面了解 `||` 的用法及其相关知识。原创 2024-12-07 11:34:12 · 913 阅读 · 0 评论 -
【JavaScript】_.sum 及其相关功能详解
.sum是 Lodash 库中的一个函数,它用于计算数组中所有数字元素的总和。Lodash 是一个非常流行的 JavaScript 实用工具库,提供了大量高效且易用的方法来简化开发过程。_.sum使得数组的求和变得非常简单且高效,特别适用于处理包含数字的数组。原创 2024-12-06 21:00:04 · 1090 阅读 · 0 评论 -
【JavaScript】round及其相关方法详解
在 JavaScript 中,round()函数是Math对象的一部分。它用于将一个数字四舍五入为最接近的整数。round()适用于需要处理浮点数时进行精度控制的场景。round()这里,x是需要四舍五入的数字。原创 2024-12-02 22:07:38 · 1042 阅读 · 0 评论 -
【JavaScript】parseInt 及其相关用法详解
parseInt你可以通过radix// 输出 10(二进制 1010 对应十进制 10)// 输出 161(十六进制 A1 对应十进制 161)// 输出 8(八进制 10 对应十进制 8)// 输出 5(五进制 10 对应十进制 5)// 输出 1295(三十六进制 ZZ 对应十进制 1295)原创 2024-12-01 11:57:57 · 1562 阅读 · 0 评论 -
【JavaScript】entries() 和Object.values() 方法详解
是 ES8(ECMAScript 2017)引入的一个方法,它用于将对象的所有可枚举属性转换成一个包含键值对的数组。每一个键值对都是一个数组,其中第一个元素是属性名,第二个元素是对应的属性值。// 输出: [['a', 1], ['b', 2], ['c', 3]]是 ES8 引入的另一个非常有用的方法,它返回一个数组,数组中包含了对象的所有可枚举属性的值。// 输出: [1, 2, 3]原创 2024-12-01 10:47:02 · 1030 阅读 · 0 评论 -
【JavaScript】slice 和 padEnd 方法详解
slice是 JavaScript 中一个常用的字符串和数组方法。它的主要作用是从原始字符串或数组中提取指定范围内的元素,并返回一个新的字符串或数组。需要注意的是,slice不会修改原始数组或字符串,它会返回一个新的副本。(padEnd也是一样的)slice方法通常用于从字符串或数组中提取一部分内容,并返回一个新的实例。它是不可变的,原始字符串或数组不会发生任何变化。你可以使用slice来从字符串中提取子串,或者从数组中提取子数组。padEnd是 JavaScript 中用于字符串的一个方法。原创 2024-11-30 21:33:06 · 988 阅读 · 0 评论 -
【JavaScript】事件循环详解
JavaScript 的单线程意味着它在任意时刻只能执行一个任务,无法像多线程语言那样同时处理多个任务。这是因为 JavaScript 主要用于用户界面相关的任务处理,如果允许多线程并发处理,多个线程同时操作 DOM,可能会导致页面渲染错误或冲突。单线程的优势在于避免了复杂的线程同步问题,使得开发者能够更容易地编写前端代码。然而,单线程模型也有一个显著的缺陷:在执行耗时任务时会阻塞线程,导致页面卡顿或无法响应用户操作。原创 2024-09-18 11:43:00 · 623 阅读 · 0 评论