在 Javascript:好的部分 Douglas Crockford写道,Javascript的一个好主意是“表达对象字面符号”。我知道他基本上赞美JSON。
但是关于这种符号的“字面意思”是什么?是否有其他语言使用“表达对象文字符号?”那些语言不是吗?究竟是什么意思?
答案 0 :(得分:26)
关于“赞美JSON”:他指定了它。
“文字”部分:Google搜索“对象文字”提供了两个顶级资源:MDN和Wikipedia。引用后者:
在计算机科学中,文字是用于在源代码中表示固定值的符号。几乎所有编程语言都有原子值的符号,如整数,浮点数和字符串,通常用于布尔值和字符;有些还包含枚举类型和复合值元素的表示法,例如数组,记录和对象。
基本上,所有使用导致已定义类型的语法结构都可以称为文字。 (例如,一个字符串文字,"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
};
它是“平坦的”。您可以创建它,向其添加属性和方法,并且所有这些属性和方法都是公共的。 使用以下语法规则形成对象文字:
值可以是任何数据类型,包括数组文字,函数和嵌套对象文字。
虽然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-这组字符引用可变的整数值。