《JavaScript權威指南》筆記(一)

《JavaScript權威指南》真是名符其實的好書!真遺憾初學JavaScript時沒有當即讀這本書,甚爲遺憾。不太小有經驗以後讀來更是有如醍醐灌頂通常,許多以前遇到的奇怪問題和讀不懂的代碼都迎刃而解。這裏簡要記錄一下其中以爲很有價值的一些知識點。不過真心要學好JavaScript的同窗仍是耐心讀徹底書吧,雖然這本書900多頁,厚得使人生畏,但真的讀來不遺憾,很是有意義。 javascript

第一篇筆記的內容主要涉及:關鍵字、特殊值、數據類型及轉換等。 html

1. javascript區分大小寫,xhtml也區分大小寫,可是html不區分大小寫。(因此說html不夠嚴格嘛~) java

2. javascript保留字、ECMA擴展保留的關鍵字、javascript預約義的全局變量名或函數名數組

這幾個知識點特別容易弄混。我我的的理解是: 函數

  • javascript保留字:真正意義上的保留字(關鍵字)
  • ECMA擴展保留的關鍵字:結合java、C++等面嚮對象語言的思路,未來有可能新加入的關鍵字
  • javascript預約義的全局變量名或函數名:javascript語言中提供的有用的經常使用的變量和函數

這幾個知識點通常是按照字母順序給出,但我以爲有時候不容易記住,因此按它們的功能進行了小歸類: this

(1)javascript保留字 編碼

  • if分支語句:if, else
  • switch分支語句:switch, case, default, break
  • 循環語句:do, while, for, continue
  • 異常處理語句:try, catch, finally, throw
  • 獲取類型:typeof, instanceof
  • 布爾值:true, false, null
  • 函數相關:var, void, function, return
  • 其餘:in, this, with, new, delete

(2)ECMA擴展保留的關鍵字 spa

  • 基本數據類型:byte, char, boolean, int, short, long, float, double, enum
  • 繼承:implements, extends, super
  • 類與接口:class, interface
  • 用來修飾函數的關鍵字:abstract, native, static, final, const, volatile, synchronized
  • 導入導出:export, import
  • 訪問權限:private, protected, public
  • 其餘:goto, package, throws, transient, debugger

(3)javascript預約義的全局變量名或函數名 .net

  • 數據類型:Number, Boolean, String, undefined, Object, Array, Function, Date, Math, RegExp, Error
  • 錯誤類型:EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError
  • 編碼:decodeURI, decodeURIComponent, encodeURI
  • 轉義:escape, unescape
  • 類型轉換:parentInt, parentFloat
  • 特殊值及判斷:isFinite, isNaN, NaN, Infinity
  • 其餘:arguments, eval

最後注意:咱們經常使用的函數alert()不屬於上面的三類。 debug

3. javascript數據類型

  • 基本數據類型:
    • 數字:
      • 整型直接量
      • 八進制和十六進制的直接量
      • 浮點型直接量(小數點和指數計數法兩種方式)
      • 特殊值
    • 文本字符串:由Unicode字符、數字、標點符號等組成的序列
    • 布爾值
  • 小數據類型:null, undefined
  • 複合數據類型:對象:已命名的數據的集合,這些數據被做爲對象的屬性(或域)來引用
    • 已命名的值的無序集合
    • 數組:有編號的值的有序集合
    • 函數:具備可執行代碼的對象
    • 專用對象:對象的新的類:Date, Math, Error, RegExp

4. 數字中的特殊值

  • Infinity:表示無窮大的特殊值
  • NaN:特殊的非數字值(產生未定義的結果或錯誤時出現,如除0)
  • Number.MAX_VALUE:可表示的最大數字
  • Number.MIN_VALUE:可表示的最小數字(與0最接近的數字)
  • Number.NaN:特殊的非數字值
  • Number.POSITIVE_INFINITY:表示正無窮大的特殊值
  • Number.NEGATIVE_INFINITY:表示負無窮大的特殊值

注意:NaN和任何數值都不相等,包括它本身在內,所以須要用isNaN()來檢測。isFinite()用來檢測一個數字是不是NaN、正無窮大或負無窮大。

5. javascript字符串經常使用函數

  • .length:長度
  • .charAt(a):取得第a個字符(從0開始)
  • .subString(a, b):取得下標爲a到下標爲b-1的子字符串
  • .indexOf('a'):查找第一個字母'a'的位置

6. javascript各種型相互轉換的對應值

(1)undefined與其餘類型轉換:

  • 布爾環境下:false
  • 數字環境下:NaN
  • 字符串環境下:undefined
  • 對象環境下:Error

(2)null與其餘類型轉換:

  • 布爾環境下:false
  • 數字環境下:0
  • 字符串環境下:null
  • 對象環境下:Error

(3)布爾類型(true和false):

  • 數字環境下:true爲1,false爲0
  • 字符串環境下:true爲"true",false爲"false"
  • 對象環境下:Boolean對象

(4)字符串(非空字符串與空字符串):

  • 布爾環境下:非空爲true,空爲false
  • 數字環境下:非空爲字符串的數字值或NaN,空爲0
  • 對象環境下:String對象

(5)數字(Number對象:0、NaN、無窮、負無窮、任意其餘數字):

  • 布爾環境下:0和NaN時爲false,無窮、負無窮和其餘任意數字時爲true
  • 字符串環境下:0爲"0",NaN爲"NaN",無窮爲"Infinity",負無窮爲 "-Infinity",其餘任意數字就是該數字字符串值

(6)其餘對象:

  • 布爾環境下:非空對象爲true
  • 數字環境下:空對象則爲NaN,調用valueOf()方法若返回基本類型則使用該值,若返回對象本身則先調用toString()方法把對象轉換爲一個字符串,再把該字符串轉換爲一個數字
  • 字符串環境下:調用toString()方法返回字符串的值

下一篇連接:《JavaScript權威指南》筆記(二)

相關文章
相關標籤/搜索