冒号(:)在这个javascript行中是什么意思?

冒号(:)在这个javascript行中是什么意思?,javascript,Javascript,下面第3-6行中“:”是什么意思 function displayError(error) { var errorTypes = { 0: "Unknown error", 1: "Permission denied", 2: "Position is not available", 3: "Request timeout" }; var errorMessage = errorTypes[error.cod

下面第3-6行中“:”是什么意思

function displayError(error) {
    var errorTypes = {
        0: "Unknown error",
        1: "Permission denied",
        2: "Position is not available",
        3: "Request timeout"
    };
    var errorMessage = errorTypes[error.code];
    if (error.code == 0 || error.code == 2) {
        errorMessage = errorMessage + " " + error.message;
    }
    var div = document.getElementById("location");
    div.innerHTML = errorMessage;

}

变量
errorTypes
是一个变量。
将对象属性名称(数字)与其值分开。如果您熟悉其他语言中的哈希表,则此结构是一个类似的概念。例如,在PHP中,这可以表示为关联数组

你可以做:

var errorTypes = {
    0: "Unknown error",
    1: "Permission denied",
    2: "Position is not available",
    3: "Request timeout"
};

console.log(errorTypes[0]);
// Unknown error

console.log(errorTypes[2]);
// Permission denied
请注意,引用对象属性(使用点运算符)的常规语法不适用于以下数字属性:

// Won't work for numeric properties
errorTypes.0
SyntaxError: Unexpected number

// Instead use the [] notation
errorTypes[0]
在本例中,由于使用了数字属性名,因此可以将整个内容定义为数组,并通过
[]
符号以完全相同的方式访问,但对键的语法控制较少

// As an array with the same numeric keys
var errorTypes = [
    "Unknown error",
    "Permission denied",
    "Position is not available",
    "Request timeout"
];
console.log(errorTypes[2]);

这就是在对象中定义键值对的方式。因此
errorTypes.2
将返回字符串“Position is not available”。

您可能会发现值得一读。是关于数据结构的。@RightSaidFred-谢谢,看起来真的很好!