区别
-
JS中的call和apply有什么区别?
call 和 apply 的核心区别在于参数传递方式不同。1. call 的参数依次列出,适用于参数固定、明确的场景,如 math.max.call(null, 1, 2, 3);2. apply 的参数为数组或类数组,会自动展开,适合参数为数组的情况,如 math.max.apply(null, …
-
JS中的箭头函数和普通函数有什么区别?
箭头函数与普通函数的关键区别在于this绑定、构造函数能力和arguments对象。1. this指向不同:普通函数的this取决于调用方式,而箭头函数继承外层作用域的this,如在对象方法中使用可能无法访问对象属性;2. 箭头函数不能作为构造函数,无法通过new创建实例;3. 箭头函数无自己的ar…
-
JS中的setTimeout和setInterval有什么区别?
在JavaScript中,setTimeout和setInterval看起来都是用来控制代码执行时间的,但它们的行为方式其实完全不同。 简单来说: setTimeout是“只执行一次”的定时器。 setInterval是“重复执行”的定时器。 接下来我们从几个常见使用场景出发,讲讲它们的区别和用法。…
-
JS中的fetch怎么用?和ajax有什么区别?
fetch基本用法是传入url发起get请求,如fetch(‘https://api.example.com/data’)并处理json响应;发post需加配置项,注意默认不带cookie、不会自动报错404、返回promise。区别上:1.语法不同,fetch用promis…
-
JS中的Object.assign有什么用?怎么用?
object.assign 是 javascript 中用于复制对象属性的方法,其核心作用是将一个或多个源对象的可枚举属性复制到目标对象中并返回。1. 基本用法是合并对象,语法为 object.assign(target, …sources),若属性名重复,后面的源对象属性会覆盖前面的;…
-
JS中的let和var有什么区别?怎么用?
在 javascript 中,let 和 var 的主要区别在于作用域、变量提升和重复声明。1. let 是块级作用域,而 var 是函数作用域;例如,在 if 块中用 let 声明的变量无法在外部访问,var 则可以。2. var 存在变量提升,即变量可在声明前访问但值为 undefined,而 …
-
JS中的class关键字怎么用?和构造函数有什么区别?
javascript 中的 class 是 es6 引入的语法糖,用于更清晰地定义对象模板,其本质仍基于原型继承。1. 定义类使用 class 关键字,内部通过 constructor 初始化属性,方法直接写在类体中;2. 创建实例需用 new 调用;3. class 与构造函数的区别包括:写法不同…
-
JS中的事件循环是什么?如何理解?
事件循环是javascript处理异步操作的核心机制,其关键在于宏任务与微任务的执行顺序。javascript是单线程语言,通过事件循环管理代码执行顺序;当调用栈为空时,事件循环会从任务队列中取出任务执行。事件分为宏任务(如settimeout、i/o操作)和微任务(如promise.then、mu…
-
JS中的模块化是什么?如何实现?
模块化在javascript中指的是将代码拆分成独立且可复用的部分,以解决命名冲突和依赖混乱问题,提高可维护性和协作效率。具体方式包括:1. 按功能划分模块,如auth.js处理登录、api.js调用接口、utils.js存放工具函数;2. 避免模块过大,超过几百行应考虑进一步拆分;3. 合理使用默…
-
JS中的深拷贝和浅拷贝有什么区别?
浅拷贝和深拷贝的核心区别在于是否创建原对象的完整独立副本。1. 浅拷贝仅复制对象第一层属性,若属性为引用类型则复制其地址,常见方法包括object.assign、扩展运算符和数组的slice()、concat(),修改嵌套对象会影响原对象;2. 深拷贝递归复制所有层级,生成完全独立对象,常用方法有j…