JavaScript中的数据类型转换

在JavaScript中,数据类型用于对一种特定类型的数据进行分类,确定可以分配给类型的值以及可以对其执行的操作。虽然由于类型强制,JavaScript会自动转换许多值,但为了达到预期的结果,通常最好在类型之间手动转换值。那么如何在JavaScript中转换数据类型?下面本篇文章就来给大家介绍一下,希望对大家有所帮助。

JavaScript 变量可以转换为新变量或其他数据类型,分为两种情况:

● 隐性转换:通过 JavaScript 自身自动转换

● 显性转换:通过使用 JavaScript 函数进行转换

隐性转换

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

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

alert(8.5);

如果我们运行上面的代码,浏览器将弹出一个警报对话框,显示8.5的值,它已经被转换为一个字符串。

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

例1:

"15" - "10";

输出:

5

例2:

"15" / "10";

输出

1.5

例3:

"15" % "10";

输出:

5

但是,并非每个运算符都能按预期工作。该+运算符尤其是有问题的,因为它即可以表示加法,也可以表示字符串连接。

当使用字符串时,+运算符表示字符串连接:

"2" + "3";

输出:

"23"

由于+运算符是多用途的,字符串值2和3,尽管是数字串,被连接到的字符串值23,而不是加在一起成为数5。

因为可能存在歧义,有时会导致意外的结果,所以最好在代码中尽可能地显性转换数据类型。这将有助于管理来自用户的输入和处理错误。

显性转换

1、将值转换为字符串

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

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

String(true);

输出:

"true"

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

String(50);

输出:

"50"

我们来具体看看,先分配一个数值给变量a,然后使用typeof运算符来检查类型。

var a=50
console.log("值:"+a+",类型为"+typeof a);

输出:

值:50,类型为number

可以看出此时变量a被赋予数值50,是一个数组。

现在,我们来使用String()函数,将值转换为字符串,然后使用typeof运算符来检查类型。

a=String(a);
console.log("值:"+a+",类型为"+typeof a);

输出:

值:50,类型为string

在上面的示例中,我们已经确认在数据类型转换之后,变量a被重新分配为等效的字符串值。

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

let blows = 400;
blows.toString();

变量blows将作为字符串返回。

"400"

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

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

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

2、将值转换为数字

我们可以使用number()方法,将值转换为数字数据类型。首先,我们将把数字文本字符串转换为数字,也可以将布尔值转换对于的数字0或1。

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

Number("50");

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

50

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

Number(" ");    // 返回 0
Number("");     // 返回 0

注意,非数字字符串将转换为NaN, NaN表示非数字。这包括用空格分隔的数字。

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

对于布尔数据类型,false的值为0,true的值为1。

Number(false);      // 返回 0
Number(true);       // 返回 1

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

3、将值转换为布尔值

我们可以使用Boolean()方法,将数字或字符串值转换为布尔值。这是一种非常有用的方法,例如:可以用于确定用户是否将数据输入文本字段。

任何被解释为空的值,如数字0、空字符串或未定义的值、NaN或null,都被转换为false。

Boolean(0);         // 返回 false
Boolean("");        // 返回 false
Boolean(undefined); // 返回 false
Boolean(NaN);       // 返回 false
Boolean(null);      // 返回 false

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

Boolean(2000);      // 返回 true
Boolean(" ");       // 返回 true
Boolean("Maniacs"); // 返回 true

注意:“0”作为字符串文字将转换为 true,因为它是一个非空字符串值:

Boolean("0");   // 返回 true

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

总结:

虽然由于类型强制,数据类型将在许多情况下隐式转换,但显式转换数据类型以确保程序按预期运行是一个好习惯。


本文参考地址:https://www.html.cn/qa/javascript/10519.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值