это массив или объект ?
var task =[
{
"name" : "",
"symbol" : "H",
"atomic" : "1",
"mass" : "",
"num_of_ne":"0",
"num_of_ele":"",
"answer" : {
"name" : "Hydrogen",
"symbol" : "",
"atomic" : "",
"mass" : "1",
"num_of_ne":"",
"num_of_ele":"0"
}
},
]
JavaScript
Вопрос по типу переменной на javascript
Это массив, в массиве объект. В объекте ещё один объект. Массив тоже является объектом.
По идеологии ООП всё должно быть объектом.
Оператор typeof(task) возвращает тип (как строку). Для массива вернёт "object".
Отличить массив от других объектов можно так:
task.constructor == Array
или так:
task.constructor.name // результат: "Array"
По идеологии ООП всё должно быть объектом.
Оператор typeof(task) возвращает тип (как строку). Для массива вернёт "object".
Отличить массив от других объектов можно так:
task.constructor == Array
или так:
task.constructor.name // результат: "Array"
Добавлю к лучшему ответу еще мелкую инфу:
• в JS не все является объектом, есть и примитивы (boolean, number, string, и т. д.)
• тип объекта определяется его прототипом. В прототипе хранятся общие методы
• объект прототипа тоже может иметь свой прототип (так в JS реализуется наследование)
• по правилам языка, объектные типы (и их функции-конструкторы) именуются с заглавной буквы, а экземпляры объектов - со строчной
• корректный способ проверки на объектный тип - не через конструктор, а оператором instanceof (он проверяет всю цепочку прототипов). Например, в данном случае, task instanceof Array вернет true, а task[0] instanceof Array - false. При проверке их на instanceof Object, результат будет true в обоих случаях, так как прототипом Array является Object.
• в JS не все является объектом, есть и примитивы (boolean, number, string, и т. д.)
• тип объекта определяется его прототипом. В прототипе хранятся общие методы
• объект прототипа тоже может иметь свой прототип (так в JS реализуется наследование)
• по правилам языка, объектные типы (и их функции-конструкторы) именуются с заглавной буквы, а экземпляры объектов - со строчной
• корректный способ проверки на объектный тип - не через конструктор, а оператором instanceof (он проверяет всю цепочку прототипов). Например, в данном случае, task instanceof Array вернет true, а task[0] instanceof Array - false. При проверке их на instanceof Object, результат будет true в обоих случаях, так как прототипом Array является Object.
Ярослав сказал:
> в JS не все является объектом, есть и примитивы (boolean, number, string, и т. д.)
Комментатор Ярослав видать уже засиделся на ответах и у него начал развиваться рак мозга. Наверное он думает, что и оператор вызова функции, и аргументы функции тоже не являются объектами. )))
> в JS не все является объектом, есть и примитивы (boolean, number, string, и т. д.)
Комментатор Ярослав видать уже засиделся на ответах и у него начал развиваться рак мозга. Наверное он думает, что и оператор вызова функции, и аргументы функции тоже не являются объектами. )))
Похожие вопросы
- глобальные/локальные переменные в JavaScript
- Как удалить переменную в javascript ?
- Целесообразно ли хранение синтаксиса javascript в переменной?
- Помогите с JavaScript (локальные/глобальные переменные/функции)
- JavaScript. Как проверить, была ли определена переменная?
- Видимость переменной JavaScript
- JavaScript как правильно присвоить дату в переменную?
- Javascript, как быть с переменными?
- почему в javascript в функцию можно передавать параметры без типа?
- Есть ли аналоги JavaScript?