【问题标题】:What type of data is this JavaScript code?这个 JavaScript 代码是什么类型的数据?
【发布时间】:2011-02-03 16:14:57
【问题描述】:

好吧,我对 JavaScript 完全陌生。 你能告诉我这段 JavaScript 代码是什么类型的数据吗:

var options =
{
    sourceLanguage: 'en',
    destinationLanguage: ['hi', 'bn', 'fa', 'gu', 'kn', 'ml', 'mr', 'ne', 'pa', 'ta','te','ur'],
    shortcutKey: 'ctrl+g',
    transliterationEnabled: true
};

我查看了 JavaScript 数组,但它似乎不是传统的数组。 还是不知道是某种数组还是其他数据类型!!

此外,有没有办法将单个元素设置为该数据类型,例如单独设置数组元素。

提前致谢

【问题讨论】:

  • 它是一个对象,几乎是 javascript 中最常见的数据类型。

标签: javascript arrays types


【解决方案1】:

这是一个 Javascript 对象。在 JS 控制台中,您可以检查其类型:

>>> typeof(options)
"object"

JS 对象有时用作简单的关联数组(如哈希表或其他语言中的字典)。您在此处提供的代码 sn-p 可能就是为了这样的用途。在this tutorial 中阅读有关该技术的更多信息。

另外,this tutorial 非常好。

【讨论】:

    【解决方案2】:

    在许多语言中也称为字典。您有一个键值对,因此您可以访问您的键,例如:

    value = dictionary[key]

    或者在你的情况下:

    lang = options['sourceLanguage'];

    写法也一样,只是倒退了:

    options['sourceLanguage'] = lang;

    与您的示例的唯一区别是它是批量进行的。一次完成。

    【讨论】:

      【解决方案3】:

      这是一种在 javascript 中创建和初始化对象的方法,称为对象字面量。由于 javascript 是动态类型的,因此您可以随时添加键/值,甚至可以添加到内置对象中。

      等效的代码是:

      var options = {};
      options.sourceLanguage = 'en';
      options.destinationLanguage = ['hi', 'bn', 'etc'];
      

      方括号 [] 表示一个数组。这相当于

      var destinationLanguage = [];
      destinationLanguage.push('hi');
      destinationLanguage.push('bn'); //etc
      

      您可以通过索引访问数组元素,例如destinationLanguage[0]。

      如您所见,使用请求中的符号初始化所有内容更具可读性和方便性。

      这种表示法构成了称为 JSON(Javascript 对象表示法)的基础,它是用于在客户端和服务器之间传递信息的有线格式。您示例中的字符串可以通过 AJAX 请求检索并以多种方式解析为复杂对象。

      【讨论】:

        【解决方案4】:

        在 JavaScript 中,您可以使用 JavaScript Object Notation (JSON) 创建单例对象:

        var o = {
            prop1 : 'value',
            func1 : function() {
                this.prop1 = 'some other value';
            }
        }
        

        然后您可以执行以下操作:

        alert(o.prop1); // displays 'value' in an alert box in a browser environment
        o.func1();
        alert(o.prop1); // displays 'some other value' in an alert box
        

        所以是的,它是一个对象。当然,JavaScript 中的所有其他内容也是如此。是的,它可以用作哈希或字典。

        【讨论】:

        • 那不是 JSON,那是 Object Literal Notation。
        • 完全正确。当然 JSON 是基于 JavaScript Object Literal Notation 的。因此名称为 JSON。
        【解决方案5】:

        它是一个对象字面量 换句话说,它是一个捷径:

        var options = new Object();
        options.sourceLanguage = 'en';
        options.destinationLanguage = ['hi','bn', 'fa', 'gu', 'kn', 'ml', 'mr','ne']; 
        options.shortcutKey = 'ctrl+g'; 
        options.transliterationEnabled = true
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-01-19
          • 2011-02-06
          • 2014-10-09
          • 2012-05-16
          • 1970-01-01
          • 1970-01-01
          • 2016-12-09
          相关资源
          最近更新 更多