Javascript讀書筆記(一)

Hello,大家好,好久沒有更新博客了,博主這幾天在幹嘛呢?博主在惡補看書學習中,本來準備每天都更新一篇博客,但發現博客必須得是精華才行,大家才願意看,都是流水賬式的文章,大家看的也累。除非每天都有新的內容、新的思路這樣每天都寫博客纔有意義。
廢話不說了,開始我的表演了。

該系列讀書筆記將持續更新,更新完畢後再出一個精華版總結,方便查閱


首先來看看一張圖,關於前端需要看的書籍:
這裏寫圖片描述


相對於Html與Css來說,Javascript要看的書籍真是太多了,但我還是覺得Html與Css比較難。

今天要做讀書筆記是來自書籍《javascript高級程序設計》,在我尋找javascript參考書教材的時候,很多人都推薦了這一本書,號稱是讀十遍之後肯定能進BAT。書是好書,但是看完之後能不能進BAT就看自己的能力了,要進BAT基礎必須得好,而且也不單單是考察javascript的知識內容。總而言之,這本書推薦給大家。

開始正式內容:

  1. Javascript有五種基本數據類型:null,undefined,Boolean,Number,String
  2. 利用typeof來判斷變量的數據類型,比較特殊的是typeof null的結果是object。可以認爲null是指向空對象的引用,所以null的類型爲object。用typeof判斷數據類型時,返回的是字符串,例如 typeof “hello“,它輸出的結果是“String”,記住有雙引號
  3. NaN是指Not a number,常用來判斷是否爲數字
  4. parseInt(“字符串”,”進制”),檢索字符串會忽略前面的空格,直到找到第一個非空字符
  5. parseInt會對空字符串輸出NaN,Number會對空字符串輸出0,parseFloat會對空字符串輸出NaN
  6. ojbect常規屬性包含constructor()hasOwnProperty(“string format property”)propertyIsEnumerable(“string format property”)toLocaleString()toString()valueOf()。後面兩個是返回對象的字符串。
  7. 位操作符包括NOT(~)、AND(&)、OR(|)、XOR(^)、左移(<<)、右移有符號(>>)、右移無符號(>>>)
  8. 邏輯與操作符屬於短路操作,如果第一個操作對象返回false,則停止對後面的操作對象進行求值
  9. 函數的參數不是必須的,不定義參數,也可以用arguments[]來獲取輸入的參數
  10. 修改arguments[]中的值會同步到對應的命名參數。arguments的長度由傳入參數的個數決定,取長度用length
  11. 參數傳遞都是值傳遞,不會是通過引用傳遞
  12. javascript不是標準的面嚮對象語言,它沒有重載,但是可以通過判斷輸入參數的數據類型(typeof parameters)和參數的個數來進入不同的分支,模擬重載
  13. 作用域鏈是從 當前執行代碼所在的環境對象=>外部環境對象=>全局環境變量對象。全局環境是最末端執行環境。
  14. 作用域可以向上搜索變量,但不能向下搜索
  15. 沒有塊級作用域,這是與c、c++或java不同的地方,會是面試的考點
  16. 使用var聲明的變量會自動被添加到最接近的環境中
  17. 垃圾回收策略一般不用引用計數策略,這樣存在性能問題,例如循環引用的時候就會永遠清除不了垃圾
  18. 基本類型保存在棧裏(heap),引用類型保存在堆裏(stack)
  19. 基本類型變量拷貝是創建值的副本;引用類型變量拷貝是複製指針,因此引用類型拷貝出來的兩個變量始終指向同一個對象
  20. 可以用對象字面量來創建函數,創建函數時屬性名可以是字符串。例如 var obj = {“name”:”test”,age:18};在這個例子裏name就是用字符串形式來表達屬性名,age就沒有用字符串形式,兩個方法都可以創建屬性
  21. var person = { } 、var person = new Object()、 var person = new Object。這三個方法都是等價的
  22. var person = {};person.name = “Test”。這是點表示法
  23. var person = {};person[“name”] = “Test”。這是方括號表示法
  24. 點表示法不能通過變量形式來表達屬性,但是方括號法可以。
    var person = {};
    var propertyName = “name”;
    person[propertyName] = “Test”;
    由此可知,方括號法裏的屬性要用字符串形式表達,如果不用字符串可被處理爲一個變量,這裏要分辨清楚
  25. 數組不同點在於每一項都可以保存任何類型的數據
  26. 創建數組的方法:
    var arr = new Array();
    var arr = new Array(20);
    var arr = new Arrary(“red”,”blue”)
    與c語言不同的地方在於,c創建數組的方式爲 int arr[] = {1,2,3,4}
    可省略new操作符
    var arr = [];
    var arr = [1,2,]; 不要這樣,在最後寫逗號
    var arr = [,,,,,]; 也不要這樣
    var arr = [“red” , “blue”];
  27. 數組的length不是可讀的,可修改。可利用這個特性,動態修改數組長度,可方便的在數組末尾添加新項
  28. 檢測數組的方式
    if(value instanceof Array){}
    if(Array.isArray(value)) 推薦
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章