首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这行javascript中的冒号(:)是什么意思?

这行javascript中的冒号(:)是什么意思?
EN

Stack Overflow用户
提问于 2011-12-04 06:56:36
回答 2查看 283关注 0票数 4

下面第3-6行中的":“是什么意思?

代码语言:javascript
复制
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;

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-04 06:57:44

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

您可以执行以下操作:

代码语言:javascript
复制
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

请注意,引用对象属性的常规语法(使用点运算符)不适用于这些数值属性:

代码语言:javascript
复制
// Won't work for numeric properties
errorTypes.0
SyntaxError: Unexpected number

// Instead use the [] notation
errorTypes[0]

在本例中,由于使用了数字属性名,因此可以将整个对象定义为一个数组,并通过[]表示法以完全相同的方式进行访问,但对键的语法控制较少。

代码语言:javascript
复制
// As an array with the same numeric keys
var errorTypes = [
    "Unknown error",
    "Permission denied",
    "Position is not available",
    "Request timeout"
];
console.log(errorTypes[2]);
票数 12
EN

Stack Overflow用户

发布于 2011-12-04 06:58:46

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8371718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档