第三章 基本概念express
1.註釋函數
單行://this
多行:/*adsfkdldnfknksmd*/spa
2.嚴格模式.net
頂部添加「use strict」;指針
3.關鍵字和保留字對象
4.變量遞歸
鬆散類型,能夠保存任何類型的數據ip
var操做符定義的變量將成爲定義該變量做用域中的局部變量,不使用var將成爲全局變量作用域
5.數據類型
a.基本數據類型:undifined:聲明變量但未初始化
對未初始化和未聲明的變量執行typeof操做符都返回了undefined值
Null:表示一個空指針對象,使用typeof返回一個空對象指針
undifined值派生自null,alert(null==undifined)//true
Boolean:將任何類型的值轉換爲布爾值——Boolean()函數,任何類型的值調用都會返回 一個布爾值
Number:NaN————用於表示一個原本要返回數值的操做未返回數值的狀況
任何涉及NaN的操做都會返回NaN alert(NaN==NaN)//"false"
數值轉換:Number()——用於任何數據類型
parseInt()——字符串轉化爲數值,處理整數
parseFloat()———字符串轉化爲數值,處理小數
String:一旦建立,值不能改變
字符轉換:toString()——任何值都有的方法
轉型函數String()——對於null和undefined沒有tostring()的適用
b.複雜數據類型 :Object——數據和功能的集合,Object類型是全部它的實例的基礎。
每一個實例都具備下列的屬性和方法:
constructor():保存着用於建立當前對象的函數
hasOwnProperty():檢查給定屬性在原型仍是實例中
IsPrototypeOf():檢查是不是傳入對象的原型
檢測給定變量的數據類型:typeof
eg:alert(typeof message)//「」「string」
6.語句
If、do-while,while,
for-in:精準的迭代語句,可用來枚舉對象的屬性
for(property in expression)statement
label:statement——未來由break或continue語句引用
break和continue:break語句會馬上退出循環,強制執行循環後的語句;continue也是當即退出循環,但以後會從循環的頂部繼續執行
with:將代碼的做用域設置到一個特定的對象中
switch
7.函數
特色:命名的參數只提供便利,但不是必須的;沒有重載
arguments對象:arguments對象不能顯式建立,只有函數開始時纔可用。能夠和命名參數一塊兒使用,
arguments的length屬性:返回調用程序傳遞給函數的實際參數數目。
arguments的callee屬性:表示對函數對象自己的引用,也就是所指定的 Function 對象的正文,這有利於實現無名函數的遞歸或者保證函數的封裝性。
函數內另外一個特殊對象:this——引用的是函數據以執行的環境對象
另外一個函數對象的屬性:caller——保存着調用當前函數的函數的引用,若是在全局環境中調用,返回值爲null
注意callee和caller
caller
caller返回一個函數的引用,這個函數調用了當前的函數。
使用這個屬性要注意:
1 這個屬性只有當函數在執行時纔有用
2 若是在JavaScript程序中,函數是由頂層調用的,則返回null
callee
callee放回正在執行的函數自己的引用,它是arguments的一個屬性
使用callee時要注意:
1 這個屬性只有在函數執行時纔有效
2 它有一個length屬性,能夠用來得到形參的個數,所以能夠用來比較形參和實參個數是否一致,即比較arguments.length是否等於arguments.callee.length
3 它能夠用來遞歸匿名函數。