【问题标题】:understanding Javascript objects syntax [duplicate]理解 Javascript 对象语法 [重复]
【发布时间】:2014-10-30 04:42:58
【问题描述】:
<!DOCTYPE html>
<html>
    <body>

        <p>Creating a JavaScript Object.</p>

        <p id="demo"></p>

        <script>
            var person = {
                firstName : "John",
                "lastName"  : "Doe",
                age       : 50,
                "eyeColor"  : "blue"
            };

            document.getElementById("demo").innerHTML =
                person.firstName + " " + person.lastName + " is " + person.age + " years old.";
        </script>
    </body>
</html>

结果是 ---> John Doe 50 岁。 在这里,无论属性 firstName,"lastName" 是否用引号括起来,代码仍然有效。但是技术差异是什么,在哪些情况下它不起作用 例如,在 JSON 中,除非存在引号,否则 person 对象的 firstName 属性是无效的 json 语法。 但 javascript 允许任一语法工作

【问题讨论】:

  • 在 JSON 中,引号是必需的。在 js 对象文字中,它们不是。除非你有理由,否则不要在 js 中引用属性名。
  • JSON 是 js 的一个子集,而且更加严格。这只是意味着在 JSON 中更严格,并且需要用引号引起来的属性名称。内联 js 表示法更宽松,不需要引号。话虽这么说,任何 json 都应该使用序列化程序生成。
  • 使用 stringify 序列化方法是不可能的

标签: javascript json


【解决方案1】:

Javascript 对象的键名可以用引号括起来或不带引号。当键名包含特殊字符(如 -、空格等)时,此功能更有意义。

敌人的例子

var person = {
   first Name : "John", // Will not work
  "last Name"  : "Doe", // Will work
  age       : 50,
  "eyeColor"  : "blue"
};

【讨论】:

    猜你喜欢
    • 2017-11-23
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 2016-09-05
    • 2011-10-01
    • 1970-01-01
    • 2013-01-20
    • 1970-01-01
    相关资源
    最近更新 更多