2015-03-16 1 views
0

Возможно, это кажется глупым вопросом, но я спрашиваю, потому что я только что узнал о регулярных выражений литералов:Какие типы литералов поддерживает Javascript?

var foo = /ba+r/s; 

что эквивалентно

var foo = new RegExp('ba+r', 's'); 

Что заставило меня думать, какие другие литералов делает Javascript поддержка? Документация на

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Grammar_and_types

упоминает строку, массив объектов, и число литералов, но это не говоря уже о функции или регулярное выражение литералов.

Полный список литератур Javascript?

ответ

2

В ECMAScript 5, это определено в разделе 7.8:

7.8 - Literals (Буквенный)

Помимо них, есть также инициализаторов, которые подобны литералов:

  • 11.1.4 - Array Initialiser (ArrayLiteral)

    Массив инициализатора это выражение, описывающее инициализацию объекта Array, записанное в виде литерала.

  • 11.1.5 - Object Initialiser (ObjectLiteral)

    Объект инициализатора является выражение, описывающее инициализацию объекта, написанный в форме, напоминающей буквальным.

+0

Thanks, Oriol. Понимать, что «функциональный литерал» является неправильным? – petehern

+1

@petehern Я не могу найти ссылку на «функциональный литерал» в спецификации, и я никогда не слышал об этом. Может быть, вы имеете в виду ["выражение функции" или "объявление функции"] (http://www.ecma-international.org/ecma-262/5.1/#sec-13)? – Oriol

+0

Иногда вы видите неназванные функции, например 'var foo = function() {alert (" hello ");}' вызываемый литерал функции. Это неправильная номенклатура? (т. е. неименованная функция не является литералом?) – petehern