[英]Var status doesn't evaluates into an array on js
如果我在js控制台中编写以下内容
var status = ["POR ENTREGAR","POR ENTREGAR","POR ENTREGAR"];
status;
它评估为字符串“ POR ENTREGAR,POR ENTREGAR,POR ENTREGAR”,为什么这是结果而不是等效数组? 我疯了
如果然后写入status [0],则返回P;否则,返回0。 请先回答另一个数组,然后再尝试,以便您可以看到控制台如何以不同方式打印字符串和数组。
JavaScript在window对象上带有一个内置的status属性,它是一个空字符串。 将变量名更改为status以外的其他名称,您就可以顺利进行了。
不确定为什么要投票。 核实。
一些代码演示了相同的问题。
var status = {}
status ---> "[object Object]"
typeof status ---> "string"
status
是保留字 1 (的一种),因此将数组分配给另一个变量名,或者在非全局上下文中分配它:
// [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>
1如果未在全局(即window
)上下文中分配状态,则可以,请参见代码段中的statusStatus
。 否则,您将覆盖预定义的现有window.status
。 实际上, window.status
更改浏览器状态栏上的文本,这就是为什么始终将其自动装箱为字符串值的原因(请注意:较新的浏览器似乎抛弃了状态栏(chrome,firefox)或使其变为只读(IE) ,但仍然没有用的window属性仍然存在)。
如果您要查找比字符串格式更多的数组格式,请考虑使用console.dir(status)或console.table(status)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.