js數據類型:
原始類型:
數字、字符串、布爾值、null、undefined
對象類型:
對象(數組、函數、日期、error、RegExp)
在JavaScript 1.5及後續版本中能夠使用const關鍵字來定義常量。常量能夠當作不可重複賦值的變量(對常量更新賦值會失敗但不報錯),對常量的重複聲明會報錯。
javascript
javascript中沒有塊級做用域,javascript取而代之地使用了函數做用域;變量在聲明他們的函數體以及這個函數體嵌套的任意函數體內都是有定義的。javascript的函數做用域是指在函數內聲明的全部變量在函數體內始終是可見的。有意思的是,這意味着變量在聲明以前甚至已經可用。javascript的這個特性被非正式地稱爲聲明提早,即javascript函數裏聲明的全部變量(但不涉及賦值)都被「提早」至函數體的頂部。java
javaScript中的函數做用域的概念:在函數中聲明的變量在整個函數體內都是可見的(包括在嵌套的函數中),在函數的外部是不可見的。不在任何函數內聲明的變量時全局變量,在整個javascript程序中都是可見的。在javascript中是沒法聲明只在一個代碼塊內可見的變量的。數組
詞法做用域:函數的執行依賴於變量做用域,這個做用域是在函數定義時決定的,而不是函數調用時決定的。ide
javascript中this關鍵字函數
和變量不一樣,關鍵字this沒有做用域的限制,嵌套的函數不會從調用它的函數中繼承this。若是嵌套函數做爲方法調用,其this的值指向調用它的對象。若是嵌套函數做爲函數調用,其this值不是全局對象(非嚴格模式下)就是undefined(嚴格模式下)。不少人誤覺得調用嵌套函數時this會指向調用外層函數的上下文。若是你想訪問這個外部函數的this值,須要將this的值保存在一個變量裏,這個變量和內部函數都同在一個做用域內。一般使用變量self來保存this。
this