对象文字符号中的“literal”是什么意思?

时间:2014-01-08 14:17:51

标签: javascript json

Javascript:好的部分 Douglas Crockford写道,Javascript的一个好主意是“表达对象字面符号”。我知道他基本上赞美JSON

但是关于这种符号的“字面意思”是什么?是否有其他语言使用“表达对象文字符号?”那些语言不是吗?究竟是什么意思?

5 个答案:

答案 0 :(得分:26)

关于“赞美JSON”:他指定了它。

“文字”部分:Google搜索“对象文字”提供了两个顶级资源:MDNWikipedia。引用后者:

  

在计算机科学中,文字是用于在源代码中表示固定值的符号。几乎所有编程语言都有原子值的符号,如整数,浮点数和字符串,通常用于布尔值和字符;有些还包含枚举类型和复合值元素的表示法,例如数组,记录和对象。

基本上,所有使用导致已定义类型的语法结构都可以称为文字。 (例如,一个字符串文字,"abc"。)这是一个技术术语,表示“字面上”用这种或那种方式写一些东西导致一个肯定的类型变量完全(与之形成鲜明对比)构造,看起来像其他东西,如PHP中的array()

答案 1 :(得分:4)

嗯,在编程中,文字是固定值。 就像说var five = 5;并在某些数学中使用“五”一样,只需使用数字5即可。

因此,在OOP语言中,对象文字将类似于:

var new_dog = {
    name: "doggy",
    good_dog: false
};

整件事是我的目标。我{}之间的事情是我的文字。我的符号是“名称:价值”模式。

答案 2 :(得分:3)

对象文字是用大括号括起来的逗号分隔的名称值对列表。在JavaScript中,对象文字定义如下:

var someObject = {
    some_prop: 'some string value',
    another_prop: 'another string value',
    int_prop: 100
};

它是“平坦的”。您可以创建它,向其添加属性和方法,并且所有这些属性和方法都是公共的。 使用以下语法规则形成对象文字:

  • 冒号将属性名称与值分开。
  • 逗号将每个名称/值对与下一个分开。
  • 在姓氏/值对之后可能没有逗号,但在这种情况下,版本9之前的Internet Explorer通常会触发错误:'预期的标识符,字符串或数字'。

值可以是任何数据类型,包括数组文字,函数和嵌​​套对象文字。

虽然JavaScript对象文字和JavaScript实例对象都是对象,但它们的固有性质和功能不同

答案 3 :(得分:1)

作为一个刚接触编程的人,我真的很难理解文字。人们通常认为你了解所有类型和构造函数。所以这是我(简化)的简化:

“类型”是指变量的分类(不同类型的变量可以做不同的事情)。谈论原始类型的文字,如字符串,数字和布尔值,这是很常见的。这是一个字符串文字示例:

let myStr = 'word'; 

在这种情况下,word是一个字符串文字;你已经创建了一些字符串类型的东西。在JS中,您也可以拥有对象文字。也就是说,你可以在大括号之间输入这个东西,它自动成为对象类型的东西。

let mylitteralObject = {};

我们在不使用运算符的情况下创建了一个对象(运算符本质上是一个内置函数,使用熟悉的语法,如'+')。 JS引擎查看花括号,确定你声明了一个对象。

非文字方式是使用新的对象构造函数。

let myConstructedObject =  new Object();

此处新关键字被视为operator

答案 4 :(得分:0)

我一直在为此苦苦挣扎。虽然我发现上述答案很有用,但在Webopedia中找到了literal的简单定义:

  

在编程中,一个完全按照其含义编写的值。相反,变量是可以在程序执行期间表示不同值的名称。常量是在整个程序中代表相同值的名称。但是文字不是名称,而是名称本身。

     

文字可以是数字,字符或字符串。例如,在表达式中,

     

x = 3

     

x是一个变量,3是一个文字。

真正让我难忘的是

  

但是文字不是名称,而是名称本身。

此外,此StackOverflow post也非常有帮助。我对此表示赞赏:

  

表示程序中值的基本代码,而不是要执行的程序具有特殊含义的代码。例如:15从字面上意味着在程序vs +中有15个,其特殊含义是“将两件事加在一起”。您不会将+视为代表加号本身,因为它不是文字。

这个答案很有帮助:

  

简单示例:

     

int my_int_var = 723;

     

723-这组字符指的是文字整数值。

     

my_int_var-这组字符引用可变的整数值。