interview
javascript-frontend-basics
JavaScript 有哪些数据类型它们的区别是什么

前端 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 的一个重要概念,可以用来创建私有变量,避免污染全局作用域,和实现函数式编程中的一些高级特性。

用途

这些问题涵盖了 JavaScript 的基础知识,是前端开发中非常重要的一部分。了解数据类型、变量类型判断和比较运算符的区别,可以帮助开发者编写更加健壮和高效的代码。闭包是函数式编程的重要概念,掌握闭包可以帮助开发者在复杂的代码中进行状态管理和数据封装。\n

相关问题

🦆
什么是原型链?

原型链是 JavaScript 实现继承的一种机制。每个对象都有一个原型对象,通过 proto 属性指向原型对象,原型对象又有自己的原型,直到 null 结束。通过原型链,可以实现对象之间的属性和方法共享。

🦆
JavaScript 中的事件循环Event Loop是什么?

事件循环是 JavaScript 处理异步操作的一种机制。JavaScript 是单线程的,通过事件循环来处理异步任务,包括回调函数、Promise 和 async/await。事件循环不断地从任务队列中取出任务执行,保证程序的响应性。

🦆
什么是 Promise?如何使用 Promise?

Promise 是一种用于处理异步操作的对象。Promise 有三种状态:pending(进行中)、fulfilled(已成功)和 rejected(已失败)。可以通过 then 方法处理成功的结果,通过 catch 方法处理失败的结果。Promise.all 和 Promise.race 可以用来处理多个 Promise。

🦆
什么是 asyncawait?

async/await 是 ES2017 引入的用于处理异步操作的语法糖。async 函数返回一个 Promise 对象,await 用于等待 Promise 对象的结果,代码看起来更加同步化,提高了可读性。