美文网首页
如何在JavaScript中转换数据类型?

如何在JavaScript中转换数据类型?

作者: phpCN中文网 | 来源:发表于2019-08-16 09:42 被阅读0次

    在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

    相关文章

      网友评论

          本文标题:如何在JavaScript中转换数据类型?

          本文链接:https://www.haomeiwen.com/subject/idzxsctx.html