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

ber*_*436 29 javascript json

Javascript:好的部分道格拉斯克罗克福德写道,Javascript的一个好主意是"表达对象字面符号".我知道他基本上是在称赞JSON.

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

Bol*_*wyn 28

关于"赞美JSON":他指定了它.

"文字"部分:谷歌搜索"对象文字"提供了两个顶级资源:MDN维基百科.引用后者:

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

基本上,所有使用导致已定义类型的语法结构都可以称为文字.(例如,一个字符串,"abc")这是一个技术术语,表示,在这一点,"字面意思为"写的东西还是那个样子导致一定类型的变量独家(与结构,看起来像别的东西,像array()在PHP) .


cha*_*ham 8

作为一个刚接触编程的人,我真的很纠结于文字的概念。解释通常假设您已经了解所有关于类型和构造函数的知识。所以这是我(过度)简化的看法:

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

let myStr = 'word'; 
Run Code Online (Sandbox Code Playgroud)

在这种情况下word是一个字符串文字;您已经创建了字面意义上的字符串类型的东西。

在 JS 中,您也可以拥有对象字面量。也就是说,你可以在花括号之间输入这个东西,它自动成为对象类型的东西。

let mylitteralObject = {};
Run Code Online (Sandbox Code Playgroud)

我们已经创建了一个不使用运算符的对象(运算符本质上是一个使用熟悉的语法的内置函数,如“+”)。JS 引擎查看花括号并确定您正在声明一个对象。

一种非字面的方法是使用对象构造函数 - 一个与new关键字组合以创建新对象的函数。?

let myConstructedObject =  new Object();
Run Code Online (Sandbox Code Playgroud)

此处将新关键字视为操作符。因此,里面的数据myConstructedObject是表达式评估的结果。


Aag*_*eif 7

好吧,通常在编程中,文字是固定值。就像var five = 5;在一些数学中说和使用“五” 一样,只需按数字使用数字5。

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

var new_dog = {
    name: "doggy",
    good_dog: false
};
Run Code Online (Sandbox Code Playgroud)

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

  • 你为什么把它变成一只坏狗?:( (3认同)

Ale*_*der 6

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

var someObject = {
    some_prop: 'some string value',
    another_prop: 'another string value',
    int_prop: 100
};
Run Code Online (Sandbox Code Playgroud)

它是“平的”。您创建它,向其添加属性和方法,所有这些属性和方法都是 public 。对象字面量是使用以下语法规则形成的:

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

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

尽管 JavaScript 对象字面量和 JavaScript 实例对象都是对象,但它们的内在性质和特征有所不同


Dan*_*lem 5

我自己也一直在为此苦苦挣扎。虽然我发现上面的答案很有帮助,但我literalWebopedia中找到了一个简单的定义:

在编程中,指的是完全按照其应解释的方式编写的值。相反,变量是在程序执行过程中可以表示不同值的名称。常量是在整个程序中表示相同值的名称。但文字不是名称——它是值本身。

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

x = 3

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

真正让我印象深刻的是

但文字不是名称——它是值本身。

此外,这篇StackOverflow 帖子也非常有帮助。我很欣赏这个评论:

基本上,代码代表程序中的值,而不是对要执行的程序具有特殊含义。例如:15在程序中字面意思是十五,而+则有“两件事相加”的特殊含义。您不会将 + 视为代表加号本身,因为它不是文字。

这个答案很有帮助:

快速示例:

int my_int_var = 723;

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

my_int_var - 这组字符指的是可变整数值。