- 博客(11)
- 收藏
- 关注
原创 前端面试题-Javascript篇
Javascript闭包-CSDN博客答:闭包是指在JavaScript中,一个内部函数能够访问其外部函数的作用域中的变量,即使外部函数已经执行完毕。闭包由函数及其词法环境组成,内部函数持有外部作用域的变量引用。闭包的使用场景 :防抖和节流:在处理高频事件(如窗口缩放、滚动)时,通过闭包保存计时器ID,避免函数被频繁调用。模块开发:使用 IIFE (立即执行函数表达式)返回包含私有方法的对象,实现模块的封装和私有化。循环陷阱处理。
2025-06-25 21:47:40
549
原创 JS原型链和继承
JavaScript原型链是继承的核心机制,通过__proto__属性形成链式查找结构。构造函数prototype关联原型对象,new创建的实例自动继承该原型。继承方式包括:原型链继承(子类原型指向父类实例)、构造函数继承(调用父类构造方法)、组合继承(结合前两者优点)以及ES6的class/extends语法。示例展示了组合继承的实现,通过Animal.call()继承属性,Object.create()继承方法,既实现方法共享又保持属性独立,如Dog实例d调用speak()方法时能正确输出结果。
2025-06-18 22:31:33
193
原创 在 JavaScript 中,判断变量类型有多种方法
JavaScript类型检测方法各有特点:typeof适合基本类型但无法区分null与数组;instanceof用于对象实例检测但对基本类型无效;Object.prototype.toString.call()最为全面,能精确识别所有内置类型;Array.isArray()专用于数组检测。最佳实践是组合使用这些方法:基本类型用typeof,数组用Array.isArray(),其他对象用Object.prototype.toString.call(),而null/undefined则直接用===比较。
2025-06-17 21:33:24
201
原创 Javascript闭包
JavaScript闭包是指内部函数访问外部函数变量的能力,即使外部函数已执行完毕。闭包由函数及其词法环境组成,能保留变量状态、实现数据封装,常用于防抖节流、模块开发和循环陷阱处理等场景。其原理是通过作用域链保留对外部变量的引用。最佳实践包括:循环中使用let/IIFE隔离变量,React Hooks中采用函数式更新,组件卸载时清除资源,以及使用弱引用避免内存泄漏。闭包是实现模块化、状态管理和高阶函数的重要机制,但需注意合理使用以防内存问题。
2025-06-17 21:08:11
289
原创 JS事件循环(Event Loop)机制
JavaScript 的事件循环(Event Loop)是 JavaScript 运行机制的核心部分,它负责处理代码的执行、事件的处理以及异步操作的调度。:通过将耗时的操作(如I/O操作、网络请求等)放在后台处理,JavaScript可以更高效地管理资源,提高应用的响应性和性能。执行完所有微任务后,它会检查宏任务队列,并执行其中的一个任务(通常是时间最接近的任务)。如果调用栈为空,它会首先检查微任务队列是否有待执行的函数,如果有,就执行这些微任务。一旦宏任务执行完毕,再次检查微任务队列,如此循环往复。
2025-06-17 20:31:06
264
原创 IOS程序中更新rootViewController后无法进入mPaas小程序问题
解决IOS程序中,更新rootViewController后无法进入mPaas小程序问题,遇到“网络不给力,请稍后再试”的提示问题,
2025-04-16 20:39:22
264
原创 UninstalledProducts/iphoneos/*.framework“ failed: No such file or directory
IOS错误:Command PhaseScriptExecution failed with a nonzero exit code,详细信息为UninstalledProducts/iphoneos/*.framework" failed: No such file or directory
2025-03-03 21:03:06
224
原创 Html移动端保存电话到手机通讯录
本文主要是讲解在html移动端中,点击电话号码时,将电话号码保存到手机的通讯录中。该功能在Android系统和IOS系统中实现有所不同,Android利用a标签中的WTAI协议进行实现。而在IOS系统中,目前只了解到了能在Safari浏览器中利用生成vcf文件进行实现。
2023-11-16 20:26:25
1379
1
原创 navigator.share实现调用浏览器分享功能
对象中存储了与浏览器相关的信息,例如名称、版本等,我们可以通过 window 对象的 navigator 属性(即 window.navigator)来引用 navigator 对象,并通过它来获取浏览器的基本信息。由于 window 对象是一个全局对象,因此在使用window.navigator时可以省略 window 前缀,例如window.navigator.appName可以简写为navigator.appName。
2023-11-12 22:44:55
2494
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人