前端 JavaScript 基础面试题, JavaScript 有哪些数据类型?它们的区别是什么?
前端 JavaScript 基础面试题, JavaScript 有哪些数据类型?它们的区别是什么?
QA
Step 1
Q:: JavaScript 有哪些数据类型?它们的区别是什么?
A:: JavaScript 有八种基本数据类型:Number、String、Boolean、Null、Undefined、Symbol、BigInt 和 Object。其中,前七种是原始数据类型(primitive types),Object 是复杂数据类型。Number 表示数字,包括整数和浮点数;String 表示字符串;Boolean 表示布尔值 true 和 false;Null 表示空值;Undefined 表示未定义;Symbol 表示独一无二的值;BigInt 表示大整数。Object 是引用类型,可以包含各种属性和方法。
Step 2
Q:: 如何判断一个变量的类型?
A:: 可以使用 typeof 操作符来判断变量的基本类型,使用 instanceof 来判断对象的类型。typeof 可以返回 'number'、'string'、'boolean'、'undefined'、'object'、'function' 和 'symbol'。例如,typeof 123 会返回 'number'
。instanceof 检查一个对象是否是某个构造函数的实例,例如 a instanceof Array 返回 true 表示 a 是一个数组。
Step 3
Q:: JavaScript 中的 == 和 ===
有什么区别?
A:: == 是宽松相等(loose equality),它在比较时会进行类型转换;=== 是严格相等(strict equality),比较时不会进行类型转换。例如,'5' == 5 返回 true,因为字符串 '5' 被转换为数字 5 后相等,而 '5' === 5
返回 false,因为类型不同。
Step 4
Q:: JavaScript 中的闭包(closure)是什么?有什么作用?
A:: 闭包是指有权访问另一个函数作用域中的变量的函数。闭包是 JavaScript 的一个重要概念,可以用来创建私有变量,避免污染全局作用域,和实现函数式编程中的一些高级特性。