前端面试题 ES5-ES6 function-class实现类的区别记录详解

[前端高频面试] 2026年中级、高级面试题解 注意: 别紧张,目光注视面试官,不要有小动作,自信!!自信!!自信!! 阅读详情

在ES5中,我们是通过function来实现类和类的继承,而在ES6中,我们多了class这个语法糖,除了看起来更像一个类外,在很多方面class做到了比function更加严格

1. 写法上

在ES5中,我们是通过prototype和Object.create()来实现类和继承

function Person(){
   
   }
function Student(){
   
   }
Student.prototype = new Person()

而在ES6中,我们使用class语法,通过extends来实现类和继承,但实际原理还是通过原型链实现的

class Person{
   
   }
class Student extends Person{
   
   }

2. 提升上的区别

在ES5中的function是可以提升的,如下代码是没问题的

var foo = new Foo()
function Foo(){
   
   
    this.foo = 42
}

在JavaScript引擎扫描代码发现变量声明的时候,如果遇到变量声明的时候,如果是为var或者没有声明符直接使用赋值,又或者是使用function的时候,就会提升到作用域顶部,而如果遇到let,const时,会将变量声明放到暂时性死区TDZ中,如果访问TDZ中的变量就会导致错误,直到我们执行到这句声明的时候,才会将其从TDZ中拿出来

而class和let,const一样,所以在下面两种情况中会报错

var foo = new Foo()
class Foo{
   
   
    constructor(){
   
   
        this.foo = 42
    }
}
// Uncaught ReferenceError: Foo is not defined
function Foo(){
   
   
    this.foo = 42
}
{
 
前端面试题汇总 总结了一下之前面试遇到的问题,方便自己也方便他人 阅读详情

相关推荐

前端犄角旮旯,非常规面试题总结(不断更新....)

27、判断类型的方式有哪些?1、typeof操作符:用来检测数据的类型,返回的是一个表示类型的字符串。2、instanceof操作符:用来检测对象是否为指定的构造函数的实例。3、方法:可以返回对象的准确类型。4、方法:用来判断一个变量是否为数组。(一)typeof和instanceof区别typeof返回的是一个字符串,表示变量的数据类型,可能的返回值有numberstringbooleanfunctionundefinedobject。instanceof返回的是一个布尔值,true或。

qq_51398495的博客 1665

前端工程师能力地图:从JavaScript基础到性能优化的笔试全解析

JavaScript作为现代Web开发的基石,其核心概念如作用域、闭包、原型链和异步编程,构成了前端工程师理解语言运行机制的关键。这些原理不仅决定了代码的执行结果,更深刻影响着应用的性能与可维护性。深入掌握这些基础,能帮助开发者编写出更高效、健壮的代码,从而应对复杂业务场景的挑战。在前端工程实践中,性能优化是衡量工程师能力的重要维度,它涉及网络请求、渲染流程、代码分割等多个层面。本文基于前端面试中的高频考点,系统梳理了从语言基础、浏览器原理到框架应用、算法思维及系统设计的完整能力体系,并结合虚拟DOM、事件

weixin_30267785的博客 496

ArcGIS渔网分割实战:用Create Fishnet快速生成1km×1km网格(附GDP数据分析案例)

本文详细解析了ArcGIS中Create Fishnet工具在渔网分割中的应用,从基础操作到GDP空间分析全流程。通过1km×1km网格的创建与优化,实现经济数据的空间标准化和可视化表达,解决数据融合与分析的三大核心痛点。

weixin_29250403的博客 295

HALCON卡尺模型实战:5分钟搞定工件尺寸测量(附完整代码)

本文详细介绍了HALCON卡尺模型在工件尺寸测量中的实战应用,通过5分钟快速搭建测量系统的完整指南,包括基础配置、高级参数调优和完整代码示例。卡尺模型能自动识别边缘并计算精确尺寸,显著提升工业视觉检测的效率和一致性,特别适用于实时测量场景。

weixin_42570296的博客 459

零基础学会制作 基于STM32/51单片机的智能血压表设计/血压表/血压计

本系统是以单片机为主控,传感器模快、显示模块、人机交互、无线传输等组成的智能血压表设计。传感器用于测量血压和脉搏,主控电路板用于处理数据和控制设备,显示屏则用于显示测量结果。通过软件设计,完成测量数据的处理,其中血压和脉搏的测量、数据的分析和处理等。

weixin_55654459的博客 2473

相机图像质量研究(22)常见问题总结:CMOS期间对成像的影响--光学串扰

光学串扰是一个比较难以理解的光学现象,实际影响往往不大。一、光学串扰产生的原因通常是入射角度太大,光线在不同通道之间产生了混叠二、光学串扰产生的现象光学串扰容易导致迷宫纹。总结本节讲了光学串扰产生的原因,现象。

xiaoshixiu的专栏 1572

LoveSQL

LoveSQL(SQL注入详解) 1、根据题目,显然想到的是sql注入漏洞,直接尝试万能密码 2、此时url构造,查看字段数 /check.php?username=admin' order by 3%23&password=1 # 存在 /check.php?username=admin' order by 4%23&password=1 # 报错 因此,得到总共有三个字段数 注意:url中不能用#,应该用url编码%23 3、用union来查询测试注入点,查看回显点

lunan的博客 1561

基于MATLAB Simulink的电动汽车整车控制仿真

在本文中,我们选择了power_ElectricVehicle示例模型,该模型已经包含了电动汽车的基本组成部分,包括电机、变速器、驱动轮、电池等。例如,使用PID控制器来控制电机的转速,使用ABS控制器来控制车轮的制动力,使用转向控制器来控制车辆的转向角度,使用悬挂控制器来控制车轮的姿态等。通过建立模型和实现控制器,我们可以比较直观地了解电动汽车的工作原理和性能特点,并验证设计的控制系统在不同工况下的效果。而在电动汽车的开发中,整车控制系统是至关重要的一个组成部分,直接影响着电动汽车的性能和性价比。

qq_39605374的博客 1800

【异常】解决 Cursor 报错 Unexpected seqno: 2 != 1. Please try again, or contact support if the issue 的排坑指南

在使用 Cursor 辅助编程时,你是否遇到过 AI 突然中断输出,并在右下角弹出一个红色的 Network Error 弹窗?今天我们就来彻底解析并解决这个网络断连问题。

奶爸的编程之路,也就一周冷个三天 2466

【DaVinci Developer专题】-28-Client Server Port Interface中useArgumentType、useArrayBaseType和useVoid介绍

共7页 目录 1 ImplPolicy = useArgumentType 2 ImplPolicy = useArrayBaseType 3 ImplPolicy = useVoid 4 三者代码差异部分 5 结尾 <--返回「实战篇」博文-总目录--> <--返回「Autosar从入门到精通-实战篇」专栏主页--> 关键字: 缩略语/术语 含义 DEV DaVinci Developer

「汽车电子助手」的博客 1502

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

上一篇: 个人博客搭建笔记----在自己的主题中添加自定义的404页面
下一篇: 减少回流重绘的方法及相关的性能测试(performance)结果分析
前端小黑
博客等级 码龄9年 148粉丝 222原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值