Я только что открыл новый способ сделать это во время возиться, я не совсем уверен, как это работает (если кто-то хочет объяснить, пожалуйста).
Кажется, что он работает очень хорошо, и не требует двойного фона или 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;
}
вы пропускаете ваше заявление 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!!!");
}
Функции стрелок могут иметь либо «краткое тело», либо обычное «тело блока».
В кратком теле указано только выражение, которое становится неявным возвращаемым значением. В теле блока вы должны использовать явный оператор возврата.
blockquote>Поскольку вы заключили свой метод в фигурные скобки, он считается телом блока .
Либо добавьте
return
перед ним, либо еще проще, сделайте его лаконичным, убрав фигурные скобки:
[113 ]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!!!"); }
0ответ дан Tyler Roper 15 January 2019 в 18:13поделиться