js犀牛書,學習心得筆記(一)
最近每天都抽出時間看犀牛書,明顯可以感覺到和以前看的時候有差別,閱讀能力和心得有了很大的提升,以前不明白的一些知識點,還有一些隱藏在細節中的知識,現在都可以領悟到了。
1、包裝物件
暫時性的包裝物件
js資料型別分為原始資料型別和引用資料型別,原始型別包含number,string,boolean等;
我們都知道,直接使用字面量來宣告一個變數,並且給它賦值一個字串,那麼這個變數不具備物件的屬性和方法;
var str='wangze';
str.len=4;
typrof(str) //string
console.log(str.len) //undefined
上面這個栗子說明,我們可以給原始型別值賦予屬性,此時js會將它作為一個包裝物件對待,但之後js會將物件刪除,所以輸出它的屬性值則為undefined。我們將這種物件稱為暫時性的包裝物件。
永久性的包裝物件
想要給字串新增屬性的辦法,就只能將它轉換為對像,下面例子說明:
var str=new String('wangze');
str.len=4;
typeof(str) //object
console.log(str.len) //4
這便是永久性的包裝物件
2、js裡面的一些全域性常量
Math和JSON是js的全域性物件的屬性物件
Number(),String(),Boolean(),Date()等是js的全域性構造器(也被稱為全域性類)
undefined,infinity,和NaN是js的全域性屬性
parsInt(),eval(),和isNaN()是js的全域性函式
獲取全域性物件的方式:
var a=this;
3、運算子的巧妙使用
在一些程式碼中經常看到別人這樣寫
a+' ';
+a;
回去查了一下,第一個是將a轉化為字串,
第二個是將a轉化為數字;作用和
a.toString()
Number(a)
相同;
4、js物件的toString方法和valueOf方法很重要。今天回去看一下,明天寫心得