Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.07.2013, 23:39
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

undefined vs 'undefined'
Раньше всегда проверял на неопределенность так: x === 'undefined'
Сейчас обнаружил, что существует два вида undefined. Допустим, i элемент массива не определен. Тогда
typeof arr[i] === undefined, typeof arr[i] === 'undefined', arr[i] === undefined, arr[i] === 'undefined'

Выдаст: false, true, true, false. И в консоли слово undefined будет в одном случае строкой, а в другом спец. понятием серого цвета.

Что за дела?
Ответить с цитированием
  #2 (permalink)  
Старый 29.07.2013, 23:54
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Shitbox2,
и что не так?
typeof возвращает строку?
в остальных случаях используется константа.

я обычно делаю так, для проверки на undefined

var undef; // для лучше сжатия.

var arr = [1,2 ,0];

if(arr[2] == undef)
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #3 (permalink)  
Старый 30.07.2013, 00:21
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

http://es5.javascript.ru/x11.html#x11.4.3
Ответить с цитированием
  #4 (permalink)  
Старый 30.07.2013, 01:41
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

А что быстрее работает typeof или проверка конкретного значения на неопределенность?
Ответить с цитированием
  #5 (permalink)  
Старый 30.07.2013, 02:02
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Shitbox2
А что быстрее работает typeof или проверка конкретного значения на неопределенность?
накидай тест на jsperf.com, сделай полезное дело ) Но сначала поищи готовый. Может кто уже тестил.
Я думаю что строки сравниваются дольше конечно же.
Ответить с цитированием
  #6 (permalink)  
Старый 30.07.2013, 08:16
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Хорошая идея! Совсем забыл про этот сайт

typeof x === 'undefined' — 100%
typeof x === typeof void(0) — 100%
typeof x === typeof void 0 — 90%
typeof x === typeof undefined — 90%
x === undefined — 90%
angular.isUndefined(x) — 50%
Ответить с цитированием
  #7 (permalink)  
Старый 30.07.2013, 09:30
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

А ссылку?
Ответить с цитированием
  #8 (permalink)  
Старый 30.07.2013, 17:41
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Эм... Так это на основании нескольких уже существующих тестов
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Google Chrome: GET http://url/url undefined (undefined) Kirumbik Opera, Safari и др. 0 07.05.2011 23:26
Чем отличается undefined от null hrundel Общие вопросы Javascript 21 01.01.2011 22:06
Область видимости внутри функций FiMko Общие вопросы Javascript 12 02.11.2010 03:01
Операторы сравнения, null, undefined, number 0, empty string("") alexeis Общие вопросы Javascript 5 28.09.2010 21:11