Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.01.2023, 18:20
Новичок на форуме
Отправить личное сообщение для andriy159 Посмотреть профиль Найти все сообщения от andriy159
 
Регистрация: 24.05.2015
Сообщений: 6

Почему моя функция работает в NodeJS но не работает в JS бравзера
function is(e){return typeof e=='undefined'?false:true}

Идея в том, чтоб удобней и сжато проверять 'undefined', ведь синтаксис JS хорош в первую очередь для сжатия и полезен для небольшого трафика

Если вызвать is(ddddd) в NodeJS, то функция вернет результат false, что будет значить, что переменной не существует. Но бравзер вернет ошибку до входа в функцию. Это нельзя пофиксить?
Ответить с цитированием
  #2 (permalink)  
Старый 18.01.2023, 18:26
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Нельзя. Если переменная не объявлена - она не объявлена. Не объявленную переменную нельзя использовать. Схрена ли оно вообще работает у тебя в ноде - непонятно: у меня например падает как и должно:
node -e "function is(e){return typeof e=='undefined'?false:true} console.log(is(ddddd))"
__________________
29375, 35

Последний раз редактировалось Aetae, 18.01.2023 в 18:28.
Ответить с цитированием
  #3 (permalink)  
Старый 18.01.2023, 20:00
Новичок на форуме
Отправить личное сообщение для andriy159 Посмотреть профиль Найти все сообщения от andriy159
 
Регистрация: 24.05.2015
Сообщений: 6

Да, действительно верно... Я по другому делал. Забыл.

d={}
is(d.s) - работает
is(d.s.s) - не работает

Все понятно теперь. Спасибо

Последний раз редактировалось andriy159, 18.01.2023 в 20:05.
Ответить с цитированием
  #4 (permalink)  
Старый 18.01.2023, 21:28
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

andriy159, если работаешь с объектами удобная проверка на null\undefined - optional chaining:
const foo = {};
const maybe = foo?.a?.b?.c?.d;
if (!maybe) return;
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 18.01.2023, 23:15
Новичок на форуме
Отправить личное сообщение для andriy159 Посмотреть профиль Найти все сообщения от andriy159
 
Регистрация: 24.05.2015
Сообщений: 6

Спасибо!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
почему эта функция работает только в FF ? booratino Javascript под браузер 5 07.02.2017 09:20
Mootools функция periodical не работает по id Jumong Общие вопросы Javascript 2 11.09.2010 16:42
Почему не работает функция js? oliwin Общие вопросы Javascript 2 11.07.2010 13:16
Почему это работает? (инклуд JS в JS) Василий Б. Общие вопросы Javascript 4 11.06.2010 12:41
Почему не работает JS с подгруженными в DOM элементами? V-z-z-HobboT jQuery 6 30.03.2009 14:02