2020前端进阶面试题.pdfVIP

  • 2
  • 0
  • 约1.18万字
  • 约 11页
  • 2023-06-08 发布于河南
  • 举报
2020前端进阶面试题--第1页 2020前端进阶⾯试题 ⼀、JavaScript基础 前端⼯程师吃饭的家伙,深度、⼴度⼀样都不能差。 变量和类型 1. JavaScript规定了⼏种语⾔类型 JavaScript中的每⼀个值都有它⾃⼰的类型,JavaScript规定了七种语⾔类型: 1.Undefined 2.Null 3.Boolean 4.String 5.Number 6.Symbol 7.Object 2. JavaScript对象的底层数据结构是什么 3. Symbol类型在实际开发中的应⽤、可⼿动实现⼀个简单的 Symbol 4. JavaScript中的变量在内存中的具体存储形式 栈内存和堆内存 JavaScript中的变量分为基本类型和引⽤类型 基本类型是保存在栈内存中的简单数据段,它们的值都有固定的⼤⼩,保存在栈空 间,通过按值访问 引⽤类型是保存在堆内存中的对象,值⼤⼩不固定,栈内存中存放的该对象的访问地 址指向堆内存中的对象,JavaScript不允许直接访问堆内存中的位置,因此操作对象时,实际操作对象的引⽤ 5.基本类型对应的内置对象,以及他们之间的装箱拆箱操作 在《javascript⾼级程序设计》中有这样⼀句话: 每当读取⼀个基本类型的时候,后台就会创建⼀个对应的基本包装类型对象,从⽽让我们能够调⽤⼀些⽅法来操作这些数据。(隐式装 箱) 隐式装箱 let a = sun let b = a .indexof(s) // 0 // 返回下标 // 上⾯代码在后台实际的步骤为: let a = new String (sun) let b = a .indexof(s) a = null 显⽰装箱 let a = new String (sun ) 拆箱: 拆箱和装箱相反,就是把引⽤类型转化为基本类型的数据,通常通过引⽤类型的valueof ()和toString ()⽅法实现 2020前端进阶面试题--第1页 2020前端进阶面试题--第2页 let name = new String (sun) let age = new Number (24) console .log(typeof name ) // object console .log(typeof age ) // object // 拆箱操作 console .log(typeof age .valueOf ()); // number // 24 基本的数字类型 console .log(typeof name .valueOf ()); // string // sun 基本的字符类型 console .log(typeof age .toString ()); // string // 24 基本的字符类型 console .log(typeof name .toString ()); // string // sun 基本的字符类型 6.理解值类型和引⽤类型 ⼀、概念 值类型:直接存储值,在栈上存储其值 注:值类型变量声明后,不管是否已经赋值,编译器为其分配内存 引⽤类型:存储对其值的引⽤,在栈上存储地址,在堆上存储值 注:引⽤类型当声明⼀个类时,只在栈中分配⼀⼩⽚内存⽤于容纳⼀个地址,⽽此时并没有为其分配堆上的内存空间,当使⽤new 创建⼀个类的实例时,分配堆上的空间,并把堆上空间的地址保存到栈上分配的⼩⽚空间中。 ⼆、区别 值类型和引⽤类型有何区别? 相同点: 引⽤类型可以实现接⼝,值类型当中的结构体也可以实现接⼝; 引⽤类型和值类型都继承⾃System.Object类; 不同点: 值类型实例通常时在线程栈上分配的(静态分配),但是在某些情形下可以存储在栈中 引⽤类型的对象总是在进程对⽅中分 配(动态分配) 值类型在栈内分配空间⼤⼩因变量类型⽽异 引⽤类型在栈内的空间⼤⼩相同 将⼀个值类型变量赋值给领域给值类型变量时,将复制包含的值 引⽤类型变量的赋值只复制对对象的引⽤,⽽不复制对象本⾝ 值类型不可能派⽣出新的类型:所有的值类型均隐⼠派⽣⾃System.ValueType 值类型不可能包含null值 三、构造函数在结构和类中的区别 类当中,默认有⼀个⽆参数的构造函数,当在类中写

文档评论(0)

1亿VIP精品文档

相关文档