Name1 — непустая строка, name2 — пустая строка, name3 — null; далее boolean, number и array. Текст 'null' не равен отсутствующему значению.
Чем отличаются строка null и значение null в JSON
Name1 — непустая строка, name2 — пустая строка, name3 — null; далее boolean, number и array. Текст 'null' не равен отсутствующему значению.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Объект содержит name1:'null', name2:'', name3:null, name4:true, name5:37, name6:['str1','str2']. Назовите типы и поясните различие первых трёх значений; в реальном JSON строки заключаются в двойные кавычки.
Ответ
Name1 — непустая строка, name2 — пустая строка, name3 — null; далее boolean, number и array. Текст 'null' не равен отсутствующему значению.
Также различайте поле с null и полностью отсутствующее поле: PATCH-контракты часто трактуют их по-разному. JSON не содержит типа undefined. Валидация должна задавать тип и nullable отдельно, а не считать все falsy-значения пустыми. Массив name6 здесь содержит строки, но JSON сам не требует однородности массивов.