![](/img/trans.png)
[英]Why implicitly-typed local variables must be initialized in C# and not in JavaScript?
[英]why javascript string variables must be initialized before concatenation
为什么在使用concat()方法之前必须定义一个javascript字符串变量? 在控制台下面的代码中,不打印任何内容。 但是如果我像这样初始化变量字符串var string =“”; 它会像预期的那样进行连接,并在控制台中打印字符串。 这让我感到困惑,因为我认为javascript具有自动类型转换功能,因此var string; 应该初始化变量,然后在使用concat()时,应自动将类型更改为“ String”并进行连接?
var select = document.getElementById("CK_Expertise");
options = select.getElementsByTagName('option');
var string;
for (var i=options.length; i--;){
if(options[i].selected){
string = string.concat(options[i].value + "<br/>");
}
}
console.log(string);
谢谢-克里斯
这让我感到困惑,因为我认为javascript具有自动类型转换功能,因此var string; 应该初始化变量,然后在使用concat()时,应自动将类型更改为“ String”并进行连接?
var string
声明变量。 它以undefined
的值(不是字符串)开始。 undefined
没有名为concat
的方法,因此string.concat(...)
失败。
而var string = ""
声明变量并为其提供字符串值""
。 由于这是一个字符串,因此具有concat
方法,因此string.concat(...)
起作用。
除非变量具有值,否则它就没有类型,也没有方法。 在诸如5 + "5" -> "55"
情况下会自动进行类型转换,但在您的情况下则不会。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.