版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Static前端面试题及详细答案(真实面试版)整套面试题适配JavaScript/TypeScript前端岗位,从基础、核心原理、场景应用、易错坑点、手写实操五个维度整理,答案贴合真实面试官提问逻辑,口语化、无书面生硬感,适配初中级前端面试。一、基础概念题(入门必问)1.说说你对static关键字的理解?在JS中作用是什么?答案:static是类的静态修饰符,专门用来定义属于类本身、不属于实例对象的属性和方法。普通的属性和方法,都是new实例之后,归实例对象私有;而static修饰的内容,直接挂载在类的构造函数上,只能通过类名.属性/方法调用,实例对象无法直接访问。简单总结核心特点:静态属性/方法归类所有,不归实例不能通过实例访问,只能通过类访问静态方法内部的this指向当前类,而不是实例不会被实例继承,只会被子类继承2.静态属性、静态方法和实例属性、实例方法的核心区别?答案:核心区别就是归属对象不同、调用方式不同、内存占用不同。1.归属不同:静态:挂载在类上,全局唯一,所有实例共享实例:挂载在new出来的实例上,每个实例独立拥有2.调用方式不同:静态:类名.xxx实例:实例对象.xxx3.内存不同:静态方法/属性在代码运行后只创建一份,全局复用每new一个实例,就会创建一份独立的实例属性和方法,多个实例会占用多份内存3.静态方法里的this指向是什么?和普通实例方法的this有什么区别?答案:静态方法中的this指向当前类本身,不是实例对象。实例方法的this指向调用该方法的实例对象。这也是为什么静态方法里,无法直接访问实例属性和实例方法,因为this是类,拿不到实例上的私有数据;但可以直接访问静态属性和其他静态方法。二、核心原理与继承题(进阶高频)4.子类能否继承父类的静态属性和静态方法?能不能重写?答案:可以继承,也可以重写。ES6的类继承中,子类会完整继承父类的静态属性和静态方法,直接通过子类名就可以调用父类的静态方法。同时子类可以定义同名的静态属性/方法,直接覆盖父类的静态内容,实现重写。重写后,子类调用自己的静态方法,父类不受影响。补充关键点:静态内容的继承,是构造函数之间的继承,不是原型链继承。5.为什么静态方法不能访问实例属性?实例方法可以访问静态属性吗?答案:1.静态方法不能访问实例属性:静态方法执行时,不需要创建实例,this指向类本身,而实例属性是new之后才会生成、挂载在实例上的,类本身没有这些属性,所以无法访问。2.实例方法可以访问静态属性/静态方法:实例方法的this是实例,实例可以通过this.constructor拿到当前所属的类,进而访问静态属性和静态方法;也可以直接写类名调用静态内容。日常开发中,实例调用静态方法是完全允许的。6.说说静态变量和常量的区别(结合static+const)答案:很多人会混淆静态变量和常量,两者核心区别在可修改性和作用。static静态属性:值可以被修改,全局共享,多个实例共用一份数据static+const静态常量:值不可修改,属于类的固定常量,全局只读,一般用来定义固定配置、枚举状态开发中一般把项目通用的固定配置、状态码、枚举值,统一写成静态常量,避免重复定义和随意修改。三、实战场景题(面试重点)7.开发中什么时候需要用static?列举3个常用场景答案:日常开发中static主要用于通用工具方法、全局共享数据、枚举配置三大场景:1.封装工具类方法比如日期格式化、金额计算、参数校验、防抖节流工具。工具方法不需要实例化,直接类名调用,节省内存,调用更简洁。2.定义全局共享状态/计数器比如统计类的请求次数、弹窗打开次数、全局开关状态,所有实例共享同一份数据,修改后全局生效。3.定义枚举、固定配置比如接口状态码、用户角色、订单状态,用静态常量统一管理,统一维护,修改只需要改一处。8.单例模式怎么用static实现?核心思路是什么?答案:单例模式的核心是保证一个类只有一个实例,全局统一复用,用static实现非常简单。核心思路:定义一个静态属性,用来存储唯一的实例私有化构造函数,禁止外部new提供一个静态方法,判断静态属性是否有实例,有就直接返回,没有就new一个存储并返回一般用于全局弹窗、全局请求实例、全局状态管理。四、易错坑点面试题(扣分点)9.能不能通过实例对象调用静态方法?为什么不推荐?答案:严格来说语法不报错,但完全不推荐。部分浏览器/环境中,实例可以通过constructor找到类,间接调用静态方法,但语义完全错误。静态方法设计初衷就是属于类的通用方法,和实例无关。如果用实例调用静态方法,代码可读性极差,团队协作时会造成歧义,属于不规范写法,工程开发中一律禁止。10.静态属性会被原型链共享吗?和原型属性的区别?答案:不会。静态属性不在原型链上。1.静态属性:挂载在构造函数本身,不在prototype上,原型链查找找不到2.原型属性:挂载在类的prototype上,所有实例通过原型链共享简单区分:static:类独享,实例访问不到prototype:实例共享,类访问不到11.静态方法可以被解构调用吗?有什么坑?答案:可以解构调用,但是会丢失this指向,导致报错。因为静态方法的this默认绑定当前类,如果直接解构单独调用,this会指向全局(浏览器window/nodeglobal),不再指向类,一旦方法内部使用了this访问静态属性,就会出现undefined报错。解决方式:解构后手动bind绑定类,或者直接通过类名调用,不解构。五、手写代码实操题(面试手撕)12.手写一个静态工具类:包含静态日期格式化方法参考答案(可直接手撕):javascript
classDateUtil{
//静态日期格式化方法
staticformat(date,fmt='YYYY-MM-DDHH:mm:ss'){
if(!date)return''
constd=newDate(date)
constyear=d.getFullYear()
constmonth=String(d.getMonth()+1).padStart(2,'0')
constday=String(d.getDate()).padStart(2,'0')
consthour=String(d.getHours()).padStart(2,'0')
constminute=String(d.getMinutes()).padStart(2,'0')
constsecond=String(d.getSeconds()).padStart(2,'0')
returnfmt
.replace('YYYY',year)
.replace('MM',month)
.replace('DD',day)
.replace('HH',hour)
.replace('mm',minute)
.replace('ss',second)
}
}
//调用方式(无需new)
console.log(DateUtil.format(newDate()))核心考点:方法加static、直接类名调用、无需实例化。13.手写static实现单例模式参考答案(面试标准写法):javascript
classSingleton{
//静态属性存储唯一实例
staticinstance=null
//私有化构造函数,禁止外部new
constructor(){}
//静态方法获取单例
staticgetInstance(){
if(!this.instance){
this.instance=newSingleton()
}
returnthis.instance
}
}
//测试:两次获取是同一个实例
consta=Singleton.getInstance()
constb=Singleton.getInstance()
console.log(a===b)//true
六、TS专属static面试题(进阶)14.TS中static静态属性和静态方法有什么额外特性?答案:可以添加访问修饰符:public/private/protectedprivatestatic私有静态属性,外部无法访问,仅类内部可用可以直接初始化静态默
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏徐州市铜山区2025-2026学年第二学期期中学情调研高二数学试题
- 重庆求精中学2025-2026学年高二下学期期中考试数学试题(教师版)
- 2026年云计算资源调度与优化模拟试卷
- 初中道德与法治开放类题型教学设计
- 初中八年级数学一元二次方程的应用之增长率问题与利润问题教学设计
- 小学六年级综合实践活动《火柴畅想曲·准备阶段》教学设计
- 初中地理七年级下册《西亚与欧洲西部》教学设计
- 小学四年级道德与法治教学设计-第9课《生活离不开他们》单元整体教学设计与实施策略
- 小学五年级美术《学画松树》第二课时教学设计:墨韵松风与整幅经营
- 小学三年级科学教学设计:地球科普海报制作与科学表达
- GB/Z 270-2026安全与韧性业务连续性管理体系业务连续性策略指南
- 2026年医疗废物分类及处理培训考试试题(附答案)
- GB/T 48315-2026鲁班工坊运行质量评估指南
- 2025年荆州市文旅集团公开招聘10名工作人员笔试参考题库附带答案详解
- 2026年初中物理教师能力测试卷
- 女性权益保障课件
- 2025国家药品监督管理局药品审评中心招聘笔试历年题及答案
- 2025课堂惩罚 主题班会:马达加斯加企鹅课堂惩罚 课件
- 追寻合唱简谱国家大剧院
- 坡度变化条件下的车辆质量与道路参数联合估计算法
- 装饰工程计算培训
评论
0/150
提交评论