介绍
数据类型用于对编程语言中的一种特定类型的数据进行分类。 例如,一个数字和一串字符是不同类型的数据,JavaScript将被不同的对待。
这很重要,因为您使用的特定数据类型将决定您可以分配哪些值以及可以对其进行操作。 这就是说,为了能够用JavaScript中的变量进行操作,了解任何给定变量的数据类型很重要。
在本教程中,我们将介绍数据类型如何在JavaScript中工作,以及语言本机的重要数据类型。 这不是对数据类型的详尽调查,而是帮助您熟悉JavaScript中可用的选项。
动态打字
JavaScript具有动态数据类型,这意味着类型检查在运行时完成,而不是编译时。 Python的数据类型也是动态类型的。
使用动态类型语言,可以使用相同名称的变量来保存不同的数据类型。
例如,通过var
关键字定义为变量的变量t
可以分配为保存不同的数据类型,或者可以初始化但未定义:
var t = 16; // t is a number
var t = "Teresa"; // t is a string
var t = true; // t is a Boolean
var t; // t is undefined
以上变量t
可以设置为JavaScript中可用的任何数据类型; 它们在使用之前不需要使用数据类型显式声明。
数字
JavaScript只有一个数字类型,对于整数和浮点数没有单独的名称。 因此,数字可以用或不带小数点的JavaScript编写:
var num1 = 93;
var num2 = 93.00;
在上述两种情况下,无论数字是否具有小数点,数据类型都是数字,并且相同。
可以使用JavaScript中的科学指数符号来缩写非常大或小的数字,如以下示例所示:
var num3 = 987e8; // 98700000000
var num4 = 987e-8; // 0.00000987
JavaScript中的数字被认为是最多15位的数字。 这意味着数字将在达到第16位数后舍入:
var num5 = 999999999999999; // remains as 999999999999999
var num6 = 9999999999999999; // rounded up to 10000000000000000
除了表示数字,JavaScript编号类型还有三个符号值可用:
-
Infinity
- 表示接近无穷大的正数的数值 -
-Infinity
- 表示接近无穷大的负数的数值 -
NaN
- 表示非数字的数字值,代表n数字
如果您在JavaScript中可用的最大数量之外计算数字,则将返回Infinity
或-Infinity。 对于未定义的值也将发生这些值,除以零:
var num7 = 5 / 0; // will return Infinity
var num8 = -5 / 0; // will return -Infinity
在技术术语中,当数字超过数字1.797693134862315E+308
时,将显示Infinity
,这表示JavaScript的上限。
同样,当数字超出-1.797693134862316E+308
的下限时,将显示-1.797693134862316E+308
。
数字Infinity
也可以在循环中使用:
while (num9 != Infinity) {
// Code here will execute through num9 = Infinity
}
对于不合法的数字,将显示NaN
。 如果您尝试对数字和非数字值执行数学运算,将返回NaN
。 在下面的例子中是这样的:
var x = 20 / "Shark"; // x will be NaN
由于数字20
不能被字符串"Shark"
划分,因为它不能被评估为一个数字,所以x
变量的返回值是NaN
。
但是,如果可以将字符串评估为数值,则可以在JavaScript中执行数学表达式:
var y = 20 / "5"; // y will be 4
在上面的例子中,由于字符串"5"
可以在JavaScript中被评估为数值,所以它被视为是这样的,并且将与数学运算符一起用于划分/
。
当将值NaN
分配给操作中使用的变量时,即使另一个操作数是法定数字,也将导致NaN
的值:
var a = NaN;
var b = 37;
var c = a + b; // c will be NaN
JavaScript中只有一种数字数据类型。 使用数字时,您输入的任何数字将被解释为数字的数据类型; 您不需要声明您输入的是什么类型的数据类型,因为JavaScript是动态类型的。
字符串
字符串是一个或多个字符(字母,数字,符号)的序列。 字符串用于表示文本数据。
在JavaScript中,字符串存在于单引号'
或双引号"
,因此要创建一个字符串,请使用引号括起一个字符序列:
var singleQuotes = 'This is a string in single quotes.';
var doubleQuotes = "This is a string in double quotes.";
您可以选择使用单引号或双引号,但无论您选择哪一个,您应该在程序中保持一致。
程序“Hello,World!”演示了如何在计算机编程中使用字符串,作为组成“Hello,World!”的字符Hello, World!
在alert()
下面是一个字符串。
<!DOCTYPE HTML>
<html>
<head>
<script>
function helloFunction() {
alert("Hello, World!");
}
</script>
</head>
<body>
<p><button onclick="helloFunction()">Click me</button></p>
</body>
</html>
当我们运行代码并点击Click me
按钮时,我们将收到一个包含以下输出的弹出窗口:
OutputHello, World!
与其他数据类型一样,我们可以在变量中存储字符串:
var hw = "Hello, World!";
并通过调用该变量在alert()
中显示该字符串:
...
<script>
var hw = "Hello, World!";
function helloFunction() {
alert(hw);
}
</script>
...
OutputHello, World!
我们可以在我们的程序中对字符串执行许多操作,以便操纵它们来实现我们正在寻找的结果。 字符串对于向用户传达信息以及用户将信息传回给程序是重要的。
布尔
布尔数据类型可以是两个值之一,无论是true还是false 。 布尔值被用于表示与数学逻辑分支相关联的真值,它为计算机科学中的算法提供信息。
每当你看到数据类型Boolean,它将以大写B开头,因为它被命名为数学家George Boole。
数学中的许多操作都给我们一个评估为真或假的答案:
- 比...更棒
- 500> 100
true
- 1> 5
false
- 500> 100
- 少于
- 200 <400
true
- 4 <2
false
- 200 <400
- 等于
- 5 = 5
true
- 500 = 400
false
- 5 = 5
像其他数据类型一样,我们可以在一个变量中存储一个布尔值:
var myBool = 5 > 8; // false
由于5不大于8,变量myBool
的值为false
。
当您使用JavaScript编写更多程序时,您将更加熟悉布尔工作方式以及如何评估为true或false的不同功能和操作可以改变程序的过程。
数组
数组可以在单个变量中保存多个值。 这意味着您可以包含数组中的值列表并对其进行迭代。
数组内的每个项或值称为元素 。 您可以使用索引号来引用数组的元素。
正如字符串定义为引号之间的字符一样,数组通过在方括号[ ]
之间定义。
例如,字符串数组如下所示:
var fish = ["shark", "cuttlefish", "clownfish", "eel"];
如果我们调用变量fish
,我们将收到以下输出:
["shark", "cuttlefish", "clownfish", "eel"]
数组是非常灵活的数据类型,因为它们是可变的,因为它们可以添加,删除和更改元素值。
对象
JavaScript 对象数据类型可以包含许多值作为name:value对。 这些对提供了一种有用的方法来存储和访问数据。 对象文字语法由名称:值对组成,它们以冒号分隔,两边都有大括号{ }
。
通常用于保存相关的数据,例如ID中包含的信息,JavaScript对象文字如下,在属性之间有空格:
var sammy = {firstName:"Sammy", lastName:"Shark", color:"blue", location:"ocean"};
或者,特别是对于具有大量名称:值对的对象字面值,我们可以在多行上写入此数据类型,每个冒号后面加上一个空格:
var sammy = {
firstName: "Sammy",
lastName: "Shark",
color: "blue",
location: "Ocean"
};
上述每个示例中的对象变量sammy
具有4个属性: firstName
, lastName
, color
和location
。 这些都是通过冒号分隔的值。
使用多种数据类型
当您创建的每个程序将包含多个数据类型时,请务必记住,您通常会在同一数据类型中执行操作。 也就是说,你将在数字上执行数学或切片。
当您使用跨数据类型工作的操作符时,例如可以添加数字或连接字符串的+
运算符,可能会导致意想不到的结果。
例如,当使用带有数字和字符串的+
运算符在一起时,数字将被视为字符串(因此它们将被级联),但数据类型的顺序将影响级联。
因此,如果您创建一个执行以下连接的变量,JavaScript会将以下每个元素解释为字符串:
var o = "Ocean" + 5 + 3;
如果你调用o
变量,你将得到以下值:
OutputOcean53
但是,如果您使用数字导入,则在程序运行时到达"Ocean"
之前将两个数字相加,然后将其解释为字符串,因此返回的值将是与字符串连接的两个数字的总和:
var p = 5 + 3 + "Ocean";
Output8Ocean
由于这些意想不到的结果,您可能会在一种数据类型中执行操作和方法,而不是跨越它们。 然而,与其他一些编程语言一样,JavaScript混合数据类型时不会返回错误。
结论
在这一点上,您应该更好地了解可用于JavaScript中的一些主要数据类型。
当您使用JavaScript语言开发编程项目时,这些数据类型中的每一种将变得重要。