繁体   English   中英

VAR状态不会评估为JS上的数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM