
Javascript理论与实践
文章平均质量分 92
本专栏旨在为读者提供全面的 Javascript 知识,涵盖从基础理论到实际应用的各个方面。通过详细的讲解和实际案例,我们将帮助你理解 Javascript 的核心概念、语法和编程范式。
还是大剑师兰特
曾是美国普渡大学计算机研究生,现为GIS领域高级前端开发工程师。深耕openlayers、leaflet、cesium、mapbox、echarts、threejs、webgl、canvas、svg等技术,目前正研究GIS大模型在低空经济领域的应用,拥有两项GIS方面的专利。
展开
-
JavaScript 理论与实践 【目录 】
前端的开发离不开使用javascript,js是一门非常重要而且很灵活复杂的语言。本文是一个目录列表,方便查找一些经典的示例,能够快捷的应用的实际的开发中。文章是不断的增加,本目录也在不断的更新中,哪天能达到100个,就先庆祝一下~原创 2022-09-06 14:22:12 · 826 阅读 · 0 评论 -
JS实现灯光闪烁效果
在 JS中,我们可以实现灯光闪烁效果,这里主要用 setInterval 和 clearInterval 两个重要方法。原创 2025-02-09 00:00:00 · 537 阅读 · 0 评论 -
面试题: 对象继承的方式有哪些
原型链继承是最基础的继承方式,但存在状态共享的问题。构造函数继承解决了状态共享问题,但无法继承原型方法。组合继承结合了两者的优势,但有重复调用父类构造函数的缺点。原型式继承和寄生式继承更加灵活,适用于不需要复杂构造函数的场景。寄生组合式继承是组合继承的优化版本,解决了重复调用的问题,是最推荐的继承方式之一。类继承提供了更简洁的语法,适合现代 JavaScript 开发。选择哪种继承方式取决于具体的需求和项目背景。对于新项目,特别是使用 ES6+ 的项目,推荐使用class。原创 2025-01-09 00:00:00 · 1242 阅读 · 0 评论 -
面试题:并发与并行的区别?
并发是一种编程模型,它允许一个系统在同一时间段内处理多个任务,但这些任务不一定真正同时执行。并发的主要优势在于提高资源利用率和响应速度,特别适合 I/O 密集型任务。并行是一种硬件特性,它通过多个 CPU 核心或处理器来实现多个任务的真正同时执行。并行的主要优势在于显著提高计算速度,特别适合计算密集型任务。理解并发与并行的区别有助于选择合适的编程模型和技术栈,从而优化应用程序的性能和效率。原创 2025-01-08 00:00:00 · 1209 阅读 · 0 评论 -
Javascript 编写的一个红、黄、绿灯交替变亮
为了创建一个简单但功能完整的交通灯程序,我们将使用 HTML、CSS 和 JavaScript 来实现红、黄、绿三种颜色按照规定的顺序循环显示。这个例子将确保灯光按照红 -> 绿 -> 黄的顺序循环,并且可以调整每个灯光的持续时间以模拟真实的交通灯行为。原创 2025-01-06 00:00:00 · 3988 阅读 · 0 评论 -
new操作符的实现原理
它接收一个构造函数作为第一个参数,以及任意数量的后续参数,这些参数将传递给构造函数。然后,它按照上述四个步骤来创建并初始化新对象,并最终返回该对象。操作符在 JavaScript 中用于创建一个用户定义对象类型的实例或已有内置对象类型的实例。操作符,因为有些细节和优化是无法在用户代码中直接复制的。操作符可能更高效,因为它是由 JavaScript 引擎优化过的。下面是使用纯 JavaScript 实现。请注意,这种模拟实现并不完全等同于原生的。操作符对于某些内置构造函数(如。)有特殊的处理方式。原创 2024-12-29 00:00:00 · 408 阅读 · 0 评论 -
面试题:对象创建的方式有哪些?
对象字面量是最简单的方式,适合创建简单的对象。构造函数和类提供了面向对象的编程方式,适合创建多个相似的对象实例。和原型式对象创建适合需要显式控制原型链的场景。工厂函数适合需要根据不同条件创建不同对象的场景。构造函数与原型结合可以提高性能,避免重复创建方法。动态属性创建提供了高度的灵活性。适合合并多个对象的属性。和提供了对属性行为的精细控制。Proxy提供了强大的元编程能力,适合需要拦截和自定义对象行为的场景。选择哪种方式取决于具体的项目需求和代码风格。原创 2024-12-28 06:00:00 · 1127 阅读 · 0 评论 -
箭头函数与普通函数的区别
箭头函数(Arrow Functions)是ES6(ECMAScript 2015)引入的一种新的函数定义方式,它提供了更简洁的语法和一些与传统函数表达式不同的行为。值的回调函数,或者希望代码更加简洁,那么箭头函数可能是更好的选择。如果你需要构造函数或者依赖于传统的。选择使用哪种类型的函数应该基于你的需求以及上述特性的考虑。如果你需要一个不会改变。绑定规则,则应使用普通函数。原创 2024-12-27 06:00:00 · 760 阅读 · 0 评论 -
map和weakMap的区别
Map和WeakMap都是 JavaScript 中用于存储键值对的数据结构,但它们在设计目的、行为和使用场景上有一些重要的区别。以下是Map和WeakMap。原创 2024-12-26 06:00:00 · 1226 阅读 · 0 评论 -
面试题:ES6模块与CommonJS模块有什么异同?
CommonJS更适合服务器端开发,特别是 Node.js 环境,因为它提供了同步加载和简单的模块系统。ES6 模块更加现代化,支持更丰富的特性和更好的性能优化,尤其适合浏览器端开发。随着 JavaScript 生态系统的演进,ES6 模块正在成为主流的选择。在选择使用哪种模块系统时,应根据具体的项目需求、目标平台以及团队的技术栈来决定。对于新的项目,推荐优先考虑 ES6 模块,以利用其更多的特性和更好的社区支持。原创 2024-12-25 06:00:00 · 1261 阅读 · 0 评论 -
数组 和 类数组的区别
数组(Array)和类数组对象(Array-like object)在 JavaScript 中有一些关键的区别,主要体现在它们的属性、方法以及行为上。原创 2024-12-24 06:00:00 · 712 阅读 · 0 评论 -
什么是尾调用,使用尾调用有什么好处?
尾调用(Tail Call)是指在一个函数中,最后一个执行的操作是调用另一个函数的情况。换句话说,如果一个函数的返回值直接依赖于另一个函数的返回值,并且没有其他操作需要在该函数调用之后执行,那么这个调用就是尾调用。原创 2024-12-23 06:00:00 · 1090 阅读 · 0 评论 -
什么是类数组
类数组(Array-like object)在 JavaScript 中是指那些具有某些类似于数组的特性,但并不是真正数组的对象。原创 2024-12-22 06:00:00 · 681 阅读 · 7 评论 -
数组 和 类数组的区别
数组(Array)和类数组对象(Array-like object)在 JavaScript 中有一些关键的区别,主要体现在它们的属性、方法以及行为上。原创 2024-12-21 06:00:00 · 897 阅读 · 2 评论 -
JavaScript 延迟加载的方法( 7种 )
JavaScript脚本的延迟加载(也称为懒加载)是指在网页的主要内容已经加载并显示给用户之后,再加载或执行额外的JavaScript代码。这样做可以加快页面的初始加载速度,改善用户体验,并减少服务器的压力。原创 2024-12-20 07:00:00 · 6838 阅读 · 0 评论 -
async/await 对比 Promise
`async/await` 并不是取代 `Promise`,而是为处理异步操作提供了一种更简洁、更直观的方式。它使得代码更易读、更易维护,并且简化了错误处理和调试。对于大多数场景,尤其是涉及到多个异步操作的复杂逻辑时,`async/await` 是一个更好的选择。然而,在某些情况下,`Promise` 仍然有其优势,例如在需要并行执行多个异步操作时,`Promise.all()` 是非常高效的。原创 2024-12-13 07:30:00 · 1376 阅读 · 0 评论 -
npm发布自己的组件UI包(详细步骤,图文并茂)
目前做前端项目,一直采用的方式去引用别人的组件包,调用方法。其实在开发中,每个开发者基本都写过单独的组件,如何让自己的组件能够重复的利用,如何让别人也享受到您的成果,这里将一步一步地介绍如何通过npm来发布组件包。原创 2022-12-28 16:37:39 · 3243 阅读 · 0 评论 -
6种方法查找JS对象中是否包含某个变量
- 使用 `in` 运算符和 `Reflect.has()` 可以检测继承来的属性。- 使用 `hasOwnProperty()` 和 `Object.getOwnPropertyDescriptor()` 只能检测对象自身的属性。- 使用 `Object.keys()` 和 `Object.getOwnPropertyNames()` 可以获得所有属性的列表,然后进行进一步的检查。原创 2024-08-16 00:30:00 · 1544 阅读 · 0 评论 -
化学绘图和可视化工具:ChemDoodle
ChemDoodle Web Components (CDWC) 是一套非常强大的化学绘图和可视化工具,可以用于创建各种化学相关的 Web 应用程序。CDWC 包括了绘制分子、反应方程式、3D 分子视图等功能,并且支持多种化学文件格式。原创 2024-08-15 00:00:00 · 1590 阅读 · 0 评论 -
5个常用的物理仿真JavaScript插件
以上介绍的是五个常用的 JavaScript 物理引擎插件。每个库都有其独特的优势和适用场景。如果你需要一个功能全面且成熟的 2D 物理引擎,可以选择 Matter.js;如果你正在开发复杂的游戏并需要 3D 物理仿真,Cannon.js 是一个很好的选择;对于需要高性能和复杂物理仿真的 2D 游戏,p2.js 和 Box2D 都是非常好的选项;而如果你正在寻找一个全面的游戏开发框架,Phaser 提供了丰富的功能,包括物理引擎。选择哪个库取决于你的具体需求和偏好。原创 2024-08-14 00:00:00 · 1453 阅读 · 0 评论 -
JS五个常用的数学插件
以上介绍的是五个常用的 JavaScript 数学插件。每个库都有其独特的优势和适用场景。如果你需要一个功能全面且成熟的数学库,可以选择 Math.js;如果你更关心高精度计算,可以考虑 Decimal.js 或 Big.js;如果你需要对数字进行格式化展示,Numeral.js 是一个不错的选择;而如果你的工作涉及复数运算,则 Complex.js 可能更适合你。选择哪个库取决于你的具体需求和偏好。原创 2024-08-13 11:00:06 · 1960 阅读 · 0 评论 -
JS常用的5个时间插件
以上介绍的是五个常用的 JavaScript 日期和时间处理插件。每个库都有其独特的优势和适用场景。选择哪个库取决于你的具体需求和偏好。如果你需要一个功能全面且成熟的库,可以选择 Moment.js 或 Luxon;如果你更关心库的体积大小,可以考虑 Day.js 或 Just Moment;如果你希望有一个面向未来的、高度可定制化的库,那么 Luxon 和 Date-fns 可能更适合你。原创 2024-08-13 10:53:05 · 2387 阅读 · 0 评论 -
对象字面量
在JavaScript中,**对象字面量**是一种创建对象的简便方式。对象字面量是由属性名和对应的值组成的键值对集合,这些键值对用逗号分隔,并包含在一对大括号 `{}` 中。原创 2024-08-09 17:09:00 · 1058 阅读 · 0 评论 -
编译器Babel的安装与使用
Babel 是一个广泛使用的 JavaScript 编译器,它允许开发者使用最新版本的 JavaScript 语法编写代码,然后将其转换为向后兼容的版本,以便在老旧浏览器或环境中运行。原创 2024-08-09 16:33:15 · 1265 阅读 · 0 评论 -
ECMAScript 12 (ES12, ES2021) 新特性
ECMAScript 12(通常称为ES2021或ES12)是JavaScript语言的一个版本,它在2021年由ECMA国际标准化组织发布。虽然这个版本引入的变化相对较小,但它仍然包含了一些有用的新特性。原创 2024-08-04 08:39:02 · 826 阅读 · 0 评论 -
ECMAScript 2020(ES11)的新特性
ECMAScript 2020(ES11 或 ES2020)引入了一些新的特性,下面我们详细探讨这些新特性,并给出相应的示例代码原创 2024-08-04 00:00:00 · 777 阅读 · 2 评论 -
ECMAScript 2019(ES10 或 ES2019)新的特性
ECMAScript 2019(ES10 或 ES2019)引入了一些新的特性,下面我们详细探讨这些新特性,并给出相应的示例代码。原创 2024-08-03 07:07:27 · 960 阅读 · 0 评论 -
ECMAScript 各个版本(14个)概览,核心示例代码
ECMAScript 是定义 JavaScript 语言的标准,由 ECMA International 维护。下面是 ECMAScript 的各个版本以及每个版本发布的时间和一些关键特性原创 2024-08-03 07:06:39 · 1769 阅读 · 0 评论 -
ECMAScript 2023 所有新增内容详解
我们详细探讨一下ECMAScript 2023(ES2023)的所有新增内容,并给出相应的示例代码。以下是ES2023的关键特性原创 2024-08-02 22:58:07 · 817 阅读 · 0 评论 -
ECMAScript 2024 新特性,示例参考
我们详细探讨一下ECMAScript 2024的一些主要特性,并给出相应的示例代码。请注意,由于ECMAScript 2024的具体特性还在最终确定中,下面的内容基于当前已知的提案和趋势。原创 2024-08-02 22:52:10 · 1312 阅读 · 0 评论 -
TypeScript 装饰器详解
TypeScript 支持装饰器(Decorators),这是一种特殊类型的声明,可以被附加到类声明、方法、访问器、属性或参数上。装饰器使用 @expression 这种形式,expression 求值后必须为一个函数,该函数会在运行时被调用,被装饰的声明信息作为参数传入。原创 2024-08-01 08:32:06 · 1247 阅读 · 0 评论 -
TypeScript 定义不同的类型(详细示例)
TypeScript 是 JavaScript 的一个超集,它增加了静态类型系统和一些额外的特性来帮助开发者编写可维护、可扩展的应用程序。在 TypeScript 中,你可以使用类型注解来指定变量、函数参数或返回值的类型。原创 2024-08-01 00:00:00 · 1334 阅读 · 0 评论 -
TypeScript 的主要特点和重要作用
TypeScript 是一种由微软开发和维护的开源静态类型检查的编程语言。它是 JavaScript 的超集,这意味着任何有效的 JavaScript 代码也是有效的 TypeScript 代码。TypeScript 添加了一些额外的功能,比如类型注解、接口、类等,这些功能有助于开发者编写大型且可维护的应用程序。原创 2024-07-31 00:30:00 · 1053 阅读 · 0 评论 -
TypeScript 与 JavaScript 的对比区别
TypeScript 和 JavaScript 是两种紧密相关的编程语言,它们都是用于客户端和服务器端开发的重要工具。TypeScript 是 JavaScript 的超集,它引入了静态类型系统和其他面向对象的特性,使得大型项目的开发更为高效和可靠。原创 2024-07-31 00:00:00 · 840 阅读 · 0 评论 -
javascript日期字符串转换为时间戳(5种方法)
将JavaScript中的日期字符串转换为时间戳也是常见的需求,以下是五种实现这一转换的方法,包括使用基本的`Date`对象、正则表达式辅助解析、以及一些现代JavaScript特性原创 2024-07-05 00:30:00 · 11008 阅读 · 26 评论 -
JS 将时间戳转换为日期字符串 (5种方法 )
最直接的方式是通过`Date`构造函数,将时间戳转为日期对象,然后可以调用各种方法获取年月日等信息,或者直接使用`toLocaleString()`得到本地化的日期字符串。原创 2024-07-02 00:30:00 · 8240 阅读 · 0 评论 -
JS判断对象为空的方法 ( 6种)
在JavaScript中,判断一个对象是否为空(即没有可枚举的自身属性)可以通过几种不同的方法实现。以下是几种常见的方法及其示例代码原创 2024-07-01 00:30:00 · 4873 阅读 · 0 评论 -
JS数组判断为空的方法 ( 8种)
在JavaScript中,判断数组是否为空可以通过多种方式实现。以下是一些常见的方法及其示例代码原创 2024-07-03 00:30:00 · 4850 阅读 · 0 评论 -
函数柯里化详解
函数柯里化在 JavaScript 中是一种将多参数函数转换成一系列单参数函数的技术。这样做的好处是可以延迟参数的提供,从而实现更灵活的函数调用和重用。原创 2024-06-18 00:30:00 · 1089 阅读 · 0 评论 -
箭头函数与常规函数的this指向问题
函数中this的指向问题特别容易让人迷糊,这里用示例来指点迷津,走出迷茫。原创 2023-01-29 17:49:58 · 662 阅读 · 0 评论