分类
文章

理解javascript中的数据类型

介绍

Data types用于以编程语言对一种特定类型的数据进行分类。例如,数字和字符串是不同类型的数据,JavaScript将对其进行不同的处理。

这很重要,因为您使用的特定数据类型将确定您可以分配给它的值以及可以对其执行的操作。这就是说,要能够使用JavaScript中的变量进行操作,了解任何给定变量的数据类型非常重要。

在本教程中,我们将介绍JavaScript中数据类型的工作方式以及该语言固有的重要数据类型。这不是对数据类型的详尽研究,但可以帮助您熟悉JavaScript中可用的选项。

动态打字

JavaScript具有动态数据类型,这意味着类型检查是在运行时而不是编译时完成的。Python的数据类型也是动态类型的。

对于动态类型的语言,可以使用相同名称的变量来保存不同的数据类型。

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

let t = 16;         // t is a number
let t = "Teresa";   // t is a string
let t = true;       // t is a Boolean
let t;              // t is undefined

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

Numbers

JavaScript只有一种数字类型,没有整数和浮点数的单独指定。因此,数字可以用JavaScript编写,带或不带小数:

let num1 = 93;
let num2 = 93.00;

在以上两种情况下,数据类型都是一个数字,并且无论该数字是否带有小数点都相同。

可以在JavaScript中使用科学的指数表示法来缩写非常大的数字或很小的数字,如以下示例所示:

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

JavaScript中的数字被认为是准确的,最多15位数字。这意味着数字将在到达第16位后四舍五入:

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

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

  • Infinity —一个数值,代表接近无穷大的positive
  • -Infinity —一个数值,表示接近无穷大的negative
  • NaN -表示非数字,代表一数值n加时赛a n棕土

如果您计算的数字超出JavaScript中可用的最大数,则将返回Infinity-Infinity 。对于未定义的值,也将发生这些情况,例如除以零时:

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

用技术术语来说,当数字超过数字1.797693134862315E+308时,将显示Infinity ,这表示JavaScript中的上限。

类似地,当数字超出-1.797693134862316E+308的下限时,将显示-Infinity

数字Infinity也可以在循环中使用:

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

对于不是合法数字的数字,将显示NaN 。如果您尝试对数字和非数字值执行数学运算,则将返回NaN 。在以下示例中就是这种情况:

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

由于不能将数字20除以字符串"Shark"因为无法将其评估为数字,因此x变量的返回值为NaN

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

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

在上面的示例中,由于字符串"5"可以在JavaScript中作为数字值进行评估,因此将其视为此类,并将与用于除法/的数学运算符一起使用。

NaN值赋给一个运算中使用的变量时,即使另一个运算数是合法数字,也将导致NaN的值:

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

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

Strings

string是一个或多个字符(字母,数字,符号)的序列。字符串很有用,因为它们代表文本数据。

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

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

您可以选择使用单引号或双引号,但是无论您决定采用哪种方式,都应在程序内保持一致。

程序”你好,世界!”演示了如何在计算机编程中使用字符串,作为组成短语Hello, World!的字符Hello, World! 下面的alert()中的是一个字符串。

hello.html
<!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!

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

let hw = "Hello, World!";

并通过调用变量在alert()显示字符串:

hello.html
...
<script>
let hw = "Hello, World!";
function helloFunction() {
    alert(hw);
}
</script>
...
OutputHello, World!

我们可以对程序中的字符串执行许多操作,以便对其进行操作以实现我们所寻求的结果。字符串对于将信息传递给用户以及将信息传递回程序很重要。

Booleans

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

每当您看到数据类型Boolean时,它都会以大写的B开头,因为它是以数学家George Boole命名的。

数学中的许多运算都可以为我们提供答案,判断结果是否为真:

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

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

let myBool = 5 > 8; // false

由于5不大于8,因此变量myBool的值为false

随着您使用JavaScript编写更多程序,您将更加熟悉布尔值的工作方式以及评估为true或false的不同函数和操作如何改变程序的过程。

Arrays

array可以在单个变量中保存多个值。这意味着您可以在数组中包含一个值列表并对其进行迭代。

数组内部的每个项目或值都称为一个element 。您可以通过使用索引号来引用数组的元素。

就像将字符串定义为引号之间的字符一样,通过在方括号[ ]之间使用值来定义数组。

例如,一个字符串数组如下所示:

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

如果我们将变量称为fish ,则将收到以下输出:

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

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

对象

JavaScript object数据类型可以包含许多值,例如name:value对。这些对提供了一种存储和访问数据的有用方法。对象文字语法由name:value对组成,其对由{ }两侧带有花括号的冒号分隔。

JavaScript对象文字通常用于保存相关数据(例如ID中包含的信息),如下所示,属性之间带有空格:

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

另外,尤其是对于具有大量name:value对的对象文字,我们可以在多行上写入此数据类型,并在每个冒号后加一个空格:

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

上面每个示例中的对象变量sammy具有4个属性: firstNamelastNamecolorlocation 。这些都是通过冒号分隔的传递值。

处理多种数据类型

虽然您创建的每个程序都将包含多种数据类型,但是请记住通常要在同一数据类型内执行操作,这一点很重要。也就是说,您将要对数字进行数学运算,或者对字符串进行切片。

当您使用跨数据类型使用的运算符(例如可以添加数字或连接字符串的+运算符)时,可能会获得意外的结果。

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

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

let o = "Ocean" + 5 + 3;

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

OutputOcean53

但是,如果以数字开头,则在程序运行时达到"Ocean" ,将在将两个数字解释为字符串之前将其添加,因此返回的值将是与字符串连接的两个数字的和:

let p = 5 + 3 + "Ocean";
Output8Ocean

由于这些意外的结果,您可能会在一种数据类型内而不是跨它们执行操作和方法。但是,JavaScript与其他编程语言一样不会在混合数据类型时返回错误。

结论

此时,您应该对可在JavaScript中使用的一些主要数据类型有更好的了解。

当您使用JavaScript语言开发编程项目时,每种数据类型都将变得非常重要。

发表评论

电子邮件地址不会被公开。 必填项已用*标注