我想知道,javascript解释器在执行时如何知道变量的数据类型。对于Java和其他语言,我们使用声明数据类型但在javascript中我们只是将其声明为" var"。
count (distinct threads.thread_id)
输出为5。为什么不23?
感谢。
答案 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 强制以获取更多信息。