В чем смысл "буквального" в условной литературе фразы?
В Javascript: "Хорошие детали" Дуглас Крокфорд пишет, что одна из хороших идей Javascript - "буквальная буквальная буква". Я понимаю, что он в основном комплимент JSON.
Но что такое "буквальный" об этой нотации? Существуют ли другие языки, которые используют "выразительную литературу объекта"? Есть ли языки, которые этого не делают? Что он имеет в виду?
Ответы
Ответ 1
О "комплиментации JSON": он указал его.
"Литеральная" часть: "Литерал объектов" в Googling предоставляет два главных ресурса: MDN и Wikipedia. Чтобы процитировать последнее:
В информатике литерал представляет собой обозначение для представления фиксированного значения в исходном коде. Почти все языки программирования имеют обозначения для атомных значений, таких как целые числа, числа с плавающей запятой и строки, и обычно для булевых символов и символов; некоторые также имеют обозначения для элементов перечисляемых типов и составных значений, таких как массивы, записи и объекты.
В принципе, все синтаксические конструкции, использование которых приводит к определенному типу, можно назвать литералом. (Например, строковый литерал, "abc"
.) Это технический термин, который означает, что "буквально" что-то пишется тем или иным способом приводит исключительно к типизированной переменной (в отличие от конструкций, которые выглядят как что-то еще, например array()
в PHP).
Ответ 2
Что ж, в программировании вообще литерал - это фиксированное значение. Как сказать, var five = 5;
и используя "пять" в некоторой математике, просто используйте число 5 буквально.
Таким образом, в языке ООП объектный литерал будет выглядеть примерно так:
var new_dog = {
name: "doggy",
good_dog: false
};
Все это мой объект. Вещи между моими {} являются моими литералами. Моя нотация это шаблон "имя: значение".
Ответ 3
Литеральный объект - это список пар имен, разделенных запятыми, завернутый в фигурные скобки. В JavaScript литерал объекта определяется следующим образом:
var someObject = {
some_prop: 'some string value',
another_prop: 'another string value',
int_prop: 100
};
Он "плоский". Вы создаете его, добавляете к нему свойства и методы, и все эти свойства и методы являются общедоступными.
Объектные литералы формируются с использованием следующих правил синтаксиса:
- Двоеточие отделяет имя свойства от значения.
- Запятая отделяет каждую пару имя/значение от следующей.
- После пары имен/значений не может быть запятой. Но в этом случае Internet Explorer до версии 9 обычно вызывает ошибку: "Ожидаемый идентификатор, строка или номер".
Значения могут быть любого типа данных, включая литералы массивов, функции и литералы вложенных объектов.
Хотя объектный объект JavaScript и объект экземпляра JavaScript являются обоими объектами, они отличаются свойственной природой и функциями
Ответ 4
Как кто-то, кто плохо знаком с программированием, я действительно боролся с идеей литералов. Объяснения часто предполагают, что вы уже знаете все о типах и конструкторах. Так что это мой (более) упрощенный подход:
Под "типом" мы подразумеваем классификацию переменной (разные типы переменных могут делать разные вещи). Обычно говорят о литералах примитивного типа, таких как строки, числа и логические значения. Вот пример строкового литерала:
let myStr = 'word';
В этом случае word
является строковым литералом; вы создали что-то буквально строковое.
В JS вы также можете иметь объектные литералы. То есть вы можете просто напечатать эту вещь между фигурными скобками, и она автоматически становится объектной.
let mylitteralObject = {};
Мы создали объект без использования оператора (оператор по сути является встроенной функцией, использующей знакомый синтаксис, такой как "+"). Движок JS смотрит на фигурные скобки и определяет, что вы объявляете объект.
Беспоставочный буквальный способом является использование объекта конструктора - функция, которая в сочетании с new
ключевым словом, чтобы сделать новый объект.
let myConstructedObject = new Object();
Здесь новое ключевое слово рассматривается как оператор. Таким образом, данные внутри myConstructedObject
являются результатом оценки выражения.
Ответ 5
Я боролся с этим сам. Хотя я нашел полезные ответы, я нашел простое определение для literal
в Webopedia:
В программировании значение записывается именно так, как оно должно быть интерпретировано. Напротив, переменная - это имя, которое может представлять различные значения во время выполнения программы. А константа - это имя, представляющее одно и то же значение в программе. Но литерал - это не имя, а само значение.
Литерал может быть числом, символом или строкой. Например, в выражении
x = 3
x - это переменная, а 3 - литерал.
То, что действительно показалось мне, было
Но литерал - это не имя, а само значение.
Кроме того, этот пост Кару также очень полезен. Я оценил этот комментарий:
В основном код, который представляет значение в программе вместо того, чтобы иметь особое значение для выполнения программы. Например: 15 буквально означает пятнадцать в программе vs +, которая имеет особое значение "сложить две вещи вместе". Вы бы не рассматривали + как знак плюса, поскольку он не является литералом.
И этот ответ был полезен:
Quick example:
int my_int_var = 723;
723 - этот набор символов относится к буквальному целочисленному значению.
my_int_var - этот набор символов относится к целочисленному значению переменной.