interview
javascript-frontend-basics
JavaScript 其他值到字符串的转换规则是什么

前端 JavaScript 基础面试题, JavaScript 其他值到字符串的转换规则是什么?

前端 JavaScript 基础面试题, JavaScript 其他值到字符串的转换规则是什么?

QA

Step 1

Q:: JavaScript 其他值到字符串的转换规则是什么?

A:: 在 JavaScript 中,其他值转换为字符串的规则如下: 1. 数字:会被直接转换为相应的字符串,如 123 会变成 '123'2. 布尔值:true 会变成 'true',false 会变成 'false'3. null:会变成 'null'4. undefined:会变成 'undefined'5. 对象:会调用对象的 toString() 方法,如果该方法不存在或不返回一个原始值,则调用 valueOf() 方法。通常情况下,Object 对象的 toString() 方法返回 '[object Object]'6. 数组:会调用 join() 方法,以逗号分隔各项元素,并将其组合成一个字符串。

Step 2

Q:: 如何将一个对象转换成 JSON 字符串?

A:: 可以使用 JavaScript 内置的 JSON.stringify() 方法来将一个对象转换成 JSON 字符串。例如: const obj = { name: 'John', age: 30 }; const jsonString = JSON.stringify(obj); console.log(jsonString); // 输出: '{"name":"John","age":30}'

Step 3

Q:: 如何检查一个变量是否是字符串?

A:: 可以使用 typeof 运算符来检查一个变量是否是字符串。例如: const str = 'Hello'; console.log(typeof str === 'string'); // 输出: true 此外,还可以使用 Object.prototype.toString.call 方法: console.log(Object.prototype.toString.call(str) === '[object String]'); // 输出: true

Step 4

Q:: 如何将一个字符串转换为数字?

A:: 可以使用 Number() 函数或 parseInt(), parseFloat() 函数将一个字符串转换为数字。例如: const str = '123'; const num1 = Number(str); const num2 = parseInt(str); const num3 = parseFloat(str); console.log(num1); // 输出: 123 console.log(num2); // 输出: 123 console.log(num3); // 输出: 123

Step 5

Q:: 如何将一个字符串转换为布尔值?

A:: 可以通过检查字符串的值来手动转换。例如: const str = 'true'; const bool = (str === 'true'); console.log(bool); // 输出: true 需要注意的是,只有特定字符串如 'true' 或 'false' 能被直接转换,其他任何非空字符串都被视为 true。

用途

这些面试题的目的是评估候选人对 JavaScript 类型转换规则的理解。这在实际生产环境中非常重要,因为在处理用户输入、数据传输、API 响应等场景时,常常需要进行不同类型的数据转换。正确理解和使用这些规则可以避免很多潜在的错误和 bug,确保代码的健壮性和可靠性。\n

相关问题

🦆
什么是隐式类型转换?

隐式类型转换是指 JavaScript 在运算过程中自动将不同类型的值转换为相同类型,以便进行比较或计算。例如,'5' + 3 会产生 '53',因为字符串和数字的拼接结果是字符串。

🦆
如何避免隐式类型转换?

避免隐式类型转换的常见方法包括: 1. 使用严格相等运算符 === 和 !== 而不是 == 和 !=,因为前者不会进行类型转换。 2. 在进行运算之前,明确地将变量转换为所需的类型。例如,使用 Number()、String()、Boolean() 等函数。

🦆
解释 JavaScript 中的 NaN

NaN 代表 'Not-a-Number',是一个特殊的数值类型,表示一个非数字值的运算结果。例如,0/0 或者 Math.sqrt(-1) 都会返回 NaN。NaN 有一个特别的特性,就是它不等于任何值,包括它自己。可以使用 isNaN() 函数来检查一个值是否为 NaN。

🦆
什么是模板字符串?

模板字符串是 ES6 引入的一种新的字符串字面量,使用反引号 (``) 包围。它们可以包含嵌入的表达式,通过 ${} 语法来实现。例如: const name = 'John'; const greeting = Hello, ${name}!``; console.log(greeting); // 输出: 'Hello, John!'