【问题标题】:why array.length showing false result.... with variable "name" [duplicate]为什么array.length显示错误结果....带有变量“名称” [重复]
【发布时间】:2023-03-29 03:25:02
【问题描述】:

我刚刚学习 es 6,当我运行这段代码时,我就感到很兴奋……

var name = ["Rahul","Ritika","Amit","Radhika"]; console.log(name.length);

答案是 25.. 25 为什么? 它必须有答案 4 但给出 25 我不知道为什么?

我只是在浏览器控制台中运行代码,答案是一样的...... 25

但是当我将变量名称更改为“c_name”之类的其他名称时,它可以正常工作...

让 c_name = ["Rahul","Ritika","Amit","Radhika"]; console.log(c_name.length);

当我尝试执行此代码时,再次出现错误行为...

// 名称变量 let name = ["Rahul","Ritika","Amit","Radhika"]; for(let i = 0 ; i

****output****
"Rahul"
"Ritika"
"Amit"
"Radhika"

// 其他变量 let c_name = ["Rahul","Ritika","Amit","Radhika"]; for(let i = 0 ; i 输出

"R"
"a"
"h"
"u"
"l"
","
"R"
"i"
"t"
"i"
"k"
"a"
","
"A"
"m"
"i"
"t"
","
"R"
"a"
"d"
"h"
"i"
"k"
"a"

for loop

Output with name

Output with c_name

【问题讨论】:

  • window.name 是预定义属性,只能包含字符串值。

标签: javascript ecmascript-6


【解决方案1】:

这是因为name is a property on window object

如果您在全局范围之外运行代码,它将为您提供正确的结果。下面的代码示例展示了如何使用IIFE (Immediately Invoked Function Expression)

(function(){ 
  var name = ["Rahul","Ritika","Amit","Radhika"];  
  console.log(name.length);
})();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 2017-11-16
    • 2021-07-18
    • 1970-01-01
    • 2019-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多