在javascript中,整数和float都有一个Number dataype,字符和字符串都有一个String数据类型。
我的问题是为什么要使用不同的数据类型,如Number,String,Boolean等。为什么不将所有内容组合成一种类型?或者我们为什么要使用数据类型?
由于
答案 0 :(得分:2)
为什么抽象任何东西?一个人可以用二进制和字节来表示二进制文件,我们仍然不会在JavaScript等dynamically typed等高级语言中表示。
抽象types让我们定义语义,例如+ operator
表示字符串和算术加法数的连接,使用typed arrays(Uint8Array
Float64Array
{{1}}更高效的内存分配1}}),稍后在 ECMAScript 中的管道下面是SIMD指令和用户定义的值类型,这可能最终导致用户空间操作符重载。
答案 1 :(得分:0)
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中的原因。
总之,可以说只有一种类型(null
和undefined
除外),但实际上还有多种原语。