String()与toString()区别

大家精通String()与 .toString()都是能够转移为字符串类型,可是String()与
.toString()的还是有分别的

浅谈JS中String()与 .toString()的区别,string.tostring

咱俩精晓String()与 .toString()都以能够转移为字符串类型,可是String()与
.toString()的照旧有分其余

1、.toString()能够将有着的的多少都转移为字符串,不过要去掉null
和 undefined

举例说将false转为字符串类型

<script>
  var str = false.toString();
  console.log(str, typeof str);
</script>

回到的结果为 false,string

拜谒null 和 undefined能否改换为字符串

<blockquote style="margin-right: 0px;" dir="ltr"><pre class="html" name="code"><script>
  var str = null.toString();
  console.log(str, typeof str);
</script>

结果程序报错

<script>
  var str = undefined.toString();
  console.log(str, typeof str);
</script>

次第也报错

.toString() 括号中的能够写二个数字,代表进制,对应进制字符串

二进制:.toString(2);  

八进制:.toString(8);

十进制:.toString(10);

十六进制:.toString(16);

2、String()能够将null和undefined调换为字符串,可是迫于转进制字符串

例如说将null调换为字符串

<script>
  var str = String(null);
  console.log(str, typeof str);
</script>

回来的结果为 null,string

将undefined转变为字符串

<script>
  var str = String(undefined);
  console.log(str, typeof str);
</script>

归来的结果为 undefined,string

如上正是小编为我们带来的浅谈JS中String()与
.toString()的差距全体内容了,希望大家多多帮忙帮客之家~

.toString()的分别,string.tostring 我们领略String()与
.toString()都以足以转变为字符串类型,不过String()与
.toString()的依然有差异…

咱俩驾驭String()与 toString()都以能够转移为字符串类型,不过String()与 toString()的仍旧有分别的

1..toString()能够将全数的的数码都转移为字符串,不过要祛除null 和
undefined
2.String()能够将null和undefined变换为字符串,然则迫于转进制字符串

正文将以从int类型转为String类型的不二等秘书技为例,批注从其余类型转换来String类型的各个措施,以及中间的分别。

1、.toString()能够将具备的的数目都转移为字符串,不过要去掉null
和 undefined

1.(String)强制转变一式

Object obj = new Integer(100);
String str = (String)obj;
System.out.println(str);

【失败】
此种意况能够在语法检验上经过,但是运转后会报错:
java.lang.ClassCastException: java.lang.Integer cannot be cast to
java.lang.String

诸如将false转为字符串类型

2.(String)强制转变二式

String str = (String)100;

图片 1

【失败】
从图中提醒能够发现,IDE直接报错,提示无法从int类型转变为java.lang.String类型。

<script>
  var str = false.toString();
  console.log(str, typeof str);
</script>

3.String特殊转变

String str = "" + 100;
System.out.println(str);

【成功】
仿效的是Java标准。这里援用的是七个无名氏的和讯客户的答疑。原来的书文链接:https://www.zhihu.com/question/57105649/answer/151613096

If only one operand expression is of type String, then string
conversion (§5.1.11) is performed on the other operand to produce a
string at run time.The result of string concatenation is a reference
to a String object that is the concatenation of the two operand
strings. The characters of the left-hand operand precede the
characters of the right-hand operand in the newly created string.
渣翻如下
一旦中间一个操作数表明式是String,那么对另多少个操作数试行字符串转变,以在运维时爆发一个字符串。
字符串连接的结果是对三个String对象的引用,该目的是五个操作数字符串的总是。左边操作数的字符位于新创立的字符串中侧面操作数的字符在此之前。

重回的结果为 false,string

4.Integer.toString(int i)方法

String str = Integer.toString(100);
System.out.println(str);

【成功】
使用的是int的包装类中落到实处的toString方法。

看看null 和 undefined能否改造为字符串

5.String.valueOf(int i)方法

String str = String.valueOf(100);
System.out.println(str);

【成功】
自小编在查看源代码时意识调用的是Integer中的toString方法,也正是4的议程。

public static String valueOf(int i) {
    return Integer.toString(i);
}

只是查看网络的素材中写的都以调用这几个点子

public static String valueOf(Object obj) {
    return (obj == null) ? "null" : obj.toString();
}

想了须臾间,开掘自个儿有一点傻,原本String.valueOf()方法通过重重重载,可以通过传播的参数类型加以分裂,进而调用相应的toString()方法开展类型转变。
运用的上上下下是主导项目对应的包装类,类似的不二法门还大概有众多,举个例子:

public static String valueOf(long l) {
    return Long.toString(l);
}
public static String valueOf(float f) {
    return Float.toString(f);
}
<blockquote style="margin-right: 0px;" dir="ltr"><pre class="html" name="code"><script>
  var str = null.toString();
  console.log(str, typeof str);
</script>

6.总结

上述两种成功的办法中,独有String.valueOf()方法会首先对转移的指标举办判空检查评定,即使为空,则赶回“null”字符串,以致于不会报出空指针极度。
之所以,在遇到字符串调换的时候,首推String.valueOf()方法。

结果程序报错

<script>
  var str = undefined.toString();
  console.log(str, typeof str);
</script>

前后相继也报错

.toString() 括号中的能够写二个数字,代表进制,对应进制字符串

二进制:.toString(2);  

八进制:.toString(8);

十进制:.toString(10);

十六进制:.toString(16);

2、String()能够将null和undefined转变为字符串,不过迫于转进制字符串

诸如将null调换为字符串

<script>
  var str = String(null);
  console.log(str, typeof str);
</script>

回去的结果为 null,string

将undefined转变为字符串

<script>
  var str = String(undefined);
  console.log(str, typeof str);
</script>

回来的结果为 undefined,string

如上正是我为我们带来的浅谈JS中String()与
.toString()的分别全部内容了,希望大家多多支持脚本之家~

你恐怕感兴趣的文章:

  • JavaScript中的toString()和toLocaleString()方法的差别
  • JavaScript中valueOf函数与toString方法深远通晓
  • 认清js中各类数码的品类方法之typeof与0bject.prototype.toString疏解
  • JavaScript中Object.prototype.toString方法的原理
  • Javascript中valueOf与toString分裂浅析
  • javascript中tostring()和valueof()的用法及二者的界别
  • js中toString()和String()分化详解
  • JavaScript中toString()方法的采纳详解
  • javascript中Number对象的toString()方法分析
  • JavaScript中的object调换函数toString()与valueOf()介绍
  • JavaScript中toLocaleString()和toString()的区分实例深入分析

相关文章