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

yanghs · · 477 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

在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

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

总结:

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

相关推荐:

angularjs教程

golang教程

redis入门教程


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:yanghs

查看原文:如何在JavaScript中转换数据类型?

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

477 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传