キーワード関数は、関数を定義するために使用されます。
コードコピーは次のとおりです。
//関数宣言的定義:
関数funcname([arg1 [、args [...、argn]]]){
ステートメント
}
//関数式の定義:
var funcname = function([arg1 [、args [...、argn]]]){
ステートメント
};
関数本文に1つのステートメントのみが含まれている場合でも、関数ステートメントの巻き毛の装具が必要であることに注意してください。
JavaScriptでは、関数は関数クラスの特定のインスタンスです。そして、それらはすべて、他の参照タイプのようなプロパティと方法を持っています。
関数名は実際には関数オブジェクトへのポインターであり、関数はパラメーター転送値と戻り値に参加するためのパラメーターとして使用できます。
関数のオブジェクトプロパティ
関数は関数のインスタンスであるため、関数名はそのインスタンスの参照アドレスのみです。したがって、関数のパラメーター転送プロセスでパラメーターと戻り値として使用できます。
コードコピーは次のとおりです。
関数call_some_function(some_function、some_argument){
return some_function(some_argument);
}
関数add_10(num){
num + 10を返します。
}
console.log(call_some_function(add_10,20)); // 30
関数の内部プロパティ
引数|これ
•引数オブジェクトは、関数に渡されたパラメーターを保持します
•arguments.length着信パラメーターの数を返します
•注:長さ属性は、関数が定義されたときにデフォルトで受信したパラメーターの数を表します。 arguments.lengthは、関数が実際に実行されたときに受信したパラメーターの数を表します。
コードコピーは次のとおりです。
function test_arguments(){
if(arguments.length == 2){
console.log(arguments.length);
console.log(arguments);
} それ以外 {
console.log(arguments.length);
console.log(arguments);
arguments.callee(4、5);
};
}(1、2、3)
/**
3
{'0':1、 '1':2、 '2':3}
2
{'0':4、 '1':5}
**/
•arguments.callee()は、主に関数自体が再帰関数で呼び出される状況で使用されます。 JSと他の言語の違いは、関数名が単なるポインターであり、いつでも変更できることです。関数の関数名は高度に結合されているため、問題を引き起こす可能性があり、Call of arguments.callee()自体はこの問題を回避します。
コードコピーは次のとおりです。
関数因子(num){
if(num <= 1){
返品1;
} それ以外 {
num * factorial(num -1)を返します。
};
}
関数callee_f(num){
if(num <= 1){
返品1;
} それ以外 {
num * arguments.callee(num -1)を返します。
};
}
要因(10); //通常の操作
f =要因;
要因= null;
f(10); //エラー
Callee_f(10); //正常に動作します
f = callee_f;
Callee_f = null;
f(10); //通常の操作
•これは主に、関数が関数の範囲内のオブジェクトを指すのを助けるために使用されます。
コードコピーは次のとおりです。
var color = 'red';
関数syacolor(){
console.log(this.color);
}
syacolor(); //赤
var o = new object();
o.color = 'blue';
o.saycolor = saycolor;
o.saycolor(); //青
call()and apply()
call()およびapply()は、各関数に含まれる独自の方法です。関数が定義されたオブジェクトであることが前に言及されているため、関数を呼び出すとき、これはこの関数と低い変数への呼び出しです。関数が実行されるドメイン空間を変更する場合は、call()and apply()を使用して実装できます。
コードコピーは次のとおりです。
color = 'red';
var o = {color: 'blue'};
関数sayscolor(){
console.log(this.color);
}
saycolor(); //赤
saycolor.call(this); //赤
saycolor.call(o); //青
app()とcall()の関数は同じであり、違いは主に着信パラメーターの違いです。
呼び出し(this、para1、prar2、prar3)最初のパラメーターは、実行される関数の範囲です。後続のパラメーターは関数の入力パラメーターであり、順番に記述された回数が何度もあります。
apply(this、[para1、para2、prara3])最初のパラメーターは、実行する関数の範囲であり、その後に配列配列オブジェクトが続きます。
call()/apply()を使用してスコープを拡張することの最大の利点は、オブジェクトとメソッドのデカップリングです。
組み込みオブジェクト
グローバルオブジェクトは、他のオブジェクトに属さない属性とメソッドだけでなく、最も外側のオブジェクト、すべてのオブジェクトとして理解できます。
* ISNAN(x)は、パラメーターxが数字かどうかを確認するために使用されます。 falseが数に対して返された場合、それ以外の場合はtrueを返します
* ISFINITE(x)は、パラメーターxが無限/小さいかどうかを確認するために使用されます。それが無限/小さい場合、それは真実に戻ります。
* parseint(x)は、文字列を解析し、整数を返すために使用されます
* parsefloat(x)は、文字列を解析し、浮動小数点数を返すために使用されます
* encodeuri()およびencodeuricomponent()は、文字列上で特別なUTF-8エンコードを実行し、ブラウザが理解できる特殊文字を避けます。それらの主な違いは、encodeuri()がURIに属する特殊文字をエンコードしないことですが、encodeuricomponent()は見つけたすべての非標準文字をエンコードします。
コードコピーは次のとおりです。
var uri = "http://www.wrox.com/illegal value.htm#start";
//http://www.wrox.com/illegal%20value.htm#start
console.log(encodeuri(uri))
//http%3a%2FFFWWW.WROX.COM%2FILLEGAL%20Value.htm%23Start
console.log(encodeuricomponent(uri))
•対応するデコード関数は、decodeuri()とdecodeuricomponent()です。
•eval(スクリプト)は、インタープリターのスクリプトコンテンツを実行し、対応する結果を返すために使用されます。とても強力!
注:ブラウザでは、Windowsオブジェクトがグローバルオブジェクトをカプセル化し、多くの追加のタスクと機能を引き受けます。
数学オブジェクトは別の組み込みオブジェクトです。 JavaScriptの数学的計算関数を提供します。
上記はこの記事に関するすべてです。私はあなたがそれを気に入ってくれることを願っています、そしてそれはあなたに役立つでしょう。