Учитывая, что в JavaScript
console.log("var F=new Boolean(false)")
console.log("( F != (F==false))",(( F != (F==false)) ? "TRUE" : "false"));
console.log("(!F != (F==false))",((!F != (F==false)) ? "TRUE" : "false"));
печатает:
( F != (F==false)) TRUE
(!F != (F==false)) TRUE
что означает, что булевы объекты не являются dop-in заменяет булевский примитив в типичных условиях, таких как:
if(someBoolean) ... // always true
if(!someBoolean) ... // always false
И что коллекции JavaScript Set
и Map
допускают любой тип, включая примитивы.
В чем используются булевы объекты, в частности; и объекты, представляющие другие примитивные типы в целом, так как они имеют всевозможные странности в связанных с ними связях?
Примечание. Я специально спрашиваю , какие используются прецеденты (если есть), а не , как они отличаются от их примитивных копий.