「2024」前端高频面试题之JS篇(一)

JavaScript数据类型包括Undefined、Null、String、Number、Boolean、Object、Symbol和BigInt。
这里的对象包括数组、函数和日期。
JavaScript分为原始数据类型和引用数据类型。
主数据类型值是不可变的,不能以任何方式修改它们的值。
值存储在堆栈上,原始数据类型一旦创建就无法更改。
属性和方法不能添加到基本数据类型中,而是通过简单的赋值来完成。
原始数据类型的比较是值的比较。
值存储在堆栈内存中并占用固定的空间。
您可以更改引用数据类型值并添加属性和方法。
赋值是对象引用。
赋值后,两个变量存储同一对象的地址,因此更改一个变量将影响另一个变量。
数据类型检测方法包括:typeof(快速方便,但只返回引用类型的对象)、instanceof(可以区分引用类型,检测结果为true或false)、constructor(获取实例的构造函数)、Object.prototype。
toString.call([value])(获取有关数据类型所属类的信息)。
JavaScript变量提升机制通过在代码执行之前将var和function关键字提升到当前作用域的顶部来帮助提高性能和容错能力。
闭包是一个函数,有权访问另一个函数作用域内的变量,形成私有作用域,保护私有变量免受外部干扰。
闭包的功能包括保护私有变量免受外界干扰、形成坚不可摧的私有作用域以及存储变量和值的能力。
在实际项目中,您应该减少闭包的使用,以避免内存溢出或性能不佳。

javascript基本数据类型有哪些?

JavaScript是一种不精确的语言,数据类型是在程序运行时自动确定的。
基本数据格式包括数字、布尔、字符串、未定义和构造型类型。
数字类型支持以八进制和十六进制表示的整数和浮点数。
字符串类型包含在单句或双句中。
布尔类型有true和false。
未定义类型只有一个值,未定义和构造型只有一个值,无。
数字类型有特殊值Infinity、-Infinity和NaN。
字符串类型可以使用转义字符和属性长度来处理特殊字符并获取字符串的长度。
使用“索引”语法访问字符串中的字符。
使用“+”连接字符串。
添加布尔和数字类型时,true会转换为1,false会转换为0。
如果变量没有被赋值,则该值是未定义的;使用打印机操作符检测数据类型,返回值为字符串。