TypeScript 學習二 表達式和循環


表達式:

1,箭頭表達式:將function用箭頭代替,參數相應進行處理;

用來聲明匿名函數,消除了傳統匿名函數的this指針問題

1)

例:簡單的方法體為單行的方法,此時不需要大括號和return方法,表達式自動處理了;

如果方法體是多行的內容且有return語句時,就需要大括號了:

 2)沒有參數的方法的情況,直接寫箭頭就可以了:

var sum = () =>{

}

3)只有一個參數的情況,只在外邊寫一個參數就可以了,不用寫括號:

var sum = arg1 =>{

  console.log( arg1);

}

例:聲明一個數組,將數組中的偶數打印出來;

var  arr=[1,2,3,4];

console.log(arr.filter( value => value % 2==0));  //filter函數的參數就是一個匿名函數,匿名函數只有一個參數value,不用加括號,方法體就是value%2==0;filter函數將偶數留下,其他的都過濾了;

 

結果就是如下圖:

4)消除this指針的問題

傳統的javascript中用到this時會出現一系列問題,如打印不出來想要的內容:

使用傳統的javascript和this寫的代碼:

結果是這樣:並沒有打印出來“IBM”

使用typescript中的箭頭表達式:

結果是如下的,將IBM打印出來了:

2,循環,forEach(),for in ,for of ;

1)forEach():對值的循環;不允許break忽略屬性

 

desc是對該數組進行描述的一個屬性,因為typescript不支持這個特性,所以會報錯,但是forEach()會在運行時忽略掉這個屬性,所以運行結果正常顯示:

 

問題:forEach()方法除了會忽略屬性之外,還不允許打破循環,例如break語句;

 2)for in對鍵key的循環不會忽略屬性不允許break;常用於打印對象或集合中鍵值對中的鍵名;或是數組的 下標,及屬性值;

 

 

 

 執行結果是:將下標和屬性值打印出來了 

 

要想將值打印出來,就要將輸出語句改成console.log( arr[n] );這樣結果會將值打印出來;

for of循環:和forEach循環類似,都是對值的循環,而不是對鍵key的循環;特性是允許break忽略屬性

代碼形式同for in, 只是in 變成of ,結果如下:忽略屬性:

 

 允許break的情況:

 

結果如下:滿足break條件時就停止了;同時忽略屬性;

 for of可以用在任何對象上,如數組,Map, Set, 字符串(就是將字符串中的字符都循環打出來

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM