如果我写在JS控制台为什么这不算数组?
var status = ["POR ENTREGAR","POR ENTREGAR","POR ENTREGAR"];
status;
它评估为字符串以下 “POR ENTREGAR,POR ENTREGAR,POR ENTREGAR” 这是为什么?我疯了
如果你然后写状态[0]它返回P;请在回答之前尝试使用另一个数组,以便您可以看到控制台如何以不同方式打印字符串和数组。
如果我写在JS控制台为什么这不算数组?
var status = ["POR ENTREGAR","POR ENTREGAR","POR ENTREGAR"];
status;
它评估为字符串以下 “POR ENTREGAR,POR ENTREGAR,POR ENTREGAR” 这是为什么?我疯了
如果你然后写状态[0]它返回P;请在回答之前尝试使用另一个数组,以便您可以看到控制台如何以不同方式打印字符串和数组。
status
是一个(排序的)reserved word,以使阵列分配给另一个变量名,或者非全球范围内分配给它:
// [status] assigned within the global (window) context
var status = ["POR ENTREGAR","POR ENTREGAR","POR ENTREGAR"];
var mystatus = ["POR ENTREGAR","POR ENTREGAR","POR ENTREGAR"];
Helpers.log2Screen('`status` is array? ', (status instanceof Array).yn());
Helpers.log2Screen('`mystatus` is array? ', (mystatus instanceof Array).yn());
statusStatus();
function statusStatus() {
// [status] assigned within the statusStatus context
var status = ["POR ENTREGAR","POR ENTREGAR","POR ENTREGAR"];
Helpers.log2Screen('`status` (in `statusStatus` context) is array? ',
(status instanceof Array).yn());
}
<script src="http://kooiinc.github.io/JSHelpers/Helpers-min.js"></script>
如果状态未在全局中分配(即window
)的情况下,你很好,请参阅片段中的statusStatus
。否则,您将覆盖预定义的现有window.status
。实际上,window.status
更改浏览器状态栏上的文本,这就是为什么它总是自动绑定到一个字符串值(注意:较新的浏览器似乎放弃了状态栏(chrome,firefox)或只读(IE),但由此无用的窗口属性仍然存在)。
如果你正在寻找比字符串格式更阵列格式,可以考虑使用console.dir(状态)或console.table(状态)
哪个控制台?什么浏览器?你可能会看到数组的'toString()'表示。 'typeof status'返回什么? – chiliNUT
因为JS控制台只能输出字符串?尝试'console.dir(status);' –
你看到那个字符串后做'警报(状态);'如果是这样,这就是它看起来,它实际上是一个数组 – DelightedD0D