在JavaScript中,和其他编程语言一样,一种数据类型可以转换为另一种数据类型。如果我们必须将一个变量转换为另一个变量,那么我们就可以使用类型转换,我们可以隐式或显式地进行转换。我们将在一些例子的帮助下详细讨论这两种类型的转换。
如何在JavaScript中隐式地转换数据
在隐式类型转换中,JavaScript本能地将一个变量的数据类型改为另一种数据类型,在这种情况下,不需要强行将一个变量转换为任何其他数据类型。我们将通过一些例子来详细讨论数据类型的隐式转换方式。
数字数据类型到字符串数据类型的隐式转换
当我们将一个数字与一个字符串相加时,JavaScript在连接之前隐式地将数字转换为字符串。
let Add;
Add = '50' + 50;
console.log("Number Added with String : " , Add);
我们将一个字符串数据类型的值'50'与一个数字值'50'相加,这里的'+'运算符充当连接运算符。

因此,'+'运算符将字符串和数字连接起来,结果,我们将得到'5050'而不是'100'。这表明JavaScript隐式地将数字转换为字符串。

字符串数据类型向数字数据类型的隐式转换
在JavaScript中,如果我们在两个字符串之间使用减号、除号或乘号,那么JavaScript会自动将这些字符串转换为数字数据类型。
let sub;
sub = '50' - '50';
console.log("Strings considered as Numbers '-' operation : " , sub);
let div;
div = '50' / '50';
console.log("Strings considered as Numbers '/' operation : " , div);
let mul;
mul = '50' * '50';
console.log("Strings considered as Numbers '*' operation : " , mul);
在这个例子中,我们挑选了两个数字字符串,并对它们进行了减法、除法和乘法操作。

在输出中,我们观察到,当我们在两个数字字符串之间使用"/"、"-"或 "*"操作时,JavaScript将它们视为数字类型的值并给出相应的输出。

现在我们考虑一些非数字字符串并对它们进行同样的操作。
let sub;
sub = 'Daniel' - 'Micheal';
console.log("Strings considered as Numbers '-' operation : " , sub);
let div;
div = 'Daniel' / 'Micheal';
console.log("Strings considered as Numbers '/' operation : " , div);
let mul;
mul = 'Daniel' * 'Micheal';
console.log("Strings considered as Numbers '*' operation : " , mul);
在这里,我们试图用两个字母字符串 "Daniel "和 "Micheal "来做减法、乘法和除法运算。

结果,JavaScript回应说 "NaN"(这意味着它不是一个数值)。

布尔数据类型与数字数据类型的隐式转换
JavaScript认为'0'是假的,其他值都是真的。
let BolToNum;
BolToNum = 50 + true;
console.log("Addition of numeric value and Boolean value True : " , BolToNum);
BolToNum = 50 + false;
console.log("Addition of numeric value and Boolean value False : " , BolToNum);
BolToNum = '50' - true;
console.log("Subtraction of Non zero value and Boolean value True : " , BolToNum);
BolToNum = '50' - false;
console.log("Subtraction of Non zero value and Boolean value False : " , BolToNum);
如果我们将非零值与 "true "相加,那么布尔值 "true "的结果将永远是 "1"。

从输出结果可以看出,当布尔值 "true "被添加或减去时,JavaScript从数值中添加或减去了 "1",而当布尔值为 "false "时,JavaScript从数值中添加或减去了 "0"。

null "的值等于0,当我们使用 "undefined "和一个数字或布尔值时,输出的结果将是 "NaN"。
如何在JavaScript中明确地转换数据
在JavaScript中,"显式 "一词定义了从一种数据类型转换到另一种数据类型的手动方式,为此,JavaScript中有许多内置函数。使用这些函数,我们可以根据需要将一种数据类型转换为任何其他数据类型。我们将通过几个例子来详细讨论转换数据类型的显式方法。
如何明确地将数字字符串类型转换为数字数据类型
我们可以使用内置函数 "Number() "将字符串转换为数字数据类型。
let StrToNum;
StrToNum = Number('50e-5');
console.log("Converting numeric string to Number type Explicitly : " , StrToNum);
console.log("Converting numeric string to Number type Explicitly : ", StrToNum);
在这个例子中,我们使用 "Number() "方法将数字字符串转换为数字数据类型,如果我们没有使用 "Number "方法,那么默认情况下JavaScript会显示一个字符串值。上述代码的输出将是一个数字值。

