javascript解释器如何理解变量的数据类型?

时间:2016-05-18 12:54:18

标签: javascript

我想知道,javascript解释器在执行时如何知道变量的数据类型。对于Java和其他语言,我们使用声明数据类型但在javascript中我们只是将其声明为" var"。

 count (distinct threads.thread_id)

输出为5。为什么不23?

感谢。

6 个答案:

答案 0 :(得分:1)

因为两者都不是字符串。

变量的类型与该变量的内部表示相关联。

在源解析期间,根据语言语法对变量进行修改。没有引号,不是字符串,所以它是一个数字。由于两者都是数字,因此结果是数字。

答案 1 :(得分:1)

您的变量被解释为数字,因为您没有使用""将其变为字符串。

var number1 = 2;
var number2 = 3;

var number1_ = "2";
var number2_ = "3";

var number3 = number1+number2;
var number3_ = number1_+number2_;

console.log(number3); // 5
console.log(number3_); // 23

答案 2 :(得分:0)

因为2和3是数字。用var声明变量并不意味着"删除类型",或者#34;将类型设置为字符串",它只是意味着它可以包含任何类型。您为number1分配了一个数字,为​​number2分配了一个数字。因此,JS解释器将这些加在一起就知道它将两个数字加在一起。

答案 3 :(得分:0)

因为它是number类型:

typeof 4
--> "number"

typeof '4'
--> "string"

答案 4 :(得分:0)

JavaScript变量是用于存储数据值的容器。

当您为容器分配号码时,它的解释器会将其识别为数字 否则,如果您指定一个字符串,则将其视为字符串

var x = '2' ;
var y = '3'
console.log(typeof x) // string
console.log(typeof y) // string

console.log(x+y) // '23'

现在为每个人分配一个数字:

var x = 2 ;
var y = 3
console.log(typeof x) // number
console.log(typeof y) // number

console.log(x+y) // 5

答案 5 :(得分:0)

我想直接回答你关于javascript解释器如何知道变量数据类型的问题。

你需要知道关于javascript的事情,比方说,java是JS中的一个变量不能保存类型。在JS中,它是保存类型的值。并且值的类型无法更改。但它可以强制

因此,即使变量的值本身就是一个数字,如数字5,也可以通过隐式强制从它创建一个新的字符串“5”,而不需要显式更改变量的类型,因为变量本身从未保持类型开始用。

不是变量更改为字符串,而是创建新的字符串值并将其用于变量,具体取决于您使用它的表达式的上下文。

查找javascript 强制以获取更多信息。