/** * js轉換成布爾值 * a.轉換方法:Boolean(var) * b.數字轉換成布爾,除了0與NaN,其余都是true * c.字符串轉換成布爾,除了空串"",其余都是true * d.null與undefined會轉換成false * e.對象會轉換成true */ // 數字 var foo = 1888; console.log(`typeof foo: ${typeof foo}, Boolean(foo): ${Boolean(foo)}`); // typeof foo: number, Boolean(foo): true // 0 var foo = 0; console.log(`typeof foo: ${typeof foo}, Boolean(foo): ${Boolean(foo)}`); // typeof foo: number, Boolean(foo): false // NaN var foo = NaN; console.log(`typeof foo: ${typeof foo}, Boolean(foo): ${Boolean(foo)}`); // typeof foo: number, Boolean(foo): false // 字符串 var foo = 'hello'; console.log(`typeof foo: ${typeof foo}, Boolean(foo): ${Boolean(foo)}`); // typeof foo: string, Boolean(foo): true // '' var foo = ''; console.log(`typeof foo: ${typeof foo}, Boolean(foo): ${Boolean(foo)}`); // typeof foo: string, Boolean(foo): false // null var foo = null; console.log(`typeof foo: ${typeof foo}, Boolean(foo): ${Boolean(foo)}`); // typeof foo: object, Boolean(foo): false // undefined var foo = undefined; console.log(`typeof foo: ${typeof foo}, Boolean(foo): ${Boolean(foo)}`); // typeof foo: undefined, Boolean(foo): false // 對象 // var foo = object; // console.log(`typeof foo: ${typeof foo}, Boolean(foo): ${Boolean(foo)}`); // Uncaught ReferenceError: object is not defined // Object() var foo = Object(); console.log(`typeof foo: ${typeof foo}, Boolean(foo): ${Boolean(foo)}`); // typeof foo: object, Boolean(foo): true // new Object() var foo = new Object(); console.log(`typeof foo: ${typeof foo}, Boolean(foo): ${Boolean(foo)}`); // typeof foo: object, Boolean(foo): true // 聲明未賦值變量 var bar; console.log(`typeof bar: ${typeof bar}, Boolean(bar): ${Boolean(bar)}`); // typeof bar: undefined, Boolean(bar): false // 函數名f function f() { // } console.log(`typeof f: ${typeof f}, Boolean(f): ${Boolean(f)}`); // typeof f: function, Boolean(f): true // 函數f() function f() { // } console.log(`typeof f(): ${typeof f()}, Boolean(f()): ${Boolean(f())}`); // typeof f(): undefined, Boolean(f()): false // 函數f(a, b) // function f(a, b) { // // // } // console.log(`typeof f(a, b): ${typeof f(a, b)}, Boolean(f(a, b)): ${Boolean(f(a, b))}`); // Uncaught ReferenceError: a is not defined // 函數f(a = 0, b = '') function f(a = 0, b = '') { // } console.log(`typeof f(a = 0, b = ''): ${typeof f(a = 0, b = '')}, Boolean(f(a = 0, b = '')): ${Boolean(f(a = 0, b = ''))}`); // typeof f(a = 0, b = ''): undefined, Boolean(f(a = 0, b = '')): false // 帶返回值函數fooBar(a = 10) function fooBar(a = 10) { return a; } console.log(`typeof fooBar(a = 10): ${typeof fooBar(a = 10)}, Boolean(fooBar(a = 10)): ${Boolean(fooBar(a = 10))}`); // typeof fooBar(a = 10): number, Boolean(fooBar(a = 10)): true
