gpt4 book ai didi

javascript - Javascript 中 typeof 的正确用法

转载 作者:行者123 更新时间:2023-12-02 16:15:05 25 4
gpt4 key购买 nike

我是 JS 新手。

这是我正在试验的示例:

我的小程序只打印所有语言名称(notALanguage 被忽略)。

第一个程序:

var languages = {
english: "Hello!",
french: "Bonjour!",
notALanguage: 4,
spanish: "Hola!"
};

// print hello in the 3 different languages;

for(var i in languages)
{
if(typeof languages[i] === "string")
console.log(languages[i]);
}

输出:

Hello!
Bonjour!
Hola!

这是正确的。

最初,我在 for 循环中使用 .(DOT) 运算符编写了上述代码。

第二个程序:

var languages = {
english: "Hello!",
french: "Bonjour!",
notALanguage: 4,
spanish: "Hola!"
};

// print hello in the 3 different languages;

for(var i in languages)
{
if(typeof languages.i === "string")
console.log(languages.i);
}

第二个程序无法打印任何内容(为什么?)。

所以我在for循环中的if语句之前添加了一些输出语句来了解i,language.i anf typeof language.i的值;

所以修改后的第二个程序如下所示:

修改后的第二个程序:

var languages = {
english: "Hello!",
french: "Bonjour!",
notALanguage: 4,
spanish: "Hola!"
};

// print hello in the 3 different languages;

for(var i in languages)
{
console.log("i = " + i);
console.log("languages.i = "+languages.i);
console.log("typeof languages.i = "+ typeof languages.i);
//console.log(typeof languages.i);
if(typeof languages.i === "string")
console.log(languages[i]);
}

输出如下所示:

输出:

i = english
languages.i = undefined
typeof languages.i = undefined
i = french
languages.i = undefined
typeof languages.i = undefined
i = notALanguage
languages.i = undefined
typeof languages.i = undefined
i = spanish
languages.i = undefined
typeof languages.i = undefined

当 i 的值完美时,为什么 languages.i 无法获取正确的引用?

为什么只有语言[i]有效?

两种表示法 languages.i 和 languages[i] 之间有什么区别以及在哪里使用?

最佳答案

当属性名称是动态的时,必须使用方括号表示法来访问它。 languages.i 基本上是 languages['i']

关于javascript - Javascript 中 typeof 的正确用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29723005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com