Читаю
документацию.
Вижу странную вещь.
Написано, что мол нижеприведённые реализации
Boolean'а возвращают
false:
var bNoParam = new Boolean();
var bZero = new Boolean(0);
var bNull = new Boolean(null);
var bEmptyString = new Boolean('');
var bfalse = new Boolean(false)
А вот эти всегда возвращают
true:
var btrue = new Boolean(true);
var btrueString = new Boolean('true');
var bfalseString = new Boolean('false');
var bSuLin = new Boolean('Су Лин');
var bArrayProto = new Boolean([]);
var bObjProto = new Boolean({});
Возникло 2 вопроса:
1. Для чего это вообще нужно? Я уже не первый год пишу код, но на других объектно-ориентированных языках, и это меня удивило т.к. логику не просёк. Если тип булев, для чего такие конструкторы?
2. Почему эти возвращают истину:
var bNull = new Boolean(null);
var bEmptyString = new Boolean('');
var bfalse = new Boolean(false);
не очень понятно.
А те конструкторы, которые возвращают истину тоже странные. Например:
это всё строки:
var btrueString = new Boolean('true');
var bfalseString = new Boolean('false');
var bSuLin = new Boolean('Су Лин');
как по мне, это тоже самое что и:
var bEmptyString = new Boolean('');
Но, оказывается, что оно не так.
И ещё.. это вообще используется на практике? Или это лишь нечто, что есть и не более того? Я практичного применения не увидел сразу..