<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>041-050章總結</title> </head> <body> <pre> 041. 嵌套的for循環 </pre> <script type="text/javascript"> console.log("第041"); //這個for循環執行幾回,圖形的高度就是多少 for (var i=0;i<5;i++) { // 在循環的內部再建立一個循環,用來控制圖形的寬度 for (var j=0;j<5-i;j++) { document.write("* ") } document.write("<br>") } </script> <pre> 042. 練習 </pre> <script type="text/javascript"> console.log("第042"); /* * 1.打印99乘法表 * 1*1=1 * 1*2=2 2*2=4 * 1*3=3 2*3=6 3*3=9 * 1*4=4 2*4=8 3*4=12 4*4=16 * ....9*9=81 */ for (var i=1;i<=9;i++) { for (var j=1;j<=i;j++) { document.write( j +"*"+ i + "= " + i*j +" ,"); } document.write("<br>") } </script> <pre> 043. for循環練習 </pre> <script type="text/javascript"> console.log("第043"); // 打印出1-100之間全部的質數 for (var i=2;i<=100;i++) { //建立一個布爾值,用來保存結果,默認i是質數 var flag=true; //判斷i是不是質數 //獲取到2-i之間的全部的數 for (var j=2;j<i;j++) { if( i%j==0 ){ flag =false; break; } } //若是是質數,則打印i的值 if(flag){ console.log(i); } } </script> <pre> 044. break和continue </pre> <script type="text/javascript"> console.log("第044"); /* * break關鍵字能夠用來退出switch或循環語句。 * 不能在if語句中使用break和continue,循環內的if內可使用。 * break關鍵字,會當即終止離他最近的那個循環語句。 */ for(var i=0 ; i<5 ; i++){ if(i == 2){ break; } console.log(i); //0 1 } for(var i=0 ; i<5 ; i++){ console.log("@外層循環"+i) for(var j=0 ; j<5; j++){ break; console.log("內層循環:"+j); } } /* * 能夠爲循環語句建立一個label,來標識當前的循環 * label:循環語句 * 使用break語句時,能夠在break後跟着一個label, * 這樣break將會結束指定的循環,而不是最近的 */ outer1: for(var i=0 ; i<5 ; i++){ console.log("@外層循環"+i); inner1: for(var j=0 ; j<5; j++){ break outer1; // 外層循環終止了,內側也終止。 console.log("內層循環:"+j); } } /* * continue關鍵字能夠用來跳過當次循環 * 一樣continue也是默認只會對離他最近的循環循環起做用 */ /*for(var i=0 ; i<5 ; i++){ if(i==2){ continue; } console.log(i); }*/ outer2: for(var i=0 ; i<5 ; i++){ //console.log("@--->"+i); for(var j=0 ; j<5 ; j++){ if(j==3){ continue outer2; } //continue outer2; console.log("-->"+j); } console.log("@--->"+i); } </script> <pre> 045. 質數練習的改進 </pre> <script type="text/javascript"> console.log("第045"); //測試以下的程序的性能 //在程序執行前,開啓計時器 //console.time("計時器的名字")能夠用來開啓一個計時器 //它須要一個字符串做爲參數,這個字符串將會做爲計時器的標識 console.time("test"); for ( var i=2; i<=10000; i++ ) { //console.log(zhi); var flag = true; for ( var j=2; j<Math.sqrt(i); j++ ) { // 能夠經過Math.sqrt()對一個數進行開方11.4ms if( i%j==0 ){ // 若是進入判斷則證實i不是質數,修改flag值爲false flag = false; // 一旦進入判斷,則證實i不多是質數了,此時循環再執行已經沒有任何意義了,使用break來結束循環 break;// 不加221ms,加上break爲24ms } } if(flag){ //console.log(i); } } //終止計時器 //console.timeEnd()用來中止一個計時器,須要一個計時器的名字做爲參數 console.timeEnd("test"); </script> <pre> 046. 對象的簡介 若是使用基本數據類型的數據,咱們所建立的變量都是獨立,不能成爲一個總體。 對象屬於一種複合的數據類型,在對象中能夠保存多個不一樣數據類型的屬性。 對象的分類: 1.內建對象 - 由ES標準中定義的對象,在任何的ES的實現中均可以使用 - 好比:Math String Number Boolean Function Object.... 2.宿主對象 - 由JS的運行環境提供的對象,目前來說主要指由瀏覽器提供的對象 - 好比 BOM DOM 3.自定義對象 - 由開發人員本身建立的對象 </pre> <script type="text/javascript"> console.log("第046"); //建立對象 /* * 使用new關鍵字調用的函數,是構造函數constructor * 構造函數是專門用來建立對象的函數 * 使用typeof檢查一個對象時,會返回object */ var obj1 = new Object(); console.log(obj1) console.log(Object) </script> <pre> 047. 對象的基本操做 </pre> <script type="text/javascript"> console.log("第047"); //在對象中保存的值稱爲屬性 // 向對象添加屬性 語法:對象.屬性名 = 屬性值; var obj2 = new Object() obj2.name = "孫悟空"; obj2.gender = "男"; obj2.age = 18; //讀取對象中的屬性 語法:對象.屬性名 //若是讀取對象中沒有的屬性,不會報錯而是會返回undefined console.log(obj2.gender); console.log(obj2.hello); //undefined //修改對象的屬性值語法:對象.屬性名 = 新值 obj2.name = "tom"; // 刪除對象的屬性 語法:delete 對象.屬性名 delete obj2.name; console.log(obj2.name); console.log(obj2.age); </script> <pre> 048. 屬性名和屬性值 </pre> <script type="text/javascript"> console.log("第048"); var obj3 = new Object(); /* * 屬性名: * - 對象的屬性名不強制要求遵照標識符的規範,什麼亂七八糟的名字均可以使用 * - 可是咱們使用是仍是儘可能按照標識符的規範去作 */ obj3.name = "孫悟空"; obj3.var = "var"; console.log(obj3.var) /* * 若是要使用特殊的屬性名,不能採用.的方式來操做 * 須要使用另外一種方式:語法:對象["屬性名"] = 屬性值 * 讀取時也須要採用這種方式 * 使用[]這種形式去操做屬性,更加的靈活, * 在[]中能夠直接傳遞一個變量,這樣變量值是多少就會讀取那個屬性 */ obj3["123"] = 789; obj3["nihao"] = "你好"; var n = "nihao"; console.log(obj3[n]); //屬性值 JS對象的屬性值,能夠是任意的數據類型 甚至也能夠是一個對象 obj3.test = true; obj3.test = null; obj3.test = undefined; //建立一個對象 var obj4 = new Object(); obj4.name = "豬八戒"; //將obj4設置爲obj3的屬性 obj3.test = obj4; console.log(obj3.test.name); console.log(obj3); /* * in 運算符 * - 經過該運算符能夠檢查一個對象中是否含有指定的屬性 若是有則返回true,沒有則返回false * - 語法:"屬性名" in 對象 */ console.log(obj3.test2); // undefined //檢查obj3中是否含有test2屬性 console.log("test2" in obj3); console.log("test" in obj3); console.log("name" in obj4); </script> <pre> 049. 基本數據類型和引用數據類型 基本數據類型 String Number Boolean Null Undefined 引用數據類型 Object JS中的變量都是保存到棧內存中的, 基本數據類型的值直接在棧內存中存儲, 值與值之間是獨立存在,修改一個變量不會影響其餘的變量 對象是保存到堆內存中的,每建立一個新的對象,就會在堆內存中開闢出一個新的空間, 而變量保存的是對象的內存地址(對象的引用),若是兩個變量保存的是同一個對象引用, 當一個經過一個變量修改屬性時,另外一個也會受到影響. </pre> <script type="text/javascript"> console.log("第049"); var a = 123; var b = a; a++; console.log("a = "+a); //124 console.log("b = "+b); //123 var obj5 = new Object(); obj5.name = "孫悟空"; var obj6 = obj5; //修改obj的name屬性 obj5.name = "豬八戒"; console.log(obj5.name); // 豬八戒 console.log(obj6.name); // 豬八戒 //設置obj6爲null obj6 = null; console.log(obj5); console.log(obj6); var c = 10; var d = 10; //console.log(c == d); var obj7 = new Object(); var obj8 = new Object(); obj7.name = "沙和尚"; obj8.name = "沙和尚"; console.log(obj7); console.log(obj8); /* * 當比較兩個基本數據類型的值時,就是比較值。 * 而比較兩個引用數據類型時,它是比較的對象的內存地址, * 若是兩個對象是一摸同樣的,可是地址不一樣,它也會返回false */ console.log(obj7 == obj8); //false </script> <pre> 050. 對象字面量 使用對象字面量,能夠在建立對象時,直接指定對象中的屬性 語法:{屬性名:屬性值,屬性名:屬性值....} 對象字面量的屬性名能夠加引號也能夠不加,建議不加, 若是要使用一些特殊的名字,則必須加引號 屬性名和屬性值是一組一組的名值對結構, 名和值之間使用:鏈接,多個名值對之間使用,隔開 若是一個屬性以後沒有其餘的屬性了,就不要寫. </pre> <script type="text/javascript"> console.log("第050"); // 使用對象字面量來建立一個對象 var obj9 = {}; obj9.name = "孫悟空"; var obj10 = { name:"豬八戒", age:13, gender:"男", test:{name:"沙僧"}, conprint: function(){ console.log(this.age) } }; console.log(obj10.test); console.log(obj10.conprint()); </script> </body> </html>
全部基礎課程連接:javascript
1.JavaScript基礎視頻教程總結(001-010章) 2.JavaScript基礎視頻教程總結(011-020章) 3. JavaScript基礎視頻教程總結(021-030章) 4. JavaScript基礎視頻教程總結(031-040章)html
5. JavaScript基礎視頻教程總結(041-050章) 6. JavaScript基礎視頻教程總結(051-060章) 7. JavaScript基礎視頻教程總結(061-070章) 8. JavaScript基礎視頻教程總結(071-080章)java
9. JavaScript基礎視頻教程總結(081-090章) 10. JavaScript基礎視頻教程總結(091-100章) 11. JavaScript基礎視頻教程總結(101-110章) 12. JavaScript基礎視頻教程總結(111-120章)瀏覽器
13. JavaScript基礎視頻教程總結(121-130章) 14. JavaScript基礎視頻教程總結(131-140章)函數
另外,歡迎關注個人新浪微博性能