Javascript 迭代字符串数组错误,运行第一项';信
我有一个简单的数组循环,在JSFIDLE中完美运行,显示所有项,请参阅 奇怪的是,将相同的脚本放在这里作为一个代码段按字母运行,一个字母一个字母地显示第一个字符串。我觉得自己很愚蠢,我是不是错过了什么?请查看:Javascript 迭代字符串数组错误,运行第一项';信,javascript,html,arrays,Javascript,Html,Arrays,我有一个简单的数组循环,在JSFIDLE中完美运行,显示所有项,请参阅 奇怪的是,将相同的脚本放在这里作为一个代码段按字母运行,一个字母一个字母地显示第一个字符串。我觉得自己很愚蠢,我是不是错过了什么?请查看: var name=[“海伦”,“吉姆”,“托马斯”,“卢克”,“西奥多]; var div=document.getElementById('cards'); for(var i=0;iWordname是javascript中的一个(正如@prasad所回答的)选项,这就是为什么您的代
var name=[“海伦”,“吉姆”,“托马斯”,“卢克”,“西奥多];
var div=document.getElementById('cards');
for(var i=0;iWordname
是javascript中的一个(正如@prasad所回答的)选项,这就是为什么您的代码没有按预期工作的原因
使用名称
更改名称
后,请参见下面的代码
var name=[“海伦”、“吉姆”、“托马斯”、“卢克”、“西奥多”];
var div=document.getElementById('cards');
对于(var i=0;i请尝试其工作的任何函数。name
是javascript的字。但与in函数一起应用。它不充当保留字。这是防止该操作的方法之一。
(函数(){
var name=[“海伦”、“吉姆”、“托马斯”、“卢克”、“西奥多”];
var div=document.getElementById('cards');
对于(变量i=0;iname
AKAwindow.name
在javascript中,name
绝对不是保留字
name
AKAwindow。name
是窗口的名称。它的值由setter函数设置,并且作为窗口名称应该是字符串。因此,当您使用name=[“foo”,“bar”]
设置它时,它将转换为字符串
不幸的是,Javascript必须与每个人和他的狗共享全局名称空间,这说明了尽可能避免全局范围的另一个原因。显然name
是window
的一个属性,它有一个setter,可以将输入值转换为字符串。您的代码正在尝试分配ar光线到神奇地转换为字符串的属性:
var name=[“foo”,“bar”];
console.log(name);//数组转换为“foo,bar”
这里似乎名称被视为字符串,而不是数组。这里有一个js保留字的overviev:这是因为名称属性不再具有全局作用域。名称在Javascript中不是保留字。它是窗口的名称,因此是一个变量。您无法为任何保留字赋值或使用保留字s在任何javascript上下文或作用域中的任何位置都是变量。-1Name不是javascript中的保留字!!!它是浏览器用于定义窗口名称的全局作用域中的变量。要清楚,正如上面的链接所述,“这些是依赖于实现的javascript对象、方法或属性的预定义名称。”(可以说,有些应该是保留语)