Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.10.2014, 11:15
Кандидат Javascript-наук
Отправить личное сообщение для zhurchik Посмотреть профиль Найти все сообщения от zhurchik
 
Регистрация: 04.06.2011
Сообщений: 116

Отрицательные свойства у объекта
Приветствую.
Допустимо ли задавать отрицательные свойства тому или иному объекту?
К примеру:
var obj = {-1:"a",-2:"b",-3:"nnn"}

Если да, то нужно ли отрицательные цифры обрамлять кавычками или нет?
Ответить с цитированием
  #2 (permalink)  
Старый 24.10.2014, 11:25
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,209

Сообщение от zhurchik
Допустимо ли задавать отрицательные свойства тому или иному объекту?
К примеру:
var obj = {-1:"a",-2:"b",-3:"nnn"}
Такая запись уже дает ошибку синтаксиса...
Ответить с цитированием
  #3 (permalink)  
Старый 24.10.2014, 11:26
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,209

Сообщение от zhurchik
нужно ли отрицательные цифры обрамлять кавычками или нет?
Так же легко проверить...

var obj = {'-1':"a",'-2':"b",'-3':"nnn"};
alert(obj['-1']);
Ответить с цитированием
  #4 (permalink)  
Старый 24.10.2014, 11:39
Кандидат Javascript-наук
Отправить личное сообщение для zhurchik Посмотреть профиль Найти все сообщения от zhurchik
 
Регистрация: 04.06.2011
Сообщений: 116

ksa,
Я проверял, но я просто боюсь, что это может быть не по стандарту и, например, не работать в более менее старых браузерах.
Почему то у меня запись без кавычек (в хроме) не дает ошибки.

То есть, выходит что отрицательные имена свойствам допустимы?
Ответить с цитированием
  #5 (permalink)  
Старый 24.10.2014, 12:01
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,209

Сообщение от zhurchik
Почему то у меня запись без кавычек (в хроме) не дает ошибки.
То есть, выходит что отрицательные имена свойствам допустимы?
Я в Опере смотрел... Там ошибка синтаксиса...
Ответить с цитированием
  #6 (permalink)  
Старый 24.10.2014, 12:28
Кандидат Javascript-наук
Отправить личное сообщение для zhurchik Посмотреть профиль Найти все сообщения от zhurchik
 
Регистрация: 04.06.2011
Сообщений: 116

ksa,
Какая версия оперы? Вебкит?
Именно без кавычек выдает ошибку? А с кавычками нормально?
Ответить с цитированием
  #7 (permalink)  
Старый 24.10.2014, 14:46
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,209

Сообщение от zhurchik
Какая версия оперы?
О программе
Информация о версии
Версия: 12.17
Сборка: 1863
Платформа: Win32
Система: Windows 7
Сообщение от zhurchik
Именно без кавычек выдает ошибку?
Да
Сообщение от zhurchik
А с кавычками нормально?
Да
Ответить с цитированием
  #8 (permalink)  
Старый 24.10.2014, 14:55
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Собственно, обращаться-то можно и без кавычек:
var test = { "-1": -1, "[object Object]": {} };
test[-2] = -2;
alert([   test[-1], test[-2], test[{}]   ]);
Ответить с цитированием
  #9 (permalink)  
Старый 24.10.2014, 15:39
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,583

Ключи объекта всегда строки. При обращении через квадратные скобки любая не-строка будет приведена к строке. Вот и всё.
__________________
29375, 35
Ответить с цитированием
  #10 (permalink)  
Старый 24.10.2014, 16:33
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Кстати, пустая строка - тоже строка, и может быть ключом:

var obj = {'': 'yes'};
alert(obj['']);
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор случайного свойства объекта Аленький цветочек Общие вопросы Javascript 6 08.12.2013 11:44
Свойства объекта, методы и this. Почему свойство вызывается с () ? jsuse Общие вопросы Javascript 2 04.11.2011 20:39
IE 8 Не удалось получить значение свойства "match": значением объекта является null abstract Internet Explorer 2 26.08.2011 15:27
Как при чтении или записи свойства объекта вызывать функцию danik.js Общие вопросы Javascript 3 16.09.2010 17:57
Можно ли использовать функции в качестве свойства абс_позиционируемого объекта Newgen Элементы интерфейса 1 27.07.2009 14:40