我想在我的vars上设置javascript数据类型。 例如:
var friends = {
name: String(),
age: Number(),
classmate: Boolean()
};
这是对的吗? 它适用于浏览器。但我无法确定。原因,下面也有效。
var friends = {
name: '',
age: 0,
classmate: false
};
我想知道这些事情是否正确或好或坏。
答案 0 :(得分:0)
两者都是正确的,但正确的方法是首先分配类型,在执行脚本时严格遵循,并将值赋值给变量。
答案 1 :(得分:0)
Javascript是一种弱类型的语言,所以这并不是为你做任何事情。您不需要声明变量类型,并且在初始化时通过指定类型无法获得保护。如果你需要强力打字,我会考虑TypeScript;否则,我会喜欢不必处理它们。
答案 2 :(得分:0)
首先,javascript变量和属性是动态的 - 它们可以采用任何数据类型的任何值。你在你的例子中实际做的是某种铸造。
var friends = {
index1: Number("12"),
index2: String("12")
};
如果初始化变量是好事还是坏事,那么这取决于你的要求。如果你想确保每个变量的值在整个范围内是一致的(并防止任何异常或不需要的结果),那么我想这对你来说是一个很好的做法。
以此为例。
var sum = friends.index1 + friends.index2;
console.log(sum);
结果是“1212”而不是24.希望这对你有意义。
还有其他方法可以确保值的类型符合您的预期。您可以使用typeof进行检查。通过这种方式,您可能不再需要在变量初始化期间强制转换或“指定”数据类型。
if( typeof friends.index1 == "number" ) ...
答案 3 :(得分:0)
在javascript值中有数据类型但变量没有。没有机制来定义变量的类型,您可以将任何类型的值存储到现有变量中。 (在某些语言中,这种弱类型变量被称为变体类型的变量)。
对于您的信息,ECMA脚本2015(ES6)引入了typed arrays,允许您将二进制数组缓冲区视为具有不同长度整数和浮点数的数组。然而,这与您的问题的措辞没有特别的关系,并且与输入类型变量不同。
请注意帖子中的第一个示例不为变量提供数据类型。之后
var friends = {
name: String(),
age: Number(),
classmate: Boolean()
};
对象属性name
包含零长度字符串对象,age
包含0而classmate
包含false,但您可以在之后将它们重置为任何内容。