1. 程式人生 > >5.6 基本包裝類型

5.6 基本包裝類型

oca 小數 根據 5.6 大小 result 數值 代碼執行 font

5.6 基本包裝類型(Boolean,Number,String)
基本類型不是對象為什麽會有方法呢?(黑人?)
後臺處理了一系列的操作,以下就是例子,創建後立即銷毀

var s1 = "some text";
var s2 = s1.substring(2);
===
var s1 = new String("some text");
var s2 = s1.sbustring(2);
s1 = null;

引用類型和基本包類型的主要區別就是對象的生存周期
引用類型:執行流離開當前作用域之前,都一直保存在內存中
基本類型包:只存在於代碼執行的瞬間,然後立即銷毀

var s1 = "some text";
s1.color = "red";
l(s1.color);//undefined

===
//使用new調用基本包類型的構造函數和直接調用痛麽的轉型函數是不一樣的。
var value = "24";
var number = Number(value);
l(typeof number);//number
var number = new Number(value);
l(typeof number);//object

5.6.1 Boolean類型(建議永遠不要用Boolean對象)
Boolean 重寫了valueOf方法: 返回基本類型true,false
重寫了toString方法, 返回字符串"true","false"

var falseObject = new Boolean(false);
var result = falseObject && true;
l(result);//true

var falseValue = false;
result = falseValue && true;
l(result);//false

5.6.2 Number類型
valueOf: 返回對象基本類型的數值
toString: 字符串形式的數值
toLocalString: 字符串形式的數值
toFixed: 會按照指定的小數位返回數值的字符串表示
toExponential: 返回以指數表示法(e表示法)
toPrecision: 可能會返回固定大小的個數,也可能返回指數格式,根據接受的參數(數值的所有位數)

//toString
var num = 10;
l(num.toString());//10
l(num.toString(2));//1010
l(num.toString(8));//12
l(num.toString(10));//10
l(num.toString(16));//a
//toFixed
var num = 10;
l(num.toFixed(2))//10.00
//toExponential
var num = 10;
l(num.toExponential(1))//1.0e+1
?var num = 99;
//toPrecision
l(num.toPrecision(1));//1e+2
l(num.toPrecision(2));//99
l(num.toPrecision(3));//99.0

5.6 基本包裝類型