为什么要在javascript中使用数据类型

Why use datatypes in javascript?

本文关键字:数据类型 javascript 为什么      更新时间:2023-09-26

在javascript中,整数和浮点数都有一个数字数据ype,字符和字符串都有一个字符串数据类型。

我的问题是为什么要使用不同的数据类型,如数字、字符串、布尔值等。为什么不将所有内容组合成一种类型呢?或者我们为什么要使用数据类型?

谢谢

为什么要抽象任何东西?可以用位和字节用二进制表示所有内容,我们仍然没有在高级语言中这样做,例如动态类型的JavaScript。

抽象类型让我们可以定义语义,例如+ operator意味着字符串和算术加法数字的串联,使用类型数组(Uint8ArrayFloat64Array)进行更有效的内存分配,稍后在 ECMAScript 中沿着管道向下发布的是 SIMD 指令和用户定义的值类型,这最终可能导致用户空间运算符过载。

你似乎有点困惑。 Java 脚本是一种脚本语言。 定义变量的严格语法都不是必需的(无论如何int name = 6;都是无效的),如果这就是你想知道的。 现在,进入真正的问题...(我正在尽我所能地理解这一点...

我的问题是为什么要使用不同的数据类型,如数字、字符串、布尔值等。为什么不将所有内容组合成一种类型呢?

JavaScript 使用数据类型以不同的方式完成不同的任务。 不同的数据类型产生不同的结果。 下面是一个数学(整数与字符串)的示例:

 1  +  1  // =  2
"1" + "1" // = "11"

这就是程序如何区分程序员试图完成的任务。

另一个例子是脚本内调节... 以下是我用代码而不是文字解释的方式:

var myRef = 3;
// Would work
if (typeof myRef == "number") {
  console.log("You entered a number!");
}
// Wouldn't work
if (typeof myRef == "string") {
  console.log("You entered a string!");
}

在另一种情况下,使用 === 运算符,它还将测量数据类型... 使用普通的旧==忽略数据类型(根据 Felix Kling 更正),==运算符只是增强了比较:

"1" ==  1 // true
"1" === 1 // false

你是对的。在JavaScript中,所有内容都组合成一种类型:对象。您看到的数字和字符串都是 Object 的子类。引入这些子类是因为它们有不同的方法和运算符可供使用。

然而,事情并没有那么简单。当直接使用其文字形式时,JS中也有原语。作为基于原型的语言,一切都应该能够具有属性。这就是为什么JS在对它做任何事情之前将基元包装到对象中的原因。

总之,可以说只有一种类型(nullundefined除外),但实际上也有多种原语。