JavaScript toString() vs String()

JavaScript 中有两种方式把一个值转为字符串

  • toString() 方法, 除了 null 与 undefined 不支持该方法, 其他的数据类型均支持, 对于整数 toString() 还支持转为不同进制的字符串表示
let b = false,
    s = 'xxx',
    n = 16;

console.log("false toString():", b.toString());
console.log("'xxx' toString():", s.toString());
console.log("16 toString():", n.toString());
// 十六进制
console.log("16 toString(16):", n.toString(16));

打印

false toString(): false
'xxx' toString(): xxx
16 toString(): 16
16 toString(16): 10

  • String() 转型函数, 支持所有数据类型

String() 的转换规则:

  1. 如果待转换的值有 toString() 方法, 则直接调用, 这里无法指定 toString() 的参数, 故整数直接转为 10 进制的字符串形式, 无法指定为其他的进制
  2. 如果是 null, 返回 “null”
  3. 如果是 undefined, 返回 “undefined”
let b = false,
    s = 'xxx',
    n = 16;
let x = {
    
     toString: () => 'xxx' };

console.log("String(false):", String(b));
console.log("String('xxx'):", String(s));
console.log("String(16):", String(16));
console.log("String({ toString: () => 'xxx' }):", String(x));
console.log("String(null):", String(null));
console.log("String(undefined):", String(undefined));

打印

String(false): false
String('xxx'): xxx
String(16): 16
String({ toString: () => 'xxx' }): xxx
String(null): null
String(undefined): undefined

猜你喜欢

转载自blog.csdn.net/jiang_huixin/article/details/125933863