因为将变量命名为 name 产生了一个bug,害我找半天原因,
在浏览器控制台 声明一个名为name的数组,打印出来却是字符串:
var name =['1','2','3','4','5'];
name
"1,2,3,4,5"
查阅资料后了解到 name就是 window.name,用来表示 浏览器窗口的名称,window.name 会调用 toString 将赋给它的值转换成对应的字符串表示。
参考链接:https://developer.mozilla.org/zh-CN/docs/Web/API/Window/name
What you are seeing is a global variable that is part of the window object. This is actually a value the browser uses that reflects the name of the window. (see documentation)
Since window.name is a string getter/setter, your array is being cast to a string. (and the console operates in the “global scope”, so var name and window.name are the same value. (if you were nested inside a function, this same behavior would not apply because it wouldn’t be the global scope anymore)
1.如需转载本站原创文章,请务必注明文章出处并附上链接,非常感谢。
2.本站用于记录个人 工作、学习、生活,非商业网站,更多信息请 点击这里
下一篇: 前后端分离下载导出文件遇到的权限问题