toString()、String(obj)和valueOf()

toString()

每个字符串都有一个toString()方法,该方法返回字符串的一个副本(当前函数源代码的字符串),但是null和undefined值没有这个方法。

toString()一般不用传参,也可以传入基数(进制数)为参,默认十进制。

var num = 10;
console.log(num.toString());    // "10"
console.log(num.toString(2));   // "1010" 
console.log(num.toString(8));   // "12" 
console.log(num.toString(10));  // "10" 
console.log(num.toString(16));  // "a"

 

String(obj)

String(obj)转型函数是JavaScript的全局函数,能够将任何类型的值转换为字符型,包括null和undefined。

转换规则:

  1. 如果该值有toString()方法,调用该方法(没有参数)并返回相应的结果。

  2. 如果是null,返回null。

  3. 如果是undefined,返回undefined。

var value1 = 10; 
var value2 = true; 
var value3 = null; 
var value4; 
console.log(String(value1));     // "10" 
console.log(String(value2));     // "true" 
console.log(String(value3));     // "null" 
console.log(String(value4));     // "undefined" 

 

toString()和String(obj)的区别

  1. toString()是每个字符串都有的方法,String(obj)是JavaScript的一个全局函数。

  2. null和undefined不具备toString()方法,String(obj)函数可对null和undefined进行处理。

  3. 调用String(obj)前会先调用toString()。

 

valueOf()

valueOf()是对象的一个方法,返回指定对象的原始值。但是JavaScript的许多内置对象都重写了该函数,以实现更适合自身的功能需要。因此,不同类型对象的valueOf()方法的返回值和返回值类型均可能不同。

总的来说,该方法就是返回对象的字符串、数值或布尔值等表示。

 

toString()和valueOf()的区别

  1. toString()是每个字符串都拥有的方法,而valueOf()是对象的方法。

  2. obj.toString()返回的是对象的字符串表示,而obj.valueOf()返回的是对象本身。

    var obj = new Object();
    obj = {test:'123'};
    console.log(obj.toString());    // [Object Object]
    console.log(obj.valueOf());     // {test:'123'}

     

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`String.valueOf()`和`toString()`都是用于将对象转换为字符串的方法,但它们之间有一些区别。 1. `String.valueOf()`方法:`String.valueOf()`是一个静态方法,它接受一个参数并返回与参数对应的字符串表示。这个方法可以处理各种类型的参数,包括基本数据类型和对象。如果参数是一个对象,它会调用对象的`toString()`方法来获取字符串表示。如果参数是`null`,它会返回字符串"null"。 以下是使用`String.valueOf()`的示例: ```java int num = 10; String str1 = String.valueOf(num); // "10" Double d = 3.14; String str2 = String.valueOf(d); // "3.14" Object obj = new Object(); String str3 = String.valueOf(obj); // 调用objtoString()方法来获取字符串表示 String str4 = String.valueOf(null); // "null" ``` 2. `toString()`方法:`toString()`是一个定义在`Object`类中的方法,所有的Java对象都继承了这个方法。默认情况下,`toString()`返回一个包含对象类名和哈希码的字符串表示。但是,你可以根据需要在自定义类中重写这个方法,以便返回更有意义的字符串表示。 以下是重写`toString()`方法的示例: ```java public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return "Person{name='" + name + "', age=" + age + "}"; } } public class Main { public static void main(String[] args) { Person person = new Person("John", 25); String str = person.toString(); // "Person{name='John', age=25}" } } ``` 在上面的示例中,`Person`类重写了`toString()`方法,以返回一个包含姓名和年龄的字符串表示。 总结来说,`String.valueOf()`是一个静态方法,用于将任何类型的参数转换为字符串表示,而`toString()`是一个在`Object`类中定义的方法,用于将对象转换为字符串。如果你需要获取一个对象的字符串表示,通常最好使用`toString()`方法,在自定义类中重写这个方法以提供更有意义的字符串表示。如果你只是想将其他类型转换为字符串,可以使用`String.valueOf()`方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值