//µÚÒ»¸ö£¬boolean.constructor_º¯ÊýµÄÒýÓÃ
// ´´½¨²¼¶û¶ÔÏó
var myBool = new Boolean(true);
// ·ÃÎʹ¹Ô캯Êý
printl(myBool.constructor); // Êä³ö: function Boolean() { [native code] }
// È·ÈϹ¹Ô캯ÊýµÄÀàÐÍ
printl(myBool.constructor === Boolean); // Êä³ö: true
//µÚ¶þ¸ö£¬boolean.toString___²¼¶ûת×Ö·û
// ´´½¨Ò»¸ö Boolean ¶ÔÏó
var boolTrue = new Boolean(true);
var boolFalse = new Boolean(false);
// ʹÓà toString() ·½·¨×ª»»Îª×Ö·û´®
var strTrue = boolTrue.toString(); // "true"
var strFalse = boolFalse.toString(); // "false"
// ´òÓ¡½á¹û
printl("²¼¶ûֵת»»Îª×Ö·û´®µÄ½á¹û£º");
printl("true ת»»Îª×Ö·û´®: " + strTrue); // Êä³ö: true ת»»Îª×Ö·û´®: true
printl("false ת»»Îª×Ö·û´®: " + strFalse); // Êä³ö: false ת»»Îª×Ö·û´®: false
// Ö±½ÓʹÓà Boolean ¶ÔÏó
var boolNum = new Boolean(1);
printl("²¼¶û¶ÔÏó(1)ת»»Îª×Ö·û´®: " + boolNum.toString()); // Êä³ö: true
var boolStr = new Boolean("");
printl("²¼¶û¶ÔÏó('')ת»»Îª×Ö·û´®: " + boolStr.toString()); // Êä³ö: false
//µÚÈý¸ö£¬boolean.valueOf___¶ÔÏóµÄÔʼֵ
// ´´½¨Ò»¸ö Boolean ¶ÔÏó
var bool1 = new Boolean(1); // ·ÇÁãÊý×ֻᱻÊÓΪ true
var value1 = bool1.valueOf(); // ·µ»Ø true
printl(value1); // Êä³ö: true
// ´´½¨Ò»¸ö Boolean ¶ÔÏó£¬ÖµÎª 0
var bool2 = new Boolean(0); // 0 ±»ÊÓΪ false
var value2 = bool2.valueOf(); // ·µ»Ø false
printl(value2); // Êä³ö: false
// ´´½¨Ò»¸ö Boolean ¶ÔÏó£¬ÖµÎª null
var bool3 = new Boolean(null); // null ±»ÊÓΪ false
var value3 = bool3.valueOf(); // ·µ»Ø false
printl(value3); // Êä³ö: false
// ´´½¨Ò»¸ö Boolean ¶ÔÏó£¬ÖµÎª undefined
var bool4 = new Boolean(undefined); // undefined ±»ÊÓΪ false
var value4 = bool4.valueOf(); // ·µ»Ø false
printl(value4); // Êä³ö: false
// ´´½¨Ò»¸ö Boolean ¶ÔÏó£¬ÖµÎª×Ö·û´® "hello"
var bool5 = new Boolean("hello"); // ·Ç¿Õ×Ö·û´®±»ÊÓΪ true
var value5 = bool5.valueOf(); // ·µ»Ø true
printl(value5); // Êä³ö: true
// ´´½¨Ò»¸ö Boolean ¶ÔÏó£¬ÖµÎª×Ö·û´® ""
var bool6 = new Boolean(""); // ¿Õ×Ö·û´®±»ÊÓΪ false
var value6 = bool6.valueOf(); // ·µ»Ø false
printl(value6); // Êä³ö: false
//µÚËĸö£¬prototype_À©Õ¹Ò»¸ö·½·¨
// À©Õ¹ Boolean µÄÔÐÍ£¬Ìí¼ÓÒ»¸öÃûΪ myColor µÄ·½·¨
Boolean.prototype.myColor = function () {
if (this.valueOf() === true) {
this.color = "green"; // Èç¹û²¼¶ûֵΪ true£¬ÉèÖÃÑÕɫΪÂÌÉ«
} else {
this.color = "red"; // Èç¹û²¼¶ûֵΪ false£¬ÉèÖÃÑÕɫΪºìÉ«
}
}
// ´´½¨²¼¶û¶ÔÏó
var a = new Boolean(1); // ´´½¨Ê±´«Èë 1£¬Ï൱ÓÚ true
a.myColor(); // µ÷ÓÃ myColor ·½·¨
// »ñÈ¡ color ÊôÐÔ
var b = a.color; // ½á¹ûΪ "green"
printl(b); // Êä³ö: green
// ÔÙ´´½¨Ò»¸ö²¼¶û¶ÔÏó
var c = new Boolean(0); // ´´½¨Ê±´«Èë 0£¬Ï൱ÓÚ false
c.myColor(); // µ÷ÓÃ myColor ·½·¨
// »ñÈ¡ color ÊôÐÔ
var d = c.color; // ½á¹ûΪ "red"
printl(d); // Êä³ö: red
//µÚÎå¸ö£¬ÀàÐÍ.ÅжÏÀàÐÍ ·½·¨ÒÔ¼°Ïà¹ØµÄÀý×Ó
// ¶¨ÒåÀàÐͶÔÏó
const ÀàÐÍ = {};
/**
* ÅжϱäÁ¿Êý¾ÝÊÇʲôÀàÐÍ
* @param {ÈÎÒâ} use
* @returns {×Ö·û´®|null} ³É¹¦:·µ»Ø¶ÔÓ¦ÀàÐ͵¥´Ê,ʧ°Ü:null
*/
ÀàÐÍ.ÅжÏÀàÐÍ = function (use) {
switch (typeof (use)) {
case 'undefined':
return 'undefined';
case 'number':
return 'number';
case 'string':
return 'string';
case 'boolean':
return 'boolean';
default:
if (Array.isArray(use)) return 'Array';
if (Object.prototype.toString.call(use) === '[object Object]') return 'Object';
}
};
// ²âÊÔ²»Í¬ÀàÐÍ
var a; // undefined
var b = 1223; // number
var c = 'abcd'; // string
var d = true; // boolean
var e = [1, 2, 3]; // Array
var f = {a: 10, b: 20}; // Object
// Êä³öÀàÐÍ
printl(ÀàÐÍ.ÅжÏÀàÐÍ(a)); // 'undefined'
printl(ÀàÐÍ.ÅжÏÀàÐÍ(b)); // 'number'
printl(ÀàÐÍ.ÅжÏÀàÐÍ(c)); // 'string'
printl(ÀàÐÍ.ÅжÏÀàÐÍ(d)); // 'boolean'
printl(ÀàÐÍ.ÅжÏÀàÐÍ(e)); // 'Array'
printl(ÀàÐÍ.ÅжÏÀàÐÍ(f)); // 'Object'
1. boolean.constructor
º¯ÊýµÄÒýÓÃ
var myBool = new Boolean(true);
printl(myBool.constructor); // Êä³ö: function Boolean() { [native code] }
printl(myBool.constructor === Boolean); // Êä³ö: true
Õâ¶Î´úÂë´´½¨ÁËÒ»¸öеIJ¼¶û¶ÔÏó myBool
£¬²¢´òÓ¡Æä¹¹Ô캯Êý¡£constructor
ÊôÐÔ·µ»ØÒ»¸öÖ¸Ïò´´½¨¸Ã¶ÔÏóµÄ Boolean
º¯ÊýµÄÒýÓ᣼ì²é myBool.constructor === Boolean
·µ»Ø true
£¬±íÃ÷ myBool
ÊÇÓÉ Boolean
º¯Êý´´½¨µÄ¡£
2. boolean.toString()
--- ²¼¶ûת×Ö·û
var boolTrue = new Boolean(true);
var boolFalse = new Boolean(false);
var strTrue = boolTrue.toString(); // "true"
var strFalse = boolFalse.toString(); // "false"
printl("²¼¶ûֵת»»Îª×Ö·û´®µÄ½á¹û£º");
printl("true ת»»Îª×Ö·û´®: " + strTrue); // Êä³ö: true ת»»Îª×Ö·û´®: true
printl("false ת»»Îª×Ö·û´®: " + strFalse); // Êä³ö: false ת»»Îª×Ö·û´®: false
Ôڴ˲¿·Ö£¬´´½¨Á½¸ö²¼¶û¶ÔÏó boolTrue
ºÍ boolFalse
£¬È»ºóͨ¹ýµ÷Óà toString()
·½·¨½«ËüÃÇת»»³É×Ö·û´®¡£×îºó´òӡת»»½á¹û£¬Õ¹Ê¾Á˲¼¶ûÖµÈçºÎת»¯Îª×Ö·û´®¡£
3. boolean.valueOf()
--- ¶ÔÏóµÄÔʼֵ
var bool1 = new Boolean(1); // ·ÇÁãÊý×ֻᱻÊÓΪ true
var value1 = bool1.valueOf(); // ·µ»Ø true
printl(value1); // Êä³ö: true
var bool2 = new Boolean(0); // 0 ±»ÊÓΪ false
var value2 = bool2.valueOf(); // ·µ»Ø false
printl(value2); // Êä³ö: false
// ²¢¼ÌÐø´´½¨ÆäËû²âÊÔ²¼¶û¶ÔÏó
DiffCopyInsert
Õâ¶Î´úÂë½éÉÜÁË valueOf()
·½·¨£¬·µ»Ø²¼¶û¶ÔÏóµÄÔʼֵ¡£Í¨¹ý´´½¨²»Í¬ÖµµÄ²¼¶û¶ÔÏó£¨Èç 1¡¢0 µÈ£©£¬Õ¹Ê¾ÁËÈçºÎ»ñÈ¡ÆäÔʼ²¼¶ûÖµ£¨true
»ò false
£©¡£
4. Boolean.prototype
À©Õ¹Ò»¸ö·½·¨
Boolean.prototype.myColor = function() {
if (this.valueOf() === true) {
this.color = "green"; // Èç¹û²¼¶ûֵΪ true£¬ÉèÖÃÑÕɫΪÂÌÉ«
} else {
this.color = "red"; // Èç¹û²¼¶ûֵΪ false£¬ÉèÖÃÑÕɫΪºìÉ«
}
}
var a = new Boolean(1); // ´´½¨Ê±´«Èë 1£¬Ï൱ÓÚ true
a.myColor(); // µ÷ÓÃ myColor ·½·¨
var b = a.color; // ½á¹ûΪ "green"
printl(b); // Êä³ö: green
ÕâÀïÀ©Õ¹ÁË Boolean
µÄÔÐÍ£¬ÔÚÆäÖÐÌí¼ÓÁË myColor
·½·¨¡£Õâ¸ö·½·¨»ùÓÚ²¼¶û¶ÔÏóµÄÖµÉèÖÃÑÕɫΪ "green" »ò "red"¡£´´½¨²¼¶û¶ÔÏó a
£¬µ÷Óà myColor
·½·¨ºó£¬»ñÈ¡²¢´òÓ¡ÑÕÉ«ÊôÐÔ¡£
5. ÀàÐÍ.ÅжÏÀàÐÍ
·½·¨ÒÔ¼°Ïà¹ØµÄÀý×Ó
const ÀàÐÍ = {};
ÀàÐÍ.ÅжÏÀàÐÍ = function (use) {
switch (typeof (use)) {
case 'undefined':
return 'undefined';
case 'number':
return 'number';
case 'string':
return 'string';
case 'boolean':
return 'boolean';
default:
if (Array.isArray(use)) return 'Array';
if (Object.prototype.toString.call(use) === '[object Object]') return 'Object';
}
}
// ²âÊÔ²»Í¬ÀàÐÍ
var a; // undefined
var b = 1223; // number
var c = 'abcd'; // string
var d = true; // boolean
var e = [1, 2, 3]; // Array
var f = {a: 10, b: 20}; // Object
// Êä³öÀàÐÍ
printl(ÀàÐÍ.ÅжÏÀàÐÍ(a)); // 'undefined'
printl(ÀàÐÍ.ÅжÏÀàÐÍ(b)); // 'number'
printl(ÀàÐÍ.ÅжÏÀàÐÍ(c)); // 'string'
printl(ÀàÐÍ.ÅжÏÀàÐÍ(d)); // 'boolean'
printl(ÀàÐÍ.ÅжÏÀàÐÍ(e)); // 'Array'
printl(ÀàÐÍ.ÅжÏÀàÐÍ(f)); // 'Object'
Õâ¶Î´úÂ붨ÒåÁËÒ»¸ö¶ÔÏó ÀàÐÍ
£¬²¢ÎªÆäÌí¼ÓÁËÒ»¸ö ÅжÏÀàÐÍ
·½·¨£¬Äܹ»¸ù¾Ý´«ÈëµÄ²ÎÊý·µ»Ø¶ÔÓ¦µÄÊý¾ÝÀàÐÍ¡£Í¨¹ý¶à¸ö²âÊÔ±äÁ¿£¬Õ¹Ê¾ÁËÈçºÎʹÓÃÕâÒ»·½·¨À´Åжϲ»Í¬Êý¾ÝÀàÐͲ¢Êä³ö½á¹û¡£

×ܽá
ÕâЩ´úÂëƬ¶ÎչʾÁË JavaScript Öв¼¶û¶ÔÏóµÄÓ÷¨¡¢ÈçºÎͨ¹ý·½·¨À©Õ¹ÔÐÍ¡¢ÒÔ¼°×Ô¶¨ÒåÈçºÎÅжÏÀàÐ͵ŦÄÜ¡£½«ËüÃÇ×éºÏÔÚÒ»Æ𣬿ÉÒÔʵÏÖ¸ü¸´ÔӵIJÙ×÷ºÍ¹¦ÄÜ¡£Ò»Ð©¾ßÌåµÄÔËÐа¸ÀýÒ²ÇåÎúµØÖ¤Ã÷ÁËÿ¸ö·½·¨µÄЧ¹û¼°Æä·µ»ØÖµ¡£