各位朋友大家好,上周更新給大家分享了JavaScript的入門知識及各種常用結構的用法,那么,本次更新博主就跟大家更深入的聊一聊JS各結構的嵌套用法,及JS中及其常用的一種結構——函數。以下為函數和循環嵌套的特點、用法及注意事項,希望能供各位開發者朋友參考。
【循環嵌套特點】
外層循環一次,內層循環一圈
【循環控制語句】
1、break:終止本層循環,繼續執行后面的語句;
當循環有多層時,break只會跳過一層循環;
2、continue:跳過本次循環,繼續執行下一次循環;
對於for循環,continue執行后,繼續執行循環變量更新語句n++
對於while、do-while循環,continue執行后,繼續執行循環條件判斷;所以使用這兩個循環時,continue必須在n++之后。
[利用嵌套循環做圖形類題目的特點]
外層循環控制行數,內層循環控制每層元素個數;
[做圖形題思路]
①確定圖形一共幾行,即為外層循環的次數;
②確定每行有幾種元素,代表有幾個內層循環;
③確定每種元素的個數,即為每個內層循環的次數;
Tips:找出每種元素的個數,與行號的關系式,即為當前內循環的最大值。
【瀏覽器控制台打印輸出】
示例:console.log("請輸入0-6之間的數字\n111\t222");
\n 表示換行
\t 制表符,使光標退到下一個制表位。(每個制表位,4個字符。前一制表位若不滿4個字符,則后面的內容在下一格顯示;
前一制表位若滿4個字符,則后面的內容空一格顯示。)
示例:console.log("請輸入0-6之間的數字\n111\t222");
——————————————————————————————華麗分割線————————————————————————————————————
【函數的聲明及調用】
1、函數聲明的格式:
function 函數名(參數1,參數2,參數3,……){
//函數體
return 結果;
}
>>>函數的調用格式:
直接調用:函數調用的格式:函數名(參數一的值,參數二的值,……);
事件調用:事件名=函數名( );
2、函數聲明的幾點強調:
①函數名的聲明,必須符合小駝峰法則 (首字母小寫,之后每個單詞首字母大寫);
②參數列表,可以有參數,可以無參數,分別稱為有參函數、無參函數;
③聲明函數時的參數列表,稱為“形參列表”(變量的名);
調用函數時的參數列表,稱為“實參列表”(變量的值);
函數中,實際有效的參數取決於實參的賦值,未被賦值的形參,將為Undefined;
④函數如果需要返回值,可用return返回結果。
調用函數時,使用var 變量名=函數名();的方式,接受返回結果;
如果函數沒有返回值,則接受結果為Undefined。
⑤函數中變量的作用域:
在函數中,使用var聲明的變量,默認為函數局部變量,只在函數內部能用;
不用var聲明的變量,默認為全局變量(函數中的全局變量,必須在函數調用后才能使用);
函數的形參列表,為函數局部變量,只在函數內部使用。
⑥函數聲明與函數調用,沒有先后之分。即,調用語句可以寫在聲明語句之前。
【匿名函數的聲明及調用】
1、聲明一個匿名函數,直接賦給某個事件;
window.onload=function(){ };
2、使用函數表達式聲明匿名函數;
聲明函數表達式:var func=function(){ }
調用函數表達式:func();
>>>使用匿名函數表達式,則調用語句,必須在聲明語句之后,否則報錯(對比
常規函數聲明與調用區別?)
3、使用自執行函數,聲明並直接調用匿名函數:
①!function(){ }();//使用任意運算符開頭,一般使用!
②(function ( ){ }( ));//使用()將匿名函數之后的括號包裹
③(function( ){ })( ) //使用( )只包裹匿名函數表達式
三種寫法特點:
①結構清晰,開頭加!,結尾加()。不容易亂,推薦使用;
②可以表明匿名函數與之后的()為一個整體,推薦使用;
③無法表明函數與之后()為一個整體,不推薦使用:
window.onload=function(){ console.log("使用widow.onload調用匿名事件"); }; function func1(){ console.log("調用無參函數") } function func1(num1,num2,nnum3){ var num=num1; console.log("調用有參函數"); console.log("num為:"+num); console.log("參數1為:"+num1); console.log("參數2為:"+num2); console.log("參數3為:"+num3); return 1; } var num=func2(1,2,3,4); console.log(num);
【JS中代碼執行順序】
JS中代碼運行,會先進行檢查、裝載,即聲明變量、函數等操作:
然后再進入執行階段,(變量的賦值等屬於執行階段)
所以,函數的聲明屬於檢查裝載階段,函數的調用屬於執行階段。so,函數調用語
句寫在函數聲明語句之前,井沒有任何關系。
所以,上述代碼,執行流入:
----------檢查裝載階段------
var num;//聲明變量
function funcN() //聲明函數
--- ----執行階段-----
console. log(num);
num=10;
funNoi //執行函數的{ }中代碼
【函數內部的屬性】
Arguments對象:
1、作用:用於保存調用函數時,所賦值的實參列表。
>>>當我們調用函數,並使用實參賦值時,實際上參數已經保存到Arguments數組中。即使沒有形參,也可以使用Arguments[n]的
形式調用參數;
2、Arguments數組的個數:取決於實參列表,與形參無關形(順序從0開始);
但,當第n個位置的形參、實參、Arguments都存在時,形參與Arguments是同步的(即在函數中修改其中一個值,另一個會同步變化)。
function func4(){ console.log("Arguments對象"); console.log(arguments[0]); console.log(arguments[1]); console.log(arguments[2]); console.log(arguments[3]); console.log(arguments[4]); } func4(1,2,3,4)
3、Arguments.callee是Arguments的重要屬性,,用於返回arguments所在的函數引用;
arguments.callee( )可以調用自身函數執行;
在函數內部調用函數自身的寫法,被稱為遞歸,所以arguments.callee( )是遞歸調用時常用的方式。
this:函數調用語句所在的作用域,即,誰調用函數,this指向誰。
以上內容為本次同大家分享的內容,感謝各位朋友的關注。如果有什么疑問或者建議,歡迎各位踴躍指正評論和點贊,可在評論區與博主進行互動,博主將第一時間予以回復,謝謝大家!再見!