Почему моя функция работает в NodeJS но не работает в JS бравзера
function is(e){return typeof e=='undefined'?false:true}
Идея в том, чтоб удобней и сжато проверять 'undefined', ведь синтаксис JS хорош в первую очередь для сжатия и полезен для небольшого трафика Если вызвать is(ddddd) в NodeJS, то функция вернет результат false, что будет значить, что переменной не существует. Но бравзер вернет ошибку до входа в функцию. Это нельзя пофиксить? |
Нельзя. Если переменная не объявлена - она не объявлена. Не объявленную переменную нельзя использовать. Схрена ли оно вообще работает у тебя в ноде - непонятно: у меня например падает как и должно:
node -e "function is(e){return typeof e=='undefined'?false:true} console.log(is(ddddd))" |
Да, действительно верно... Я по другому делал. Забыл.
d={} is(d.s) - работает is(d.s.s) - не работает Все понятно теперь. Спасибо |
andriy159, если работаешь с объектами удобная проверка на null\undefined - optional chaining:
const foo = {}; const maybe = foo?.a?.b?.c?.d; if (!maybe) return; |
Спасибо!
|
Часовой пояс GMT +3, время: 09:54. |