如何明确地将数字字符串类型转换为布尔数据类型
我们将利用同样的 "Number "方法来实现布尔值的显式转换,将布尔类型转换为数字类型。
let BolToNum;
BolToNum = 50 + Number(true);
console.log("Converting numeric string to Number type Explicitly : " , BolToNum);
BolToNum = 50 + Number(false);
console.log("Converting numeric string to Number type Explicitly : " , BolToNum);
在这个例子中,一个数字值与一个布尔值相加,结果,我们想要一个数字值。所以我们利用一个内置的方法 "Number "与布尔值,将布尔值转换为数字值。

Number "方法将把布尔值 "true "和 "false "分别转换为数字值 "1 "和 "0"。

输出验证了 "Number "方法明确地将布尔值 "true "转换为数值1,将布尔值 "false "转换为数值0,因此我们得到 "51"。当50与布尔值 "true "相加,得到 "50"。当布尔值 "false "与数字值 "50 "相加时,得到 "50"。
JavaScript提供了更多的函数,比如 "parseInt()"、"parseFloat() "和 "Math.floor() "来将字符串转换成数字数据类型,我们可以根据我们的要求使用这些方法中的任何一个。
let StrToNum;
StrToNum = parseInt('50.50');
console.log("String converted to Number : " , StrToNum);
StrToNum = parseFloat('50.50');
console.log("String converted to Float : " , StrToNum);
StrToNum = Math.floor('50.50');
console.log("String converted to Number : " , StrToNum);
- "parseInt "将把字符串转换为整数。
- "parseFloat "将把字符串转换为浮动值。
- "Math.floor "方法将把字符串值转换为整数。

上面给出的例子的输出结果是。

如何明确地将数字数据类型转换为字符串数据类型
JavaScript提供了两个方法 "String() "和 "toString() "来将数字值转换成字符串值。
let NumToStr = 50;
String(NumToStr);
console.log("Conversion using String method : " , NumToStr);
(50).toString();
console.log("Conversion using toString method : " , NumToStr);
"String() "和 "toString() "方法执行完全相同的功能。上面给出的例子的输出将是。

如何明确地将一个布尔类型转换为字符串数据类型
我们可以使用 "string() "方法或 "toString() "方法将一个布尔值转换成一个字符串值。
let BolToStr;
BolToStr = String(true);
console.log("Converting Bool to String : " , BolToStr);
BolToStr = String(false);
console.log("Converting Bool to String : " , BolToStr);
这段代码的输出将是。

如何明确地将一个数字/字符串类型转换为布尔数据类型
我们可以在 "Boolean() "方法的帮助下,将任何字符串或任何数值转换成布尔数据类型。
let Bol;
Bol = Boolean('');
console.log("empty string : " , Bol);
Bol = Boolean(0);
console.log("convert 0 boolean : " , Bol);
Bol = Boolean(undefined);
console.log("convert Undefined to boolean : " , Bol);
Bol = Boolean(null);
console.log("convert null to boolean : " , Bol);
Bol = Boolean(NaN);
console.log("convert NaN to boolean : " , Bol);
如果我们将一个数字值 "0 "转换为布尔类型,那么结果将是0,或者如果我们传递空字符串、未定义、空或NaN,那么 "布尔 "方法将返回0。
在所有这些情况下,"布尔() "方法将返回错误。

除了上面的例子中的值之外,所有的值都将返回 "真"。
Bol = Boolean(50);
console.log("convert a numeric value to boolean : " , Bol);
Bol = Boolean('New York City');
console.log("convert a String type value to boolean : " , Bol);
我们在'Boolean()'方法中放入一个数字值'50'和一个字符串'纽约市',它将返回true。

例如,当我们把一个非零的数字值,或一个字符串类型的值,那么 "布尔() "方法将返回真。

总结
在任何编程语言中,将一种数据类型转换为任何其他数据类型是最常被问到的问题。在本教程中,我们已经学习了JavaScript如何隐式或显式地转换数据类型。在这篇文章中,我们讨论了如何将字符串类型转换为数字数据类型,或将数字转换为字符串,或将日期类型转换为数字类型,或反过来将数字转换为日期数据类型,或将布尔类型转换为数字类型,反过来我们可以将数字类型转换为布尔类型。