在JavaScript中点符号和括号符号之间的区别

前端之家收集整理的这篇文章主要介绍了在JavaScript中点符号和括号符号之间的区别前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在努力了解.Notation和[]符号之间的区别.在我的问题下面,当我使用if(object [key] === true)我得到正确的答案.当我使用if(object.key === true)它不工作.有人可以解释为什么会有所不同.
var myObj = {
    one: false,two: false,three: false,four: true,five: false,six: false
};
var myFunc = function (object) {
    for (var key in object) {
        if (object[key] === true) {
            return "There is a true value in this object";
        } else {

        }
    }
    return "Sorry,there are no true values in this object";
};

解决方法

当您使用点符号时,键表示对象中的实际属性,不会在该对象中.所以,未定义不等于true.

当您使用[]符号时,您正在使用变量键中的名称访问对象中的属性.所以,这将工作.

例如,

var myObj = {
    myVar : 1
};

for (var key in myObj) {
    console.log(key);
    console.log(myObj.key);
    console.log(myObj[key]);
}

这将打印,

myVar
undefined
1

因为,myObj没有成员名为key(myObj.key尝试使用名称获取成员),在下一种情况下,myObj有一个名为myVar的成员(myObj [key]尝试使用键中的值获取成员) .

点符号

jslint prefers dot notation.

[]符号

这提供了灵活性.您可以使用变量动态访问成员.

猜你在找的JavaScript相关文章