javascript - Javascript 中 typeof 的正确用法

标签 javascript

我是 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/

相关文章:

javascript - 日期变量没有方法 addDays

javascript - JavaScript 样式注释必须位于脚本标签之间吗?

javascript - 在不触发键盘或鼠标事件的情况下检测按下的修改键

javascript - 在 v-for 中动态创建一个 html 结构

javascript - 来自 @ViewChildren 的 QueryList 的顺序是否总是与 DOM 中的顺序匹配?

javascript - Web 浏览器信息亭 - 从网络中断中恢复

javascript - 无法遍历依赖图

javascript - 根据 json 数据显示警报

javascript - 拖动时避免使用文本 anchor 跳跃 SVG 文本

javascript - 如何在 React/jsx 中以三元组的形式显示真实情况下的组件和变量?