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

时间:2015-01-05 04:59:45

标签: javascript

在javascript中,整数和float都有一个Number dataype,字符和字符串都有一个String数据类型。

我的问题是为什么要使用不同的数据类型,如Number,String,Boolean等。为什么不将所有内容组合成一种类型?或者我们为什么要使用数据类型?

由于

3 个答案:

答案 0 :(得分:2)

为什么抽象任何东西?一个人可以用二进制和字节来表示二进制文件,我们仍然不会在JavaScript等dynamically typed等高级语言中表示。

抽象types让我们定义语义,例如+ operator表示字符串和算术加法数的连接,使用typed arraysUint8Array Float64Array {{1}}更高效的内存分配1}}),稍后在 ECMAScript 中的管道下面是SIMD指令和用户定义的值类型,这可能最终导致用户空间操作符重载。

答案 1 :(得分:0)

你似乎有点困惑。 Java 脚本是指脚本语言。用于定义变量的严格语法都不是必需的(int name = 6;无论如何都是无效的),如果这是你想知道的话。现在,谈到真正的问题......(我能够最好地理解这一点......)

  

我的问题是为什么要使用不同的数据类型,如Number,String,Boolean等。为什么不将所有内容组合成一种类型?

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

答案 2 :(得分:-1)

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

但事情并非那么简单。 JS直接使用其文字形式时也有原语。作为基于原型的语言,一切都应该具有属性。这就是为什么JS在使用它之前将基元包装到Object中的原因。

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