Необработанный тип для пустой строки не работает [закрыто]

Я только что открыл новый способ сделать это во время возиться, я не совсем уверен, как это работает (если кто-то хочет объяснить, пожалуйста).

Кажется, что он работает очень хорошо, и не требует двойного фона или JavaScript.

Вот код: JSFIDDLE

body {
  padding: 0;
  margin: 0;
}

div {
  background: url(http://www.color-hex.com/palettes/26323.png) repeat;
  width: 100vw;
  height: 100vh;
}

body::before {
  content: '$ALPHABET';
  left: 0;
  top: 0;
  position: absolute;
  color: #222;
  background-color: #fff;
  padding: 1rem;
  font-family: Arial;
  z-index: 1;
  mix-blend-mode: screen;
  font-weight: 800;
  font-size: 3rem;
  letter-spacing: 1rem;
}

0
задан jonrsharpe 15 January 2019 в 18:13
поделиться

2 ответа

вы пропускаете ваше заявление return, поэтому ваши function возвращают undefined

const isEmpty = value => {
  //you are not returning anything
  return value === undefined ||
    typeof value === "undefined" ||
    value === null ||
    (typeof value === "object" && Object.keys(value).length === 0) ||
    (typeof value === "string" && value.trim().length === 0);
};

const data = {};
data.handle = !isEmpty(data.handle) ? data.handle : "";
console.log("data.handle is still undefined: " + typeof data.handle);

if (typeof data.handle === "undefined") {
  data.handle = "";
  console.log("empty string yes!!!");
}

0
ответ дан Prince Hernandez 15 January 2019 в 18:13
поделиться

MDN - функции стрелок

Функции стрелок могут иметь либо «краткое тело», либо обычное «тело блока».

В кратком теле указано только выражение, которое становится неявным возвращаемым значением. В теле блока вы должны использовать явный оператор возврата.

Поскольку вы заключили свой метод в фигурные скобки, он считается телом блока .

Либо добавьте return перед ним, либо еще проще, сделайте его лаконичным, убрав фигурные скобки:

const isEmpty = value =>
  value === undefined ||
  typeof value === "undefined" ||
  value === null ||
  (typeof value === "object" && Object.keys(value).length === 0) ||
  (typeof value === "string" && value.trim().length === 0);

const data = {};
data.handle = !isEmpty(data.handle) ? data.handle : "";
console.log("data.handle is still undefined: " + typeof data.handle);

if (typeof data.handle === "undefined") {
  data.handle = "";
  console.log("empty string yes!!!");
}
[113 ]

0
ответ дан Tyler Roper 15 January 2019 в 18:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: