
javaScript
文章平均质量分 64
**之火
希望一直深耕钱端领域,但也喜欢涉猎其他计算机编程领域,钱端幸福三要素:悠闲,寡欲,融入自然。
展开
-
javaScript 之 call、apply、bind的用法和区别
call和apply都是立即调用函数。bind是返回一个新的函数,这个新函数可以在以后的任何时间被调用。this绑定bind方法创建一个新的函数,并将该函数的this指向指定的对象。这个绑定是永久性的,即使在不同的上下文中调用新函数,this也不会改变。bind可以预设部分参数,这些参数在新函数被调用时会先于新函数的参数被传递。适用于需要显式设置this上下文的场景,例如事件处理函数、回调函数等。原创 2025-01-09 09:45:57 · 301 阅读 · 0 评论 -
.ejs 后缀文件 - 嵌入式JavaScript模板
EJS模板通常用于服务端渲染,其中JavaScript代码在服务器端执行,生成HTML页面,然后将这些页面发送给客户端。EJS模板可以包含HTML代码、JavaScript表达式、控制结构(如if语句和循环)等,这些在渲染时会被替换为实际的数据。: 在你的Node.js应用程序中,你需要设置EJS为模板引擎。: 启动你的Node.js服务器,当用户访问对应的路由时,EJS模板将被渲染,并且返回给客户端一个完整的HTML页面。方法来渲染EJS模板,并传递一个对象,该对象包含要渲染到模板中的数据。原创 2024-12-20 16:56:45 · 408 阅读 · 0 评论 -
浏览器奇怪的调试技巧 - monitor() 类调用(三)
在Chrome DevTools的命令行接口中,monitor()方法可以用来监听任何传入的方法。当方法被执行时,会在控制台(console)中打印出来,包括调用的函数名以及给相应函数传递的参数。例如,如果你有一个函数getName(),并使用来监听它,那么每次直接或间接调用getName()时,都会在控制台中输出日志。您可以使用 Chrome 的命令行方法轻松跟踪对类方法的所有调用。例如,给定一个类DogDog。原创 2024-12-16 21:30:00 · 1453 阅读 · 0 评论 -
浏览器奇怪的调试技巧 - 高级条件断点(二)
当您具有具有可选参数的重载函数时,这很有用。原创 2024-12-16 16:13:29 · 542 阅读 · 0 评论 -
浏览器奇怪的调试技巧 - 高级条件断点(一)
假设你有一个显示加载微调器的函数和一个隐藏它的函数,但你在代码中的某个位置调用 show 方法,而没有匹配的 hide 调用。但是,我们可以使用条件断点在任何浏览器中模拟它们。您不应该使用条件断点评估时间等内容来混淆性能分析,但如果您想快速而肮脏地测量运行时间,则可以在条件断点中使用控制台计时 API。在起点中,使用条件设置断点,在终点使用条件设置断点。然后添加您的监视表达式,例如,记录 DOM: 的快照。现在,在修改任何 DOM 子树之后,调试器将暂停执行,新的 DOM 快照将位于数组的末尾。原创 2024-12-16 15:50:25 · 802 阅读 · 0 评论 -
前端常用技术备忘录(定时更新)
常用备忘录技术点原创 2021-12-14 10:50:50 · 1250 阅读 · 0 评论 -
window属性:devicePixelRatio
是一个只读属性,返回设备的像素比例(DPR,Device Pixel Ratio)。这个比例表示物理像素和设备独立像素(CSS像素)之间的比率。简而言之,它告诉我们一个物理像素由多少个设备独立像素组成。原创 2024-11-12 09:08:50 · 1751 阅读 · 0 评论 -
window属性:customElements
使用方法来定义一个新的自定义元素。这个方法接受两个参数:自定义元素的名称和一个继承自的构造函数。※自定义元素的构造函数中可以定义生命周期回调方法,如和。// 定义一个新的自定义元素super();// 调用父类的构造函数// 创建 Shadow DOM`;// 注册自定义元素一旦自定义元素被定义,你可以像使用普通 HTML 元素一样在 HTML 文档中使用它。※自定义元素的名称必须包含一个连字符(-),这是 Web Components 规范的要求。使用。原创 2024-11-08 16:51:44 · 311 阅读 · 0 评论 -
ES6 字符串的新增方法(二十)
特性:用另一个字符串填充当前字符串(如果需要的话),以便产生所需长度的新字符串。特性:用另一个字符串填充当前字符串(如果需要的话),以便产生所需长度的新字符串。特性:返回一个码点值的字符串,该码点值位于给定位置的 Unicode 字符。特性:返回一个新字符串,它是原字符串重复指定次数的结果。特性:判断字符串是否以指定的子字符串开始。特性:判断字符串是否以指定的子字符串结束。特性:提供一个模板字符串的原始字符串形式。特性:判断字符串是否包含指定的子字符串。用法:检查字符串的开始部分。用法:左填充字符串。原创 2024-07-19 09:22:07 · 721 阅读 · 0 评论 -
ES6 正则的扩展(十九)
特性:String.prototype.match(), String.prototype.replace(), String.prototype.search(), 和 String.prototype.split() 现在可以接受正则表达式字面量。特性:当设置了 s 修饰符(dotAll)时,点字符(.)可以匹配包括换行符在内的任何字符。特性:正则表达式对象现在有一个 flags 属性,返回正则表达式的修饰符。特性:y 修饰符使正则表达式在搜索时“粘”在每个匹配的开始位置。用法:简化正则表达式的书写。原创 2024-07-19 09:09:48 · 486 阅读 · 0 评论 -
ES6 数值的扩展(十八)
但是由于这两个二进制数的最低位都是 1,所以这个结果肯定是不正确的,因为根据二进制乘法,计算结果的二进制最低位应该也是 1。这个错误就是因为它们的乘积超过了 2 的 53 次方,JavaScript 无法保存额外的精度,就把低位的值都变成了 0。将非数值的值转为数值,再进行判断,而这两个新方法只对数值有效, Number.isFinite() 对于非数值一律返回 false ,Number.isNaN() 只有对于NaN才返回true ,非 NaN 一律返回 false。我们知道浮点数计算是不精确的。原创 2024-07-18 09:53:01 · 1593 阅读 · 0 评论 -
ES6 函数的扩展(十七)
在函数中,尾调用可以被优化,避免增加调用栈。原创 2024-07-18 08:48:54 · 205 阅读 · 0 评论 -
ES6 数组的扩展(十六)
返回数组中满足提供的测试函数的第一个元素的值,否则返回 undefined。:创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。:返回数组中满足提供的测试函数的第一个元素的索引,否则返回 -1。:用一个固定值填充数组中从起始索引到终止索引(不包括)的所有元素。:从类数组对象或可迭代对象中创建一个新的数组实例。:找出数组中满足条件的第一个元素的索引。:将数组的一部分复制到数组的另一个位置。:将数组中一段区域的元素替换为特定值。:找出数组中满足条件的第一个元素。:创建一个包含多个参数的数组。原创 2024-07-16 09:20:11 · 372 阅读 · 0 评论 -
ES6 对象的扩展(十五)
特性:在对象字面量中,可以直接使用方法定义,而不需要使用 function 关键字。用法:简化对象中方法的书写。');// 输出:Hello!原创 2024-07-16 08:52:12 · 379 阅读 · 0 评论 -
ES6 对象的新增方法(十四)
判断对象是否被冻结,即不能添加新属性、删除现有属性或改变现有属性的可枚举性、可配置性、可写性。:设置对象的原型(内部[[Prototype]]属性)。:将一个或多个源对象的所有可枚举属性复制到目标对象。:返回一个给定对象自身可枚举属性的键值对数组。:返回一个包含对象所有可枚举属性名称的数组。:返回一个包含对象所有可枚举属性值的数组。:返回一个对象的所有自身属性的描述符。:获取对象属性的详细描述。:阻止添加新属性到对象。:用于对象属性的合并。:获取对象的所有键。:获取对象的所有值。:获取对象的键值对。原创 2024-07-15 17:48:30 · 768 阅读 · 0 评论 -
ES6 Symbol (十三)
内置Symbol:使用 ES6 内置的 Symbol,如 Symbol.iterator 来实现自定义迭代器。创建Symbol:使用 Symbol() 创建一个新的 Symbol 值。作为属性键:使用 Symbol 作为对象属性的键,确保属性的唯一性。原创 2024-07-15 17:32:38 · 517 阅读 · 0 评论 -
ES6 Module 的语法(十二)
ES2020引入了动态导入,使用 import() 函数可以在运行时按需加载模块。可以使用 * as 语法导入一个模块的所有导出,并将其绑定到一个对象上。每个模块只能有一个默认导出,用 export default 来实现。一些模块在导入时会执行一些代码,这些模块被称为具有副作用的模块。你可以使用 export 关键字导出多个变量、函数或类。使用 import 关键字可以导入其他模块的命名导出。可以在导出和导入时使用 as 关键字进行重命名。导入默认导出时,不需要使用大括号。原创 2024-07-12 17:15:19 · 458 阅读 · 0 评论 -
ES6 Class 的继承(十一)
Class 可以通过extends关键字实现继承,这比 ES5 的通过修改原型链实现继承,要清晰和方便很多。原创 2024-07-12 09:39:06 · 626 阅读 · 0 评论 -
ES6 Class(类) 总结(九)
ES6 中的 class 是一种面向对象编程的语法糖,提供了一种简洁的方式来定义对象的结构和行为。JavaScript 语言中,生成实例对象的传统方法是通过构造函数。下面是一个例子。基本上,ES6 的 class 可以看作只是一个语法糖,它的绝大部分功能,ES5 都可以做到,新的 class 写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。原创 2024-07-11 17:12:13 · 761 阅读 · 0 评论 -
ES6 async 函数详解 (十)
async 函数是什么?一句话,它就是 Generator 函数的语法糖。async 函数就是将 Generator 函数的星号( * )替换成 async ,将 yield 替换成 await ,仅此而已。Generator 函数的执行必须靠执行器,所以才有了 co 模块,而 async 函数自带执行器。也就是说, async 函数的执行,与普通函数一模一样,只要一行。原创 2024-07-11 10:57:44 · 430 阅读 · 0 评论 -
ES6 Generator函数的异步应用 (八)
【代码】ES6 Generator函数的异步应用 (八)原创 2024-07-11 08:52:21 · 431 阅读 · 0 评论 -
ES6 Generator函数的语法 (七)
ES6 中的 Generator函数是一种特殊类型的函数,它允许你控制函数的执行流程,使其在执行过程中可以多次暂停和恢复。Generator 函数在定义时使用星号 *作为后缀。原创 2024-07-10 14:19:41 · 505 阅读 · 0 评论 -
ES6 Iterator 与 for...of 循环(五)
对于大型集合,for…of 循环可能不如传统的 for 循环高效,因为每次迭代都需要调用迭代器的 next() 方法。of 循环在现代浏览器和 Node.js 中得到支持,但一些旧的 JavaScript 环境可能不支持。原创 2024-07-10 09:11:28 · 559 阅读 · 0 评论 -
ES6 之 Promise 构造函数知识点总结 (四)
Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了 Promise 对象。对象的状态不受外界影响。Promise 对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。原创 2024-07-09 10:40:30 · 668 阅读 · 0 评论 -
ES6 Reflect 详解(三)
Proxy 方法拦截 target 对象的属性赋值行为。它采用 Reflect.set 方法将值赋值给对象的属性,确保完成原有的行为,然后再部署额外的功能。原创 2024-07-08 16:19:03 · 940 阅读 · 0 评论 -
ES6 之 Proxy(代理)总结(二)
ES6 引入了 Proxy 对象,它用于创建一个对象的代理,从而可以拦截并自定义对象的基本操作,如属性查找、赋值、枚举、函数调用等。原创 2024-07-08 09:47:30 · 1207 阅读 · 0 评论 -
ES6 之 Set 与 Map 数据结构要点总结(一)
Set 和 Map 提供了现代的、高效的数据结构,适用于需要快速查找、添加和删除操作的场景。Set 对象允许你存储任何类型的唯一值,无论是原始值还是对象引用。2. delete(value):从 Set 中移除一个值。3. has(value):检查 Set 是否包含某个值。Map 对象保存键值对的集合,其中键和值可以是任意类型。1. add(value):添加一个新值到 Set。4. clear():移除 Set 中的所有值。5. size:返回 Set 中的元素数量。原创 2024-07-08 09:16:37 · 699 阅读 · 0 评论 -
ArrayBuffer 对象常见的几个用途
ArrayBuffer 在 JavaScript 中的用途广泛,主要用于处理二进制数据。ArrayBuffer 对象、 TypedArray 视图和 DataView 视图是 JavaScript 操作二进制数据的一个接口。本文介绍ArrayBuffer 对象的常见的一些用法。原创 2024-07-05 09:52:39 · 374 阅读 · 0 评论 -
JavaScript 原型链那些事
1. 原型对象:在JavaScript中,对象可以有一个原型对象,该对象本身也是一个对象。对象的原型对象通过内部属性[[Prototype]]来引用,这个属性在ES5可以通过Object.getPrototypeOf()或__proto__(非标准但被广泛实现的属性)访问。2. 属性查找:当访问一个对象的属性时,如果该属性在对象自身上不存在,JavaScript 引擎会沿着[[Prototype]]链向上查找,直到找到该属性或到达链的末端。3. 构造函数的prototype属性。原创 2024-07-04 09:26:09 · 898 阅读 · 0 评论 -
JavaScript性能优化几点小窍门
因为这样会大大增加 HTML 文件的大小,无益于代码的压缩和缓存的使用。避免在if和while语句的条件部分进行赋值,如if (a = b),应该写成if (a == b),但是在比较是否相等的情况下,最好使用全等运行符,也就是使用===和!==操作符会相对于==和!和函数类似 ,with语句会创建自己的作用域,因此会增加其中执行的代码的作用域链的长度,由于额外的作用域链的查找,在with语句中执行的代码肯定会比外面执行的代码要慢,在能不使用with语句的时候尽量不要使用with语句。原创 2024-07-03 09:23:45 · 970 阅读 · 0 评论 -
javascript: void(0);用法和常见问题
使用javascript:void(0)可以防止链接跳转,但并不是所有情况下都适用。例如,如果你需要链接执行JavaScript代码,但仍然希望它看起来像一个正常的链接,你可能需要其他方法。void(0)返回undefined,但undefined本身不是一个函数调用的结果,而是JavaScript中表示没有值的特殊值。虽然void操作符本身对性能影响不大,但过度使用或在不必要的地方使用可能会让代码难以阅读和维护。void(0)有时会被误解为调用了名为void的函数,实际上void是一个一元操作符。原创 2024-07-02 09:26:15 · 1222 阅读 · 0 评论 -
JavaScript 很少有人知道的最隐僻的14个特性
【代码】JavaScript 很少有人知道的最隐僻的14个特性。原创 2024-07-02 08:50:47 · 270 阅读 · 0 评论 -
前端模块导入导出方式
【代码】前端模块导入导出方式。原创 2024-05-15 22:07:56 · 277 阅读 · 0 评论 -
关于Vue Dialog弹框中使用表格数据不刷新问题解决
Vue使用过程中难免会碰到父子传值问题存在的褚多坑,现今遇到的一个典型的场景记录下来一起分享。首先是父组件中传一个对象配置参数给弹框组件,数据包含:弹框标题,弹框宽度,和是否显示弹框变量,和弹框中的表格表头数据,如下图:问题是,我从父组件传弹框标题的变量dialogConfig[‘title’]进来了,但是页面表格列没有相应刷新最新数据,好无语哦;开始还以为是弹框visible.sync属性...原创 2020-03-06 23:17:17 · 6284 阅读 · 0 评论 -
axios介绍总结
什么是 axios?Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。特性从浏览器中创建XMLHttpRequests 从 node.js 创建http请求 支持PromiseAPI 拦截请求和响应 转换请求数据和响应数据 取消请求 自动转换 JSON 数据 客户端支持防御XSRF安装使用 npm: $ npm install axios 使用 bower: $ bower ins...原创 2020-05-13 12:20:01 · 341 阅读 · 0 评论 -
Proxy基本知识点
Proxy基本语法const obj = new Proxy(target, handler);参数说明如下:target:被代理对象。handler:是一个对象,声明了代理target的一些操作。obj:是被代理完成之后返回的对象。但是当外界每次对obj进行操作时,就会执行handler对象上的一些方法。handler中常用的对象方法如下:1. get(target, propKey, receiver)2. set(target, propKey, value, receive...原创 2020-06-08 09:54:27 · 19767 阅读 · 0 评论 -
JavaScript 全局属性/函数
JavaScript 全局属性属性 描述 Infinity 代表正的无穷大的数值。 NaN 指示某个值是不是数字值。 undefined 指示未定义的值。 JavaScript 全局函数函数 描述 decodeURI() 解码某个编码的 URI。 decodeURIComponent() 解码一个编码的 URI 组件。 encodeURI() 把字符串编码为 URI。 encodeURIComponent() 把字原创 2024-04-12 09:00:00 · 274 阅读 · 0 评论 -
javascript的动态作用域和静态作用域
当一个函数内部使用某个变量时,会先在当前函数的作用域内查找该变量,如果找不到,则会在上级作用域中查找,直至找到全局作用域。词法作用域让foo()中的a通过RHS(Right-Hand Side 赋值表达式中的右侧部分)引用带了全局作用域中的a,因此会输出2。原创 2024-03-17 09:00:00 · 293 阅读 · 0 评论 -
JavaScript Math 对象
Math 对象用于执行数学任务。Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math()。原创 2024-04-11 21:44:59 · 583 阅读 · 0 评论 -
JavaScript Array 对象
Array 对象用于在变量中存储多个值:原创 2024-04-10 09:12:05 · 200 阅读 · 0 评论