了解 JavaScript 中的数据类型

介绍

数据类型用于在编程语言中分类一个特定的数据类型,例如,数字和字符串是不同的数据类型,JavaScript会对其进行不同的处理。

这很重要,因为您使用的特定数据类型将决定您可以分配给它哪些值,以及您可以对它做些什么,也就是说,要能够在JavaScript中执行变量操作,重要的是了解任何给定变量的数据类型。

在本教程中,我们将讨论如何在JavaScript中工作数据类型以及本地语言中的重要数据类型,这不是对数据类型的全面调查,但将帮助您熟悉JavaScript中可用的选项。

动态打字

JavaScript 有动态数据类型,这意味着类型检查是在运行时进行的,而不是编译时间。

在动态键入语言中,可以使用具有相同名称的变量来存储不同的数据类型。

例如,t变量,由let关键字定义为变量(请注意,let保留给定的变量范围有限),可以分配以持有不同的数据类型,或者可以初始化,但不定义:

1let t = 16;			// t is a number
2let t = "Teresa";	// t is a string
3let t = true;		// t is a Boolean
4let t;				// t is undefined

上面的每个变量t可以设置为JavaScript中可用的任何数据类型;在使用之前,它们不需要用数据类型明确表示。

数字

JavaScript 只有一种数字类型,没有对整数和浮点数的单独指定,因此,数字可以用 JavaScript 写有或没有十进制:

1let num1 = 93;
2let num2 = 93.00;

在上述两种情况下,数据类型是数字,不论数字是否有十进制点,都是相同的。

科学指数符号可以用JavaScript来缩写非常大的或很小的数字,如下所示:

1let num3 = 987e8;		// 98700000000
2let num4 = 987e-8;		// 0.00000987

JavaScript 中的數字被認為是準確的,最多為 15 位數,這意味著數字在達到 16 位數後會被圓滿:

1let num5 = 999999999999999;		// remains as 999999999999999
2let num6 = 9999999999999999;	// rounded up to 10000000000000000

除了表示数字外,JavaScript 号码类型还具有三个可用的象征值:

  • 'Infinity' - 代表无限 接近无限 的 数值 - 代表无限 接近无限的 数值 - 代表无限 的 数值 - 代表非数值的 数值 - 代表 not a number

如果您计算在JavaScript中可用的最大可能数之外的数字,则返回无限无限

1let num7 = 5 / 0;	// will return Infinity
2let num8 = -5 / 0;	// will return -Infinity

在技术上,无限会显示,当一个数字超过数字1.797693134862315E+308,这代表了JavaScript的上限。

同样,无限会显示当一个数字超过-1.797693134862316E+308的下限时。

数字无限也可以用在循环中:

1while (num9 != Infinity) { 
2    // Code here will execute through num9 = Infinity
3}

如果您尝试对数字和非数字值执行数学操作,则返回NaN

1let x = 20 / "Shark";	// x will be NaN

由于数字20不能被字符串Shark分割,因为它不能被评估为一个数字,因此x变量的返回值是NaN

但是,如果一个字符串可以被评估为数值,则可以在JavaScript中执行数学表达式:

1let y = 20 / "5";	// y will be 4

在上面的示例中,由于字符串5在JavaScript中可以被评估为数值,因此它被视为数值,并将与数学操作员进行分割, /

当将值 NaN 分配给操作中使用的变量时,它会产生 NaN 的值,即使另一个操作数是法定数:

1let a = NaN;
2let b = 37;
3let c = a + b; 	// c will be NaN

在JavaScript中只有一种数字数据类型. 使用数字时,您输入的任何数字都将被解释为数字的数据类型;您不需要声明您正在输入的数据类型,因为JavaScript是动态键入的。

严格

一个 **字符串是由一个或多个字符(字母,数字,符号)组成的序列。

在JavaScript中,字符串存在于单个引文 ' 或双引文 " 中,因此,要创建一个字符串,请在引文中包含一个字符串:

1let singleQuotes = 'This is a string in single quotes.';
1let doubleQuotes = "This is a string in double quotes.";

您可以选择使用单个引文或双引文,但无论您决定什么,您都应该在程序中保持一致。

Hello, World!程序展示了如何在计算机编程中使用一个字符串,因为下面的alert()中构成Hello, World!的字符串是字符串。

 1[label hello.html]
 2<!DOCTYPE HTML>
 3<html>
 4<head>
 5<script>
 6function helloFunction() {
 7    alert("Hello, World!");
 8}
 9</script>
10</head>
11<body>
12<p><button onclick="helloFunction()">Click me</button></p>
13</body>
14</html>

当我们运行代码并点击点击我按钮时,我们将收到一个带有以下输出的弹出窗口:

1[secondary_label Output]
2Hello, World!

与其他数据类型一样,我们可以将字符串存储为变量:

1let hw = "Hello, World!";

然后在alert()中显示字符串,调用变量:

1[label hello.html]
2...
3<script>
4let hw = "Hello, World!";
5function helloFunction() {
6    alert(hw);
7}
8</script>
9...
1[secondary_label Output]
2Hello, World!

有许多操作,我们可以执行在我们的程序中的字符串,以便操纵它们,以达到我们正在寻找的结果。

布莱尔

Boolean 数据类型可以是两个值中的一个,即 true 或 false. Boolean 用于表示与数学逻辑分支相关的真理值,该分支为计算机科学中的算法提供信息。

数学中的许多操作给了我们评估为真或假的答案:

  • greater than
    • 500 > 100 true
    • 1 > 5 false
  • less than
    • 200 < 400 true
    • 4 < 2 false
  • equal
    • 5 = 5 true
    • 500 = 400 false

与其他数据类型一样,我们可以在变量中存储一个布尔值:

1let myBool = 5 > 8;	// false

由于5不大于8,所以变量myBool具有false的值。

随着你在JavaScript中编写更多的程序,你将更加熟悉布尔语的工作方式,以及如何不同的函数和操作评估为真或假可以改变程序的过程。

拉拉斯

一个 array 可以包含单个变量中的多个值,这意味着您可以包含一个数组中的值列表,并通过它们迭代。

数组内部的每个项目或值称为 element. 您可以使用索引号来参考数组中的元素。

正如字符串被定义为引文之间的字符一样,数组被定义为在平方轴之间有值 [ ]

例如,一系列的字符串看起来像这样:

1let fish = ["shark", "cuttlefish", "clownfish", "eel"];

如果我们将变量称为,我们将获得以下输出:

1["shark", "cuttlefish", "clownfish", "eel"]

数组是一个非常灵活的数据类型,因为它们是可变的,因为它们可以添加、删除和更改元素值。

物体

JavaScript object 数据类型可以包含许多值作为 name:value 对,这些对提供了存储和访问数据的有用方法。

通常用于存储相关的数据,例如ID中包含的信息,JavaScript对象字面上看起来像这样,属性之间有白色空间:

1let sammy = {firstName:"Sammy", lastName:"Shark", color:"blue", location:"ocean"};

另一种方法是,特别是对象字母中有大量的名称:值对,我们可以将此数据类型写在多个行上,每个字母后有一个白色空间:

1let sammy = {
2    firstName: "Sammy",
3    lastName: "Shark",
4    color: "blue",
5    location: "Ocean"
6};

上面的每个示例中的对象变量sammy有4个属性:firstName,lastName,colorlocation

处理多种数据类型

虽然您创建的每个程序都包含多个数据类型,但重要的是要记住,您通常会在相同的数据类型中执行操作,也就是说,您将在数字上执行数学或切割字符串。

当您使用跨数据类型工作的运算器,例如可以添加数字或连接字符串的+运算器时,您可能会获得意想不到的结果。

例如,当使用数字和字符串的+运算器时,数字将被视为一个字符串(因此它们将被连接),但数据类型的顺序会影响连接。

因此,如果您创建一个可执行以下连接的变量,JavaScript 将下面的每个元素解释为一个字符串:

1let o = "Ocean" + 5 + 3;

如果您调用o变量,则将返回以下值:

1[secondary_label Output]
2Ocean53

但是,如果使用数字引导,则将添加两个数字,然后在程序运行时间达到海洋时将它们解释为字符串,因此返回的值将是与字符串相连的两个数字的总和:

1let p = 5 + 3 + "Ocean";
1[secondary_label Output]
28Ocean

由于这些意想不到的结果,您可能会在一个数据类型内执行操作和方法,而不是在它们之间执行操作。

结论

在此时刻,您应该更好地了解一些主要的数据类型,这些类型可用于JavaScript。

这些数据类型中的每个类型都将变得重要,因为您在JavaScript语言中开发编程项目。

Published At
Categories with 技术
comments powered by Disqus