JS
文章平均质量分 71
我们一起深耕 JS 吧
橘子味的冰淇淋~
困顿之时,切莫自馁。熬过此关,便可少进,再进再困,再困再进,终有精进亨通之时。
展开
-
JS中的逗号“,”运算符
它首先计算左操作数,然后计算右操作数,最后返回右操作数的值,用逗号运算符可以在一条语句中执行多个运算。在JavaScript中逗号“,”也是一种运算符,称为逗号运算符。并不是在所有出现逗号的地方都组成逗号表达式,例如在变量说明中,函数参数表中逗号只是用作各变量之间的间隔符。程序中使用逗号表达式,通常是要分别求逗号表达式内各表达式的值,并不一定要求整个逗号表达式的值。逗号运算符可以用于赋值,在用于赋值时,逗号运算符总是返回表达式中的最后一项。一般形式形式: 表达式1,表达式2,…原创 2024-05-10 16:43:54 · 180 阅读 · 0 评论 -
设计模式之单例模式
单例模式是一种创建型设计模式,它保证一个类仅有一个实例,并提供一个访问它的全局访问点。原创 2024-04-26 17:55:59 · 681 阅读 · 2 评论 -
package.json 里面的 dependencies 和 devDependencies 的差异
其实不严格的话,没有特别的差异;若是严格,遵循官方的理解。原创 2024-04-23 16:52:59 · 490 阅读 · 0 评论 -
iframe 的基本介绍与使用
iframe(内嵌框架)是 HTML 中一种用于将一个网页嵌入到另一个网页中的标签,它可以在一个页面中显示来自其他页面的内容。在网页中,使用<iframe>标签可以将一个网页嵌套在另一个网页中,实现网页间的互联互通。原创 2024-04-15 15:25:05 · 937 阅读 · 0 评论 -
defineProperty 与 proxy 详解
我们该怎么知道 obj 发生了改变呢?原创 2024-04-12 17:46:40 · 831 阅读 · 0 评论 -
cookie、localStorage、sessionStorage 详解
http 协议中的 cookie 包括 web cookie 和浏览器 cookie,是服务器发送到 web 浏览器的一小块数据,保存在浏览器的一小段文本信息,浏览器进行存储并且下次发送请求的时候携带上 cookie。购物车:类似于购物车性质的功能,第一次用户将某些商品放入购物车了,但是临时有事,将电脑关闭了,下次再次进入此网站,我们可以通过读取 cookie 中的信息,恢复购物车中的物品。即使是安全的,也不应该将敏感信息存储在cookie 中,因为它们本质上是不安全的,并且此标志不能提供真正的保护。原创 2024-03-26 10:39:06 · 616 阅读 · 0 评论 -
同源策略是什么?跨域是什么?怎么解决跨域?
跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制。协议、域名、端口号都相同才是同一个域。只要有一个不同,就算跨域。需要注意的是:主域名相同,子域名不同也算跨域,例如:email.qq.com 和 zone.qq.com 就属于主域相同,子域不同,也算是跨域。原创 2024-03-04 16:30:51 · 500 阅读 · 1 评论 -
JS执行机制-宏任务微任务的理解
JS任务执行机制原创 2023-02-16 17:06:50 · 158 阅读 · 0 评论 -
JavaScript中?. 和??分别是什么
是 JavaScript 中的两个新操作符,分别是可选链操作符(optional chaining operator)和空值合并操作符(nullish coalescing operator)原创 2024-02-20 17:54:33 · 369 阅读 · 1 评论 -
编译时与运行时?
简单来说,运行时是指一段代码,直接扔进浏览器里能运行,例如JS是运行时语言;编译时是指一段代码不能直接在浏览器里跑,需要先经过编译器编译,再放到浏览器里才能运行,例如TS是编译时语言。原创 2024-02-26 15:56:51 · 393 阅读 · 1 评论 -
JS 跳出循环的几种方法(return、break、continue、throw等)
只输出了1和2,第三次循环中return跳出了循环,同时也阻止了后面代码的执行,这就是return的特性:当执行return语句时,即使函数主体中还有其他语句,函数执行也会停止!通过输出了 end 可以看出他跟 return 语句的不同之处,break 语句只是跳出了当前循环语句,并不会阻止函数内其他语句的执行。所不同的是,它不是退出一个循环,而是跳出当前循环,继续下一轮循环。看打印的结果,不仅阻断了命名循环的执行,而且执行命名循环后续的代码。相当于强制抛错中断执行,不仅终止了循环,后续代码也不再执行。原创 2024-03-07 16:28:00 · 1559 阅读 · 0 评论 -
JS 中的深拷贝与浅拷贝
实际上,即使我们知道了如何在各种情况下进行深拷贝,我们也仍然面临一些问题: 深拷贝实际上是很消耗性能的。深拷贝:会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象。浅拷贝:浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。所以,当你的项目里有大量深拷贝需求的时候,性能就可能形成了一个制约的瓶颈了。引用数据类型的特点:存储的是该对象在栈中引用,真实的数据存放在堆内存里。深拷贝和浅拷贝是只针对Object和Array这样的引用数据类型的。原创 2024-03-12 17:56:50 · 915 阅读 · 1 评论 -
new 操作符原理及实现
new运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。(来自MDN)原创 2024-03-13 17:29:26 · 389 阅读 · 0 评论 -
this是什么?为什么要改变this?怎么改变 this 指向?
项目中有如下类似例子,find 函数中的 this 指向调用它的 obj 对象;而在定时器 setTimeout 中调用 find(),this 是指向 window 对象的。但我们需要 find 函数中 的 this 指向 obj 对象,因此我们需要修改 this 的指向。共同点:第一个参数都为改变 this 的指针。若第一参数为 null / undefined,this 默认指向 window。原创 2024-03-14 11:30:27 · 1081 阅读 · 0 评论 -
原型与原型链
查找对象实例的属性和方法时,先在自身找,找不到则沿着 __proto__ 向上查找,直至 __proto__ 为 null,我们把 __proto__ 形成的链条关系称原型链(实现了js继承)。用字符串调用字符串方法的时候,字符串会在__proto__(也就是String()构造函数寻找对应的字符串方法,字符串的__proto__ === String.prototype,如果String()构造函数没有该方法,那么String()会继续向上寻找,原型prototype。原创 2024-03-18 10:52:05 · 818 阅读 · 0 评论 -
内存泄漏及解决方案
首先,需要了解浏览器自身的内存回收机制。每个浏览器会有自己的一套回收机制,当分配出去的内存不使用的时候便会回收;内存泄露的根本原因就是你的代码中分配了一些‘顽固的’内存,浏览器无法进行回收,如果这些’顽固的’内存还在一直不停地分配就会导致后面所用内存不足,造成泄露。原创 2024-03-19 15:30:20 · 1065 阅读 · 0 评论 -
防抖节流及其实现
此处使用一个对象的方法,主要为了测试 this 指向绑定的问题,调用的时候传递参数问题等。设定一个间隔时间为一秒,在一分钟内,不断的移动鼠标,让它触发一个函数,打印一些内容。限制一个函数到时间了必须执行一次,且在一定时间内只能执行一次。触发时不执行,确定不触发了才执行,且只执行最后一次触发。原创 2024-03-19 16:25:07 · 314 阅读 · 0 评论 -
什么是闭包?闭包的优缺点?闭包的应用场景?
闭包是指有权访问另外一个函数作用域中的变量的函数。函数嵌套内部函数使用外部函数的变量内部函数作为返回值举个栗子:实现每隔1s递增打印数字使用闭包实现i原创 2024-03-19 16:39:21 · 617 阅读 · 0 评论