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(value)例:
Input:
var v = 1555;
var s = String(v);
Output:
now s contains "1555".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原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。