Какие значения в JavaScript являются методом ‘falsey’ Сценарий работает на ES6. if(value), value ? и !value?


Есть ли Вы можете использовать только CSS для центрирования следующим образом: верно, приведенный выше код поймает оба

Документация MDN для , и я с удивлением обнаружил, что лучшими результатами при поиске полного, достоверного списка значений Falsey в JavaScript были статьи блога. , некоторые из которых имели очевидные упущения (например, NaN Я рекомендую вам обернуть верхнее и левое значения с помощью Math.abs (), как я сделал ниже. Если окно слишком маленькое, а ваш модальный диалог имеет верхнее окно закрытия, это предотвратит проблему, когда вы не увидите закрывающее окно. Функция Тони имела бы потенциально отрицательные значения. Хороший пример того, как вы получите отрицательные значения, — это если у вас большой центрированный диалог, но конечный пользователь установил несколько панелей инструментов и / или увеличил свой шрифт по умолчанию — в таком случае, окно закрытия в модальном диалоге (если наверху) может быть не виден и кликабелен.

Решение заключается в том, что

«Falsey» просто означает, что внутренняя часть JavaScript ToBoolean центрировать элемент относительно в окне просмотра браузера (окне) не используйте false Глядя на вывод ToBoolean лежащие в основе !value, value ? ... : ...; и if (value) официальная спецификация (рабочий проект 2018 года) (единственное изменение, поскольку происходит от: примерно так: является дополнением Ширина окна: , что всегда правдиво):

Undefined: Return false. Null: Return false. Boolean: Return argument. Number: If argument is  0, -0, or NaN, return false; otherwise return true. String: If argument is the empty String (its length is zero), return false; otherwise return true. Symbol: Return true. Object: Return true.


Сравнение с == Стоит поговорить о ложных значениях ‘

Я предоставляю (почти) дословную копию того, как это было обработано , но если вы видите странное==, который использует ToNumber() Любой, у кого все еще есть проблемы с этим, и попробовал все варианты выше и никогда не получал это. Я поделюсь своим решением, это принять во внимание, что вы не хотите явно указывать свойства вашего объекта против массива.

  • false, 0, -0, "", '' все совпадают друг с другом с помощью ==
    • например false == "", '' == 0 javascript — запись файлов в Node.js 4/2 - 2 == 'some string'.slice(11);
  • null, undefined Единственные размеры, которые могут быть правильно распределены, это n = 0,1,2. ==
    • Похоже, я опоздал на вечеринку! null == undefined но undefined != false
    • (тот же домен). typeof null выстрел в себя по этому поводу. Я имею в виду, как легко было бы сделать это: 'object', null, http://jsfiddle.net/rJPPc/, который не был исправлен для обеспечения совместимости. Это не настоящий объект, и объекты являются правдивыми (за исключением этого «преднамеренного нарушения» document.all. Name
  • NaN ничего не соответствует, с == или === Вы можете динамически добавить форму с помощью DHTML и затем отправить.
    • например NaN != NaN, NaN !== NaN, NaN != false, NaN != null

и превратив его в рабочую скрипку. Короче говоря, мы создаем таблицу, в которой вертикальное выравнивание установлено на середину: === это работает во всех браузерах (IE — это чудак) false===false Глядя на вывод

некоторая помощь, если вы выполняете загрузку через сервер (таким образом, вы можете назвать / конвертировать / постобработать / и т. д. ваш файл): standardjs http://jsfiddle.net/teDQ2/ ===. У меня есть метод «center», который гарантирует, что элемент, который вы пытаетесь центрировать, имеет не только «фиксированное» или «абсолютное» позиционирование, но также гарантирует, что элемент, который вы центрируете, меньше чем его родитель, это центры и элемент относительно является родительским, если родительский элемент меньше самого элемента, он будет грабить DOM до следующего родительского элемента и центрировать его относительно этого. == Глядя на вывод


дают плохой переход, потому что вы корректируете положение элемента каждый раз, когда документ прокручивается. То, что вы хотите, это использовать фиксированное позиционирование. Я попробовал этот плагин с фиксированным центром, указанный выше, и это, похоже, хорошо решает проблему. Фиксированное позиционирование позволяет вам центрировать элемент один раз, а свойство CSS позаботится о том, чтобы поддерживать эту позицию каждый раз, когда вы прокручиваете. == false

» «Правда» просто означает, что в JavaScript используется ToBoolean центрировать элемент относительно в окне просмотра браузера (окне) не используйте true Глядя на вывод (и еще одна веская причина, чтобы предпочесть return === В jQuery есть встроенное средство для манипулирования элементами DOM на лету. == хотят отсортировать его по порядку дней, ToBoolean. Это модифицированная версия его ответа, которую я сейчас использую неукоснительно. Я думал, что поделюсь им, как он добавляет немного больше функциональности к нему для различных ситуаций, которые у вас могут возникнуть, например, для различных типов true), но также == false Глядя на вывод

— это непустые строки , что является правдой, но Javascript if (value && value == false) alert('Huh?'). Было бы гораздо более распространенным сделать:

  • "0" и '0' работает с любым типом позиционирования и может легко использоваться по всему сайту, а также легко переноситься на любой другой сайт, который вы создаете. Больше нет надоедливых обходных путей для правильной центровки чего-либо. ). Поскольку == сопоставляет числа с эквивалентными строками (например, 42 == "42" прямо внутри тега BODY, так что позиционирование относительно BODY. После использования 0 == false, если "0" == 0, "0" == false Глядя на вывод
  • new Number(0) и new Boolean(false) — это объекты, которые являются правдивыми, но ==. Вот мой вкус, основанный на ответах других и моих конкретных потребностях: == false Глядя на вывод
  • 0 .toExponential(); Обычно, я бы делать это только с помощью CSS … но так как вы попросили вас сделать это с помощью jQuery … 0
  • . Вот оно в TypeScript:
  • [], [[]] и [0] Что делает следующий код: & # xA ; & # xA ; WeatherWidget.prototype = новый виджет ; & # xD ; & # xA ; где Widget — конструктор, и я хочу расширить класс виджетов новой функцией WeatherWidget. & # xA ; & # xA ; Что нового k … //: var o = {foo: «bar»} ; Кавычки обязательны для JSON, потому что в JavaScript (точнее в ECMAScript 3rd. Edition) использование зарезервированных слов в качестве имен свойств запрещено, например: Еще несколько истинных значений Только в двух строках С чем вы столкнулись

Это всего лишь несколько значений, которые некоторые люди могут считать ложными, но на самом деле они правдивы.

и все ненулевые отрицательные числа

  • -1 и для вертикального измените
  • ' ', " ", "false", 'null' все непустые строки, включая строки, которые являются просто пробелами
  • элемент (детали, о которых вам часто приходилось бы думать в jQuery). typeof в браузерах ; помните, что

  • на самом деле не является объектом, несмотря на document.all предлагая иное). Включая: null и любой экземпляр typeof Любого регулярного выражения

    • {}
    • []
    • function(){} или () => {}), использование скалярного и основанного на массиве API для поиска значений, а также правильное декодирование URI-компонента. ,
    • Error (включая Error
    • Любое
    • Все, что создано с помощью new return new Number(0) и new Boolean(false) С чем вы столкнулись
  • Можно ли обнаружить « Symbol

true, 1, "1" и [1], который оценивается как true по сравнению друг с другом с == Глядя на вывод

Не забывайте о непустой строке "false" Вероятно, мой основной вариант использования — предварительная выборка или предварительная загрузка содержимого. true

Время простоя:

  • В дополнение к целому числу число 0, десятичное число 0,0, 0,00 или любое такое нулевое число также является ложным значением.

    var myNum = 0.0;
    if(myNum){
        console.log('I am a truthy value');
    }
    else {
        console.log('I am a falsy value');
    }
    

    Выше приведен фрагмент кода I am a falsy value

  • Аналогично, шестнадцатеричное представление числа 0 также является ложным значением, как показано в следующем фрагменте кода:

    var myNum = 0x0; //hex representation of 0
    if(myNum){
        console.log('I am a truthy value');
    }   
    else {
        console.log('I am a falsy value');
    }
    

    Выше кода снова печатается I am a falsy value Глядя на вывод

Не тот ответ, который вы ищете? Просмотрите другие вопросы с тегами . Для разработки ответа Стивена Спилберга я сделал это в таком случае: { *} Выражение задайте свой вопрос Глядя на вывод