Javascript类型转换

JavaScript是松散类型的语言,大多数时候运算符会自动将值转换为正确的类型,但也有一些情况需要显式进行类型转换

虽然JavaScript提供了多种方法将数据从一种类型转换为另一种类型,但有两种最常见的数据转换:

将值转换为字符串

将值转换为数字

隐式转换

JavaScript中有各种运算符和函数,它们自动将值转换为正确的类型,如JavaScript中的alert()函数接受任何值并将其转换为字符串。 但是各种运算符会产生类似“+”运算符的问题。

Input: "2" + "3"
Output: "23"
//这里+运算符代表这种情况下的字符串连接。
//但是“3” - “1”通过使用隐式转换给出输出2。

此代码显示Javascript中的隐式类型转换:

document.write('("3" - "1") = ' + ("3" - "1") + "<br>"); 
document.write('("3" - 1) = ' + ("3" - 1) + "<br>"); 
document.write('("3" * "2") = ' + ("3" * "2") + "<br>"); 
document.write('("3" % "2") = ' + ("3" % "2") + "<br>"); 
document.write('("3" + null) = ' + ("3" + null) + "<br>"); 
  
  
("3" - "1") = 2
("3" - 1) = 2
("3" * "2") = 6
("3" % "2") = 1
("3" + null) = 3null

将值转换为字符串:

可以在JavaScript中使用String()或toString()函数将值转换为字符串。

String语法

String(value)

例:

Input:
var v = 1555;
var s = String(v);
Output:
now s contains "1555".

toString语法

variableName.toString(base)

例:

Input:
var v = 1555;
var s = v.toString();
Output:
now s contains "1555".

下面的代码将数字转换为字符串,布尔值转换为字符串,日期转换为字符串。

<script> 
    
  // Number and date has been assigned 
  // to variable v and d respectively 
  var v = 123; 
  var d = new Date('1995-12-17T03:24:00'); 
    
  // Conversion of number to string 
  document.write(" String(v) = " + String(v) + "<br>");  
    
  // Conversion of number to string 
  document.write(" String(v + 11) = " + String(v + 11) + "<br>"); 
  document.write(" String( 10 + 10) = " + String(10 + 10) + "<br>");  
    
  // Conversion of boolean value to string 
  document.write(" String(false) = " + String(false) + "<br>");  
    
  // Conversion of Date to string 
  document.write(" String(d) = " + String(d) + "<br>");  
    
</script>

输出:

String(v) = 123
String(v + 11) = 134
String( 10 + 10) = 20
String(false) = false
String(d) = Sun Dec 17 1995 03:24:00 GMT+0530 (India Standard Time)

将值转换为数字

我们可以在JavaScript中使用Number()函数将值转换为Number。 它可以将任何数字文本和布尔值转换为数字。 如果是非数字字符串,它会将其转换为NaN(非数字)。
句法:

语法

Number(valueToConvert)

例:

Input:
var s = "144";
var n = Number(s);
Output:
now n contain 144(Number).

下面的代码将数字文本,日期和布尔值转换为数字。

<script> 
    
  // Number and date has been assigned 
  // to variable v and d respectively 
  var v = "144"; 
  var d = new Date('1995-12-17T03:24:00'); 
    
  // Conversion of string to number 
  document.write(" Number(v) = " + Number(v) + "<br>");  
    
  //Conversion of boolean value to number 
  document.write(" Number(false) = " + Number(false) + "<br>");  
  document.write(" Number(true) = " + Number(true) + "<br>"); 
    
  // Conversion of date to number 
  document.write(" Number(d) = " + Number(d) + "<br>"); 
    
</script>

输出以下结果:

Number(v) = 144
Number(false) = 0
Number(true) = 1
Number(d) = 819150840000

如果字符串是非数字,则将其转换为NaN,白色空格或空字符串将转换为0。

   // Empty string assigned 
    var v = ""; 
      
    // White space assigned 
    var d = " "; 
      
    // Non-number string assigned 
    var s = "GeeksforGeeks"; 
      
    // Printing converted values of number 
    document.write(" Number(v) = " + Number(v) + "<br>"); 
    document.write(" Number(d) = " + Number(d) + "<br>"); 
    document.write(" Number(s) = " + Number(s) + "<br>");

输出以下结果:

Number(v) = 0
Number(d) = 0
Number(s) = NaN

 

(0)
上一篇 2019年8月30日 下午2:33
下一篇 2019年8月30日 下午4:14

相关推荐

发表评论

登录后才能评论