- 博客(8)
- 收藏
- 关注
原创 面试回答之forEach和for循环的区别
forEach 和 for 循环是 JavaScript 中用于迭代数组的两种常见方法,它们在实现上有一些区别:
2024-07-13 22:55:17 177
原创 面试回答之作用域和作用域链
全局作用域指的是在整个程序中都能访问的变量,而局部作用域则是在特定代码块或函数中可访问的变量。当你在一个函数内声明一个变量时,它就成为了该函数的局部变量,只能在函数内部访问。当你引用一个变量时,JavaScript引擎会首先查找当前作用域,如果找不到,就会沿着作用域链向上查找,直到找到该变量或达到全局作用域。是指变量在程序中的可访问范围和生命周期,在JavaScript中,作用域有全局作用域和局部作用域之分。是由多个作用域组成的链状结构,作用域链描述了这些作用域是如何嵌套的,它决定了变量的查找顺序。
2024-07-13 16:09:45 438
原创 面试回答之vue3和vue2的区别
1.底层实现原理不一样,vue3使用的是Proxy代理,使用proxy代理对象来追踪数据变化,相比vue2的object.defineProperty方法,具有更好的性能。2.vue3的组件生命周期销毁阶段和vue2不一样(vue3:beforeUnmount,unmounted;6.vue3引入的composition API,相比vue2的options API,提供了更灵活、更直观的方式来组织和管理代码。5.vue3支持多个根节点组件,而vue2只支持单根节点组件。
2024-04-16 16:22:56 586 1
原创 面试回答之深拷贝浅拷贝
深拷贝是在堆中先创建一个新对象,采用递归的方法,将一个对象从内存中完整的拷贝一份。如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,在堆中创建一个新对象再完整拷贝原对象。深拷贝改变新对象不会影响原对象,他们之间互不影响。浅拷贝是在堆中先创建一个新对象,拷贝原始对象的属性值。如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的就是内存地址。浅拷贝基本数据类型之间互不影响,引用类型其中一个对象改变了地址,就会影响另一个对象。JS中基本数据类型存放在栈中,引用数据类型存放在堆中。
2024-01-16 14:01:38 352 1
原创 面试回答之promise
4.Promise.any() :是与 Promise.all() 相对应的方法,它接收一个包含多个 Promise 对象的数组,只有当所有的 Promise 对象都变为 rejected 状态时,Promise.any() 才会变为 rejected,并执行 catch 回调;如果任何一个 Promise 对象变为 rejected 状态,Promise.all() 就会变为 rejected,并返回第一个被 reject 的 Promise 对象的结果。通常,reject() 被用于表示异步操作失败。
2024-01-10 21:16:24 768
原创 面试回答之访问一个网址的流程
第三次握手是客户端接收到服务器回传的数据包后,给服务器端再次发送数据包。3.浏览器使用解析得到的Ip地址,经过三次握手过程,和服务器简历TCP连接;2.浏览器会根据解析的域名发送DNS请求,以获取对应域名的ip地址;第一次握手是建立连接,客户端发送连接请求报文,并传送规定的数据包;第二次握手是服务器端表示接收到连接请求报文,并回传规定的数据;4.请求TCP连接后,浏览器会发送一个HTTP请求到服务器;8.页面加载完成后,浏览器会关闭和服务器的连接,释放资源。第二次握手是服务器表示收到这次断开请求;
2024-01-09 16:15:38 673
原创 面试回答之事件轮询
首先,JS是单线程的,为了防止代码堵塞,我们把代码分为同步代码和异步代码。同步代码给JS引擎执行,异步代码交给宿主环境;同步代码放入执行栈中,异步代码等待时机成熟送入任务队列排队,执行栈执行完毕,会去任务队列查看是否有异步任务,有就送到执行栈执行,反复循环查看执行,这个过程就是事件循环(eventloop)。JS把异步任务分为宏任务和微任务,首先执行一个宏任务然后执行所有的微任务,执行完再去宏任务队列中选择下一个宏任务执行,这个过程不断循环,直到所有任务被处理完毕。
2024-01-07 21:03:35 462
原创 面试回答之闭包
4.异步编程: 在异步操作中,闭包可以捕获外部变量,确保在异步操作完成后仍然可以访问这些变量。通过闭包,你可以使用 getter 和 setter 函数控制对变量的访问,实现更安全的代码。3.实现模块模式: 通过闭包,你可以创建类似于模块的结构,将一组相关的功能封装在一个闭包内部。理解:函数内部返回一个函数,这个内部函数引用外部函数的变量,被引用的外部函数的变量不会被立即销毁。我们可以主动将已使用的闭包函数赋值为null可以销毁闭包,确保应用的性能和内存管理得以优化。闭包可能会导致内存泄漏。
2024-01-05 18:12:35 761 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人