1.2若類型語言:
javascript 3種元素類型:布爾值、數值型、字符串、
對象類型和可執行代碼的函數類型
null、未定義類型。 javascript
原始數據類型按值傳遞,其餘類型按引用傳遞
數據類型的轉換 原始類型能夠進行類型轉換
1.toString 方法能夠把數值、布爾型轉換爲字符串
二、parsefloat、parseInt函數能夠把字符串轉換爲數值
3.雙重「非」能夠把字符串、數值轉換成布爾值
var bool = !!num; java
1.3 函數是一等對象
函數是對象,
1.能夠當初變量和參數傳遞給其餘的函數
2.能夠做爲返回值從其餘的函數傳出
3.在運行時能夠進行構造
4.能夠用function(){---} 語法建立匿名函數
(functon(){
var foo = 10;
var bar =2
alert(foot*bat)l 編程
})(); 設計模式
5.匿名函數最用途是用來建立閉包。
閉包歸納:
1.是一個受到保護的變量空間,由內嵌函數生成。
2.函數級做用域,因此定義在函數的內部的變量外部不能訪問,
javascript做用域 又是詞法性質的, 意味着函數運行在她定義她的做用域中不是在用調用它的做用域中,兩個結合起來,就能把變量包裹在函數中,而對其加以保護,用來建立(類的私有變量)
var test;
(function(){ 閉包
var foo =10;
var bar =2;
test = function(){ 函數
return foo*bar;
} this
})(); prototype
1.四、對象的易變性
1.能夠爲函數添加屬性
function displayError(msg){
displayError.numtimes++;
}
2.能夠爲先前的你定義的類和實例化的地下進行修改
function person(name,age){
this.name = name;
this.age = age; 設計
} 對象
prson.protype = function(){
getName:function(){
return this.name;
}
}
person.prototype = function(){
getAge:function(){
return this.age
}
}
/**
* 建立對象
*/
var alicer = new Person ("alice",40)
var bill = new Person ("bill",30)
/**
* 修改類的方法
*/
person.prototype.getGreenting = function(){
return "HI"+this.getName();
}
3.內省的概念 和反射 有時間須要好好閱讀一下。 這個概念不太理解
1.5 繼承
1.javascript使用的是基於對象的原型式繼承,用來模擬基於類的繼承
小結:
使用的編程風格和選擇的設計模式應該要與所要具體的工做相稱。