![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JS
文章平均质量分 52
木蓝茶陌*_*
这个作者很懒,什么都没留下…
展开
-
table表格导出为excel文件并设置样式
table表格导出为excel文件并设置样式。原创 2024-04-23 13:07:47 · 518 阅读 · 0 评论 -
js 使用 console.time && console.timeEnd 来记录代码的执行耗时
js 使用 console.time && console.timeEnd 来记录代码的执行耗时原创 2024-04-23 10:53:47 · 396 阅读 · 0 评论 -
for循环使用var和let声明变量的区别
for循环使用var声明变量 i,最后输出的是10。变量i是var命令声明的,在全局范围内都有效,所以全局只有一个变量i。每一次循环,变量i的值都会发生改变,而循环体内被赋给数组arr的函数内部的,里面的i指向的就是全局的i。也就是说,所有数组arr的成员里面的i,指向的都是同一个i,所以运行时输出的是最后一轮的i的值10。for循环使用 `let` ,声明变量 i,声明的变量 i 仅在块级作用域内有效,最后输出的是 6。原创 2024-04-18 13:33:30 · 448 阅读 · 1 评论 -
JavaScript 定时器详解
JavaScript 在浏览器中是单线程执行的,但允许使用定时器指定在某个时间之后或每隔一段时间就执行相应的代码。setTimeout() 用于指定在一定时间后执行某些代码,而 setInterval() 用于指定每隔一段时间执行某些代码。原创 2024-03-27 11:08:02 · 788 阅读 · 0 评论 -
JavaScript 单例内置对象 Math 详解
ECMAScript 提供了 Math 对象作为保存数学公式、信息和计算的地方。Math 对象提供了一些辅助计算的属性和方法。当代码开始执行时,全局上下文中会存在内置对象 Math。Math 对象包含辅助完成复杂计算的属性和方法。Math 对象上提供的计算要比直接在 JavaScript 实现的快得多,因为 Math 对象上的计算使用了 JavaScript 引擎中更高效的实现和处理器指令。但使用 Math 计算的问题是精度会因浏览器、操作系统、指令集和硬件而异。原创 2024-03-26 09:37:39 · 803 阅读 · 0 评论 -
js下载svg文件和预览svg文件
js下载svg文件和预览svg文件原创 2024-03-12 13:30:40 · 520 阅读 · 0 评论 -
JavaScript 单例内置对象 Global 详解
ECMA-262 对内置对象的定义是“任何由 ECMAScript 实现提供、与宿主环境无关,并在 ECMAScript 程序开始执行时就存在的对象”。这就意味着,开发者不用显式地实例化内置对象,因为它们已经实例化好了。当代码开始执行时,全局上下文中会存在两个内置对象:Global 和 Math。其中,Global 对象在大多数 ECMAScript 实现中无法直接访问。不过,浏览器将其实现为 window 对象。所有全局变量和函数都是 Global 对象的属性。原创 2024-03-07 13:29:16 · 953 阅读 · 0 评论 -
JavaScript Web Storage 详解
Web Storage 定义了两个对象用于存储数据:sessionStorage 和 localStorage。sessionStorage 用于严格保存浏览器一次会话期间的数据,因为数据会在浏览器关闭时被删除。localStorage 用于会话之外持久保存数据。原创 2024-03-06 14:24:01 · 320 阅读 · 0 评论 -
JavaScript Web Socket 详解
Web Socket 是与服务器的全双工、双向通信渠道。与其他方案不同,Web Socket 不使用 HTTP,而使用了自定义协议,目的是更快地发送小数据块。这需要专用的服务器,但速度优势明显。原创 2024-03-01 13:35:22 · 999 阅读 · 0 评论 -
JavaScript 浏览器元素滚动 scrollIntoView()
scrollIntoView() 方法存在于所有 HTML 元素上,可以滚动浏览器窗口或容器元素以便包含元素进入视口。原创 2024-02-29 16:29:53 · 551 阅读 · 0 评论 -
JavaScript 延迟执行脚本的defer属性和异步执行脚步的async属性
对不推迟执行的脚本,浏览器必须解释完位于 元素中的代码,然后才能继续渲染页面的剩余部分。为此,通常应该把 元素放到页面末尾,介于主内容之后及 标签之前。可以使用 defer 属性把脚本推迟到文档渲染完毕后再执行。推迟的脚本原则上按照它们被列出的次序执行。可以使用 async 属性表示脚本不需要等待其他脚本,同时也不阻塞文档渲染,即异步加载。异步脚本不能保证按照它们在页面中出现的次序执行。原创 2024-02-27 14:27:08 · 756 阅读 · 0 评论 -
JavaScript 立即调用的函数表达式
函数可以在创建之后立即调用,执行其中代码之后却不留下对函数的引用。 立即调用的函数表达式如果不在包含作用域中将返回值赋给一个变量,则其包含的所有变量都会被销毁。原创 2024-02-26 13:43:11 · 270 阅读 · 0 评论 -
JavaScript typeof 操作符和 instanceof 操作符
typeof 操作符可以确定值的原始类型,而 instanceof 操作符用于确保值的引用类型。typeof 操作符最适合用来判断一个变量是否为原始类型。更确切地说,它是判断一个变量是否为字符串、数值、布尔值或 undefined 的最好方式。如果值是对象或 null,那么 typeof 返回 "object"。typeof 操作符在用于检测函数时也会返回 "function"。原创 2024-02-23 08:52:41 · 701 阅读 · 0 评论 -
JavaScript 原始值和引用值在变量复制时的异同
JavaScript 变量可以保存两种类型的值:原始值和引用值。原始值和引用值有以下特点。 原始值:大小固定,因此保存在栈内存上;从一个变量到另一个变量复制原始值会创建该值的第二个副本;typeof 操作符可以确定值的原始类型。引用值:是对象,存储在堆内存上;包含引用值的变量实际上只包含指向相应对象的一个指针,而不是对象本身。 从一个变量到另一个变量复制引用值只会复制指针,因此结果是两个变量都指向同一个对象;而 instanceof 操作符用于确保值的引用类型。原创 2024-02-20 13:35:27 · 825 阅读 · 0 评论 -
JavaScript valueOf() 方法详解
valueOf() 方法通常由 JavaScript 在后台自动调用,并不显式地出现在代码中。所有主要浏览器都支持valueOf()。valueOf() 方法可以返回数字、String 对象、 Boolean 对象、Array 对象、Date 对象等的原始值。原创 2024-02-06 09:54:07 · 1344 阅读 · 0 评论 -
JavaScript 垃圾回收的常用策略和内存管理
JavaScript 是使用垃圾回收的编程语言,开发者不需要操心内存分配和回收。JavaScript 的垃圾回收程序可以总结如下。 1.离开作用域的值会被自动标记为可回收,然后在垃圾回收期间被删除。 2.主流的垃圾回收算法是标记清理,即先给当前不使用的值加上标记,再回来回收它们的内存。 3.引用计数是另一种垃圾回收策略,需要记录值被引用了多少次。4.引用计数在代码中存在循环引用时会出现问题。 5.解除变量的引用不仅可以消除循环引用,而且对垃圾回收也有帮助。为促进内存回收,全局对象、全局对象的属性和循环引原创 2024-02-04 09:14:00 · 957 阅读 · 0 评论 -
ECMAScript 中所有函数的参数都是按值传递的
ECMAScript 中所有函数的参数都是按值传递的。这意味着函数外的值会被复制到函数内部的参数中,就像从一个变量复制到另一个变量一样。如果是原始值,那么就跟原始值变量的复制一样,如果是引用值,那么就跟引用值变量的复制一样。在按值传递参数时,值会被复制到一个局部变量(即一个命名参数,或者用 ECMAScript 的话说, 就是 arguments 对象中的一个槽位)。原创 2024-02-01 13:44:27 · 460 阅读 · 0 评论 -
JavaScript 基本引用类型Date详解
Date 类型提供关于日期和时间的信息,包括当前日期、时间及相关计算。Date 类型将日期保存为自协调世界时(UTC,Universal Time Coordinated)时间 1970 年 1 月 1 日午夜(零时)至今所经过的毫秒数。在不给 Date 构造函数传参数的情况下,创建的对象将保存当前日期和时间。要基于其他日期和时间创建日期对象,必须传入其毫秒表示。ECMAScript 为此提供了两个辅助方法:Date.parse() 和 Date.UTC()。原创 2024-01-30 13:47:48 · 652 阅读 · 0 评论 -
BOM history 对象详解
history 对象表示当前窗口首次使用以来用户的导航历史记录。因为 history 是 window 的属性, 所以每个 window 都有自己的 history 对象。出于安全考虑,这个对象不会暴露用户访问过的 URL, 但可以通过它在不知道实际 URL 的情况下前进和后退。 history 对象提供了操纵浏览器历史记录的能力,开发者可以确 定历史记录中包含多少个条目,并以编程方式实现在历史记录中导航,而且也可以修改历史记录。原创 2024-01-26 13:24:41 · 630 阅读 · 0 评论 -
BOM location 对象详解
location 是最有用的 BOM 对象之一,提供了当前窗口中加载文档的信息,以及通常的导航功能。 这个对象独特的地方在于,它既是 window 的属性,也是 document 的属性。也就是说, window.location 和 document.location 指向同一个对象。location 对象不仅保存着当前加载文档的信息,也保存着把 URL 解析为离散片段后能够通过属性访问的信息。原创 2024-01-25 13:46:34 · 830 阅读 · 0 评论 -
JavaScript 执行上下文与作用域
全局上下文是最外层的上下文。根据 ECMAScript 实现的宿主环境,表示全局上下文的对象可能不一 样。在浏览器中,全局上下文就是我们常说的 window 对象,因此所有通过 var 定义的全局变量和函数都会成为 window 对象的属性和方法。使用 let 和 const 的顶级声明不会定义在全局上下文中,但在作用域链解析上效果是一样的。上下文在其所有代码都执行完毕后会被销毁,包括定义在它上面的所有变量和函数。上下文中的代码在执行的时候,会创建变量对象的一个作用域链。原创 2024-01-24 13:48:02 · 900 阅读 · 0 评论 -
localStorage和sessionStorage的区别
localStorage和sessionStorage的区别HTML5的WebStorage提供了两种API:localStorage(本地存储)和 sessionStorage(会话存储)。生命周期:localStorage的生命周期是永久的,关闭页面或浏览器之后,localStorage中的数据也不会消失。localStorage除非主动删除数据,否则数据永远不会消失。sessionStorage的生命周期是在仅在当前会话下有效。sessionStorage引入了一个“浏览器窗口”的概念,原创 2021-01-15 09:18:14 · 402 阅读 · 0 评论 -
apply、call、bind的区别 如何实现一个bind
apply、call、bind 的作用是改变函数执行时的上下文,简而言之就是改变函数运行时的 this 指向。apply 接受两个参数,第一个参数是 this 的指向,第二个参数是函数接受的参数,以数组的形式传入改变 this 指向后原函数会立即执行,且此方法只是临时改变 this 指向一次。call 方法的第一个参数也是 this 的指向,后面传入的是一个参数列表,跟 apply 一样,改变 this 指向后原函数会立即执行,且此方法只是临时改变this 指向一次原创 2024-01-12 13:32:09 · 450 阅读 · 0 评论 -
var、let、const 之间的区别
var、let、const 三者区别:var 声明的变量存在变量提升 , 即变量可以在声明之前调用 , 值为 undefined;let 和 const 不存在变量提升 , 即它们所声明的变量一定要在声明后使用 , 否则报错。var 不存在块级作用域;let 和 const 存在块级作用域。var 允许重复声明变量,后面声明的变量会覆盖前面的变量声明;let 和 const 在同一作用域不允许重复声明变量。var 和 let 可以修改已经声明的变量;const 声明一个只读的常量,值不能改变。原创 2024-01-10 13:29:45 · 1013 阅读 · 0 评论 -
Promise.all()和Promise.race()
Promise.all()方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。Promise.race()方法同样是将多个 Promise 实例,包装成一个新的 Promise 实例。原创 2023-12-20 10:14:39 · 477 阅读 · 0 评论 -
js使用正则校验邮箱格式是否正确
js使用正则校验邮箱格式是否正确原创 2023-10-11 09:14:59 · 591 阅读 · 0 评论 -
js验证字符串是否是时间日期格式
js验证字符串是否是时间日期格式原创 2023-10-10 17:19:26 · 1681 阅读 · 0 评论 -
js for循环设置循环变量和循环体内部是两个单独作用域
for循环设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域。不在同一个作用域,有各自单独的作用域原创 2023-09-21 10:43:24 · 165 阅读 · 0 评论 -
js获取当前时间和前一天的时间
js获取当前时间和前一天的时间。原创 2023-08-05 09:20:23 · 523 阅读 · 0 评论 -
js去除文件后缀名,获取文件名
js去除文件后缀名,获取文件名。原创 2023-07-22 15:41:45 · 802 阅读 · 0 评论 -
前端用于处理cookie的js库 js-cookie
一个简单、轻量级的JavaScript API,用于处理cookie。原创 2023-05-31 09:03:52 · 207 阅读 · 0 评论 -
使用Promise对象封装图片加载的异步操作
使用Promise对象封装图片加载的异步操作。如果加载成功,就调用resolve方法,否则就调用reject方法。原创 2023-05-31 08:56:45 · 314 阅读 · 0 评论 -
JavaScript 日常开发字符串常用方法
JavaScript 中的字符串操作是使用字符串完成的,字符串又称为字符集合。可以使用各种 JavaScript 字符串方法来操作和提取不同类型的数据。原创 2023-04-04 14:46:51 · 260 阅读 · 0 评论 -
js调用浏览器的复制功能复制内容到剪切板
浏览器复制功能,js调用浏览器的复制功能实现复制文本内容到剪贴板原创 2022-09-19 09:39:39 · 2026 阅读 · 0 评论 -
浏览器全屏fullScreen
浏览器全屏和退出全屏操作,浏览器退出全屏报错及解决原创 2022-08-16 15:20:51 · 3813 阅读 · 0 评论 -
js深拷贝实现
js深拷贝实现深拷贝:遍历一个对象中所有的属性的值及对象属性中的属性值,不论是嵌套了几层,要完成所有对象属性的递归后,赋值给一个新的对象。使用递归:function deepCopy (obj) { // 如果被拷贝的是简单数据对象,没必要进行深拷贝 if (typeof obj !== 'object' || obj === null) { return; } // 判断被拷贝的是对象还是数组 // let newObj = obj insta原创 2022-04-09 10:52:20 · 377 阅读 · 0 评论 -
js浅拷贝实现
jS浅拷贝实现一个新的对象直接拷贝已存在的对象的对象属性的引用,即浅拷贝。Array.prototype.slice()属于浅拷贝。var arr = [2, 4, 6, { y: 10 }]var newArr = arr.slice()newArr[3].x = 20newArr[3].y = 30console.log(arr) // [2, 5, 6, { y: 30, x: 20 }]console.log(newArr) // [2, 5, 6, { y: 30, x:原创 2022-04-07 20:08:00 · 5012 阅读 · 1 评论 -
JavaScript中null和undefined的区别
null 和 undefined的区别奇怪点有点奇怪的是,JavaScript语言居然有两个表示"无"的值:undefined和null,这是为什么?历史原因1995年JavaScript诞生时,最初像Java一样,只设置了 null 作为表示"无"的值。根据C语言的传统,null 被设计成可以自动转为0。但是,JavaScript的设计者Brendan Eich(布兰登.艾克),觉得这样做还不够,主要有以下两个原因:null像在Java里一样,被当成一个对象。但是,JavaScript的数原创 2022-03-26 12:07:09 · 1382 阅读 · 0 评论 -
js 继承常用方式
es5 面向对象继承方式想要继承,就必须要提供一个父类(继承谁,提供继承的属性)// 父类function Parent(name) { // 给构造函数添加参数 this.name = name; this.action = function () { console.log(this.name) }}Parent.prototype.age = 25 // 给构造函数添加原型属性var parent = new Parent("Tom")con原创 2021-11-12 09:24:45 · 301 阅读 · 0 评论 -
js数组的reduce()方法
js数组的reduce()方法reduce [rɪˈdjuːs] 翻译为:减少reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。reduce() 可以作为一个高阶函数,用于函数的 compose。注意: reduce() 对于空数组是不会执行回调函数的。reduce() 方法对累加器和数组中的每个元素(从左到右)应用一个函数,将其简化为单个值。reduce为数组中的每一个元素依次执行callback函数,不包括数组中被删除或从未被赋值的元素原创 2021-11-09 09:47:32 · 149 阅读 · 0 评论