Javascript - 数组继续被解释为String

时间:2017-07-29 09:40:34

标签: javascript jquery

我有这段代码 -

var status = ["A", "B", "C", "D", "E", "F"];


$(function() {
  console.log(window.status);
  console.log(typeof window.status);
  var status = ["A", "B", "C", "D", "E", "F"];
  console.log(status);
  console.log(typeof status);

});
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

$(function() {});之外,var status被声明为数组。 然而,当它将其记录到控制台时,它会显示为String。

我在ready函数中重复了同样的事情,它的行为与此时一样。这段代码出了什么问题?

2 个答案:

答案 0 :(得分:3)

window.status是定义浏览器状态栏文本(字符串)的属性。因此,您的数组会自动转换为字符串。

如果您将status移到自己的闭包中,可以防止这种情况发生,例如将其包裹在(function(){...})();中并通过status访问它,而不是window.status

答案 1 :(得分:2)

使用其他名称检查其使用默认值为javascript

var my_status = ["A", "B", "C", "D", "E", "F"];


$(function() {
  console.log(window.my_status);
  console.log(typeof window.my_status);
  var status = ["A", "B", "C", "D", "E", "F"];
  console.log(status);
  console.log(typeof status);

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>