三大包裝物件與Boolean()轉型物件
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
/*
* 1.三大包裝物件Number,String,Boolean當做建構函式使用的時候,將普通資料包裝成一個物件
* 2.三大包裝物件不做建構函式使用時,可將任意資料型別轉成Number,String,Boolean型別
* 3.原始型別資料可自動轉型包裝物件,但這個物件是臨時的,執行完就會唄銷燬,所以給其新增屬性返回的是undefined
* 4.Boolean()除了當做建構函式使用,還有型別轉換作用
* 5.!!雙歎號表示把任意值轉換成布林型別
* */
var str=new String('abc');
var num=new Number(123);
var b=new Boolean(true);
console.log(typeof str); //object
console.log(num.valueOf()); //123 返回包裝例項的原始值
console.log(b);
console.log(Number(num)); //123
var str2='fdc';
str2.x=8;
console.log(str2.length); //3
console.log(str2.x); //undefined
//Boolean()當做型別轉換
console.log(Boolean(undefined)); //false
console.log(Boolean(null));
console.log(Boolean(0));
console.log(Boolean(NaN));
console.log(Boolean(''));
console.log(Boolean('abc')); //true
console.log(Boolean(123));
console.log(Boolean(function(){}));
console.log(Boolean([]));
console.log(Boolean({}));
console.log(Boolean(/foo/));
//雙!
console.log(!!undefined); //false
console.log(!!null);
console.log(!!NaN);
console.log(!!0);
console.log(!!'');
console.log(!![]); //true
console.log(!!'abc');
console.log(!!function(){});
console.log(!!{});
console.log(!!/foo/);
</script>
</body>
</html>