如何转换JavaScript中的数据类型

介绍

在JavaScript中, 数据类型用于对一种特定类型的数据进行分类,确定可以分配给类型的值,以及可以对其执行的操作。

尽管由于类型强制 ,JavaScript会自动转换许多值,通常最佳做法是在类型之间手动转换值,以达到预期的结果。

本教程将引导您转换JavaScript的原始数据类型,包括数字,字符串和布尔值。

隐性转换

作为一种编程语言,JavaScript非常容忍意想不到的价值。 因此,JavaScript将尝试转换意外的值,而不是直接拒绝它们。 这种隐式转换称为类型强制。

一些方法将自动转换值以便使用它们。 alert()方法以字符串为参数,但会自动将其他类型转换为字符串。 所以,我们可以传递一个数值给方法:

alert(8.5);

如果我们运行上面的行,浏览器将返回一个显示8.5值的弹出式警报对话框,除非它将转换为字符串才能执行此操作。

当使用可以用数学运算符对数字求值的字符串时,您会发现JavaScript可以通过将字符串隐式转换为数字来处理这些值,如下面的示例所示。

// Subtraction
"15" - "10";
Output5
// Modulo
"15" % "10";
Output5

但是,并不是每个操作员都会按预期工作。 +运算符是显着的问题,因为它可以表示加法或字符串连接

// When working with strings, + stands for concatenation
"2" + "3";
Output"23"

由于+运算符是多用途的,尽管数字字符串为23的字符串值连接到字符串值23而不是一起添加为数字5

由于歧义可能存在,有时会导致意想不到的结果,通常最好在代码中尽可能明确地转换数据类型。 这将有助于管理用户的输入和处理错误。

将值转换为字符串

可以通过调用String()n.toString()将值显式转换为字符串。

使用String()函数,通过将值true传递给String()的参数,我们将一个布尔值转换为一个字符串。

String(true);

当我们这样做时,将返回字符串文字"true"

Output"true"

或者,我们可以将一个数字传递给函数。

String(49);

该数字的字符串字面值将被返回。

Output"49"

我们使用String()函数和一个变量。 我们将为变量odyssey分配一个数值,然后使用typeof运算符来检查类型。

let odyssey = 2001;
console.log(typeof odyssey);
Outputnumber

在这一点上,变量odyssey被分配了2001的数值,我们已经确认是一个数字。

现在,让我们重新分配odyssey到其字符串等效项,然后使用typeof来确认我们已经将变量的值从一个数字成功转换为一个字符串。

odyssey = String(odyssey);  // "2001"
console.log(typeof odyssey);
Outputstring

在上面的例子中,我们已经确认odyssey被重新分配为与数据类型转换后的字符串值相当。

我们可以以类似的方式使用n.toString() 我们可以用变量替换n

let blows = 400;
blows.toString();

变量将作为字符串返回。

Output"400"

或者,我们可以在括号内放一个值,而不是使用n.toString()的变量:

(1776).toString();          // returns "1776"
(false).toString();         // returns "false"
(100 + 200).toString();     // returns "300"

通过使用String()n.toString()我们能够将布尔值或数字数据类型的值显式转换为字符串值,以确保我们的代码按照我们预期的方式运行。

将值转换为数字

将值转换为数字数据类型时,我们将使用Number()方法。 首先,我们将数字文本的字符串转换为数字,但是我们也可以转换布尔值。

我们可以将一个数字的字符串传递给Number()方法:

Number("1984");

字符串将被转换为一个数字,不再包含在引号内。

Output1984

我们也可以为变量分配一个字符串,然后将其转换。

let dalmatians = "101";
Number(dalmatians);
Output101

字符串文字"101"通过其变量转换为数字101

白色空格或空字符串的字符串将转换为0

Number(" ");    // returns 0
Number("");     // returns 0

请注意,非数字字符串将转换为代替N N的 NaN 这包括用空格分隔的数字。

Number("twelve");   // returns NaN
Number("20,000");   // returns NaN
Number("2 3");      // returns NaN
Number("11-11-11"); // returns NaN

对于布尔数据类型, false将计算为0true将计算为1

Number(false);      // returns 0
Number(true);       // returns 1

Number()方法将非数字数据类型转换为数字。

将值转换为布尔值

要将数字或字符串转换为布尔值,使用Boolean()方法。 例如,这可以用于确定用户是否将数据输入到文本字段中。

解释为空的任何值,如数字0 ,空字符串或未定义的值或NaNnull都将转换为false

Boolean(0);         // returns false
Boolean("");        // returns false
Boolean(undefined); // returns false
Boolean(NaN);       // returns false
Boolean(null);      // returns false

其他值将被转换为true ,包括由空格组成的字符串文字。

Boolean(2000);      // returns true
Boolean(" ");       // returns true
Boolean("Maniacs"); // returns true

请注意, "0"作为字符串文字将转换为true因为它是非空字符串值:

Boolean("0");   // returns true

将数字和字符串转换为布尔值可以使我们以二进制方式评估数据,并可用于我们程序中的控制流程。

结论

本教程介绍了JavaScript如何处理其原始数据类型的转换。 虽然由于类型强制,但是在许多情况下,数据类型将被隐式转换,明确转换数据类型是一个很好的习惯,以确保程序正常运行。

要了解有关JavaScript数据类型的更多信息,请阅读“ 了解 JavaScript中的数据类型”。要查看数据类型转换在其他编程语言中的完成情况,请查看“ 如何在Python 3中转换数据类型 ”。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