玩了一會遊戲,現在可以靜一下,看會書,今天看到了流程式控制制和函數基礎,先總結一下流程式控制制,等會再總結一下函數控制,明天應該就可以進入javascript的物件導向編程了。我主要看的是javascript權威指南--張亞飛編著--清華大學出版社;還參考了javascript核心對象參考手冊--韓延峰--人民郵電出版社,還有就是網上自己百度的,一些不錯的博文我都會附上連結,也尊重那些原創作者們。好了開始:
3 流程式控制制
一些簡單的流程式控制制,例如if....else if ...else語句,switch語句,while,do while語句差不多所有語言都一樣的吧,自己稍微看一下就行了,就不說了。下面說幾個我覺得有意思的流程式控制制語句:
1) for...in 迴圈
文法:for(variable in object)
statement;
for...in語句遍曆的是對象的原型鏈中對象的屬性,這裡有些情況是不能用for in迴圈的,比方對象的方法,宿主對象的屬性,靜態成員,挺亂的,留待以後知道什麼是原型,鏈這些知識知道了之後再解決吧。
<script> var arr = new Array("this", "is", "a", "test"); for(var i in arr){ document.write(arr[i]+"\t");}</script>//輸出 this is a test//這個例子挺好的var myObject ={hisName:"javascript", age:11, belonging:"ECAM"};for(var prop in myObject){ document.write("myObject." + prop + "=" + myObject[prop]+"<br />");}//輸出:// myObject.hisName = javascript//myObject.age = 11//myObject.belonging = ECMA
2) for each...in迴圈
文法:for each(variableIterant in object){
statement;
}
for each...in遍曆的是對象屬性的值,而不是屬性的名稱
//還是這個例子var myObject ={hisName:"javascript", age:11, belonging:"ECAM"};for(var prop in myObject){ document.write(item+"<br />"):}//輸出:// javascript//11//ECMA
3) 標籤語句
為語句提供一個標識符,用於直接跳轉到該標識符所指定的行開始執行,只能由break,continue語句使用,用來指示break和continue到哪個語句,實際中很少用到吧,反正這是我第一次看到。下面是一個不錯的例子
<script type="text/javascript"> outerloop: for (var i = 0; i < 10; i++) { innerloop: for (var j = 0; j < 10; j++) { if (j > 3) { break; } if (i == 2) { break innerloop; } if (i == 4) { break outerloop; } document.write("i=" + i + " j=" + j + "<br>"); } }</script>
4) let語句(javascript 1.7新增的)
挺新的東西吧,書上介紹的也很短,網上資料也很少,只知道let語句允許使用標識符來標示一個語句。
5) yield語句
這個東西挺有用的,yield語句可以在迴圈語句中產生一個輸出值並返回,包含yield語句的函數稱為產生器,一般用迭代器遍曆產生器。
//這個yield語句我只在firefox瀏覽器中看到了效果,其他瀏覽器都沒有顯示
<script type="application/javascript; version=1.7">function generator(){var i = 0;while(i<10){ //產生輸出 yield i ; i++; }}//擷取產生器var g = generator();//迭代for(var j = 0; j<10; j++){ document.write(g.next()+"<br>");}</script>//不使用產生器<script >function writeValue(param){ document.write(param+"<br />");}function generator(){var i = 0;while(i<10){ //產生輸出 writeValue(i); i++; }}generator();</script>
6) with語句
用來方便地引用某個特定對象額方法和屬性
var rightNow = new Date();with(rightNow){document.write(getDay()+"<br>");document.write(getMonth()+1+"<br>");document.write(getFullYear()+"<br>");}//就是少寫了rightNow這個對象。
以上全部都屬個人原創,請大家轉載的時候附上原創連結: http://www.cnblogs.com/tonylp