本文主要内容: screenX 和 screenY, clientX 和 clientY / x 和 y pageX 和 pageY layerX 和 layerY 在处理鼠标事件(MouseEvent)时,了解不同的坐标系是非常重要的。常见的坐标系包括屏幕坐标(screen)、客户端坐标(clie ...
本文比较了NPM、Yarn 和 pnpm 三种包管理工具的特点,重点分析了它们在安装速度、依赖管理、磁盘空间使用、依赖冲突处理等方面的差异,重点介绍了pnpm的依赖组织结构。 ...
前言 在现代 Web 开发中,WebAssembly (WASM) 已成为一种强大的工具。它使得开发者可以在浏览器中运行高性能的代码,跨越传统的 JavaScript 性能限制。Rust 语言因其高效性和内存安全性,成为了编写 WASM 模块的热门选择。本文将介绍如何将 Rust 代码编译为 Web ...
什么是Web Component Web Component是一套Web浏览器的技术和规范,能够让开发者定制自己的HTML元素 来自MDN的描述: Web Component 是一套不同的技术,允许你创建可重用的定制元素(它们的功能封装在你的代码之外)并且在你的 web 应用中使用它们。 Web C ...
JavaScript 共有8种数据类型,可以分为两类:基本数据类型和复杂数据类型。 1. 基本数据类型(Primitive Types) 这些数据类型是不可变的,意味着一旦创建了它们的值,就无法更改。 Number: 用于表示整数和浮点数。例如:42, 3.14, -7 BigInt: 用于表示任意 ...
JavaScript 作为一种编程语言,经历了多次发展与演变,以下是其主要历史里程碑: 1. 诞生与早期发展(1995-1999) 1995年: JavaScript 由 Brendan Eich 在网景公司(Netscape)发明,最初被称为 Mocha,后来改名为 LiveScript,最终定名 ...
电梯导航也被称为锚点导航,当点击锚点元素时,页面内相应标记的元素滚动到视口。而且页面内元素滚动时相应锚点也会高亮。电梯导航一般把锚点放在左右两侧,类似电梯一样。常见的电梯导航效果如下,比如一些官方文档中: 之前可能会用 getBoundingClientRect() 判断元素是否在视口中来实现类似效 ...
今天遇到一个问题,在使用codemirror对两条文本内容进行对比时,有同事反馈在它的电脑上会显示成:前面一半是正常显示差异内容,而后面就变成了全部是新增的。 像这样: 预期的对比结果是这样: 我们观察用于对比的两个文本,实际上上面的文本都是去掉后面括号中的内容,对比结果不应该表现成全部删除全部新增 ...
最近练习了一些前端算法题,现在做个总结,以下题目都是个人写法,并不是标准答案,如有错误欢迎指出,有对某道题有新的想法的友友也可以在评论区发表想法,互相学习 ...
转自简书,原文地址,本文介绍window.crypto关于RSA方面的API。 crypto API支持常用的rsa、aes加解密,这边介绍rsa的应用。 浏览器兼容性 window.crypto需要chrome 37版本,ie 11,safari 11才支持全部API而基本的加解密在safari ...
先来看结果图(转.gif掉帧了): 完整源码分享网址: https://share.weiyun.com/Vpkp5KP3 1 首先初始化用到的所有图片: 1 const images = [ 2 "./img/girls.jpg", 3 "./img/ball.png", 4 "./img/wat ...
Babel 是一个多功能的 JavaScript 编译器,主要用于将现代 JavaScript 语法转换为向后兼容的代码。其工作流程包括解析(parse)、转换(transform)和生成(generate)三个步骤,最终生成兼容代码和源码映射。通过自定义插件,开发者可以灵活地操作 AST,实现代码... ...
1 import { Box, Matrix3, Vector2 } from './Utils.js'; 2 import { Shape, ShapeUtils, SplineCurve } from './TwoUtils.js'; 3 4 const BlendEquationAdd = [ ...
随着互联网的发展,前后端分离的架构在现代 web 开发中越来越流行。然而,数据安全性始终是一个重要的问题。在前后端分离的架构中,数据在前端和后端之间的传输和处理过程中需要采取有效的安全措施,以确保数据的机密性、完整性和可用性。本文将介绍一些常见的方法和最佳实践,以帮助确保前后端数据的安全性。 1. ...
前言 今天复习了一些前端算法题,写到一两道比较有意思的题:重建二叉树、反向输出链表每个节点 题目 重建二叉树: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列 {1,2,4,7,3,5,6,8} 和中序遍历序列 { ...
本文由leetcode的字符异位词分组题目引入,记录了javascript中对象的键的数据类型以及存在的数据类型转换现象。 ...
TCP(传输控制协议)的三次握手是建立可靠连接的关键步骤,其设计目的是确保通信双方都准备好,并且避免重复的连接初始化。三次握手并不是随意设定的,而是有其重要的技术理由。 1. 防止重复的连接初始化 假设只使用两次握手,会存在以下问题: 旧的重复SYN包问题:如果网络中的一个旧的SYN包(因为网络延迟 ...
写在开头 点赞 + 收藏 学会 前言 JavaScript 中的相等运算符无疑是新手开发者最容易混淆的知识点之一。 ==和 这两个运算符的细微差别往往会在代码中造成一些令人困惑的行为 在本文中,我们将深入探讨这两个相等运算符的工作原理,比较它们的特点和局限性 让我们开始吧! ...
本文中效果主要采用ThreeJS 中的着色器(Shader)以及结合ShaderMaterial实现的。 主要用到的内置方法有: step:是一个阶跃函数,它将一个浮点数与一个阈值进行比较,并返回一个阶跃值; 比如step(edge, x), 如果 x 小于等于 edge,则返回 0.0, 如果 x ...
01. Dart 介绍 02. Dart 开发环境搭建和开发工具的配置 03. Dart 语言的基础语法 04. Dart 数据类型 05. Dart 运算符 06. Dart 条件表达式 07. Dart 类型转换 08. Dart 循环语句 09. Dart break 和 continue 语 ...