前端 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。