ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptの関数の詳しい説明_javascriptスキル

JavaScriptの関数の詳しい説明_javascriptスキル

WBOY
WBOYオリジナル
2016-05-16 16:12:471219ブラウズ

キーワード function は関数を定義するために使用されます。

コードをコピーします コードは次のとおりです:

//関数の宣言定義:
function funcname([arg1[,args[...,argn]]]){
ステートメント
}
//関数式定義:
var funcname = function ([arg1[,args[...,argn]]]){
ステートメント
};

関数本体にステートメントが 1 つしか含まれていない場合でも、関数ステートメントの中の中括弧は必須であることに注意してください。

JavaScript では、関数は Function クラスの特定のインスタンスです。そして、それらはすべて、他の参照型と同じプロパティとメソッドを持っています。

関数名は実際には関数オブジェクトへのポインターであり、関数はパラメーターの受け渡しと戻り値に関与するパラメーターとして使用できます。

関数のオブジェクト プロパティ

関数は Function のインスタンスであり、関数名はインスタンスの参照アドレスにすぎないためです。したがって、関数のパラメータ受け渡し処理にパラメータおよび戻り値として参加できます。

コードをコピーします コードは次のとおりです:

function call_some_function(some_function, some_argument) {
some_function(some_argument) を返します;
}
関数 add_10(数値) {
数値 10 を返します;
}
console.log(call_some_function(add_10,20)); //30

関数の内部プロパティ

この
•引数オブジェクトには、関数
に渡されるパラメータが格納されます。 •arguments.length は、
に渡されたパラメータの数を返します。 •注: length 属性は、関数の定義時に受け取るパラメータのデフォルトの数を示します。 argument.length は、関数が実際に実行されるときに受け取る引数の数を表します。

コードをコピーします コードは次のとおりです:

関数 test_arguments() {
If (arguments.length == 2) {
console.log(arguments.length);
console.log(引数); } else {
console.log(arguments.length);
console.log(引数); argument.callee(4, 5);
};
}(1, 2, 3)
/**
 3
{ '0': 1、'1': 2、'2': 3 }
2
{ '0': 4, '1': 5 }
 **/


•arguments.callee() は主に、関数自体が再帰関数で呼び出される状況で使用されます。 js と他の言語の違いは、関数名は単なるポインターであり、関数内で関数名を使用してそれ自体を呼び出すことは高度に結合されており、問題が発生する可能性があることです。 ) 自身を呼び出すことでこの問題が回避されます

コードをコピーします コードは次のとおりです:
関数階乗(数値) {
If (数値 1 を返します;
} else {
数値 * 階乗(数値 - 1);
を返します。 };
}
関数 callee_f(num) {
If (数値 1 を返します;
} else {
num * argument.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 = 新しいオブジェクト();
o.color = '青';
o.sayColor =sayColor;
o.sayColor(); //青

call() と apply()

call() と apply() は、すべての関数に含まれる独自のメソッドです。前に述べたように、関数は定義されたオブジェクトであるため、関数を呼び出すとき、関数内のこれは現在の変数と次の変数の呼び出しになります。関数が実行されるドメイン空間を変更したい場合は、call() と apply() を使用してこれを実現できます。

コードをコピーします コードは次のとおりです:

color = '赤';
var o = {color: 'blue'};
関数sayColor() {
console.log(this.color);
}
SayColor(); //赤
SayColor.call(this) //赤
; SayColor.call(o); //青

app() と call() の関数は同じです。主な違いは渡されるパラメーターにあります。

call(this,para1,prar2,prar3) 最初のパラメータは関数を実行するスコープで、以降のパラメータは関数の入力パラメータです。

apply(this,[para1,para2,prara3]) 最初のパラメーターは関数が実行されるスコープでもあり、その後に Array 配列オブジェクトが続きます。

call()/apply() を使用してスコープを拡張する最大の利点は、オブジェクトとメソッドが分離されることです。

組み込みオブジェクト

グローバル オブジェクトは、最も外側のオブジェクトとして理解でき、他のオブジェクトに属さないプロパティやメソッドと同様に、すべてのオブジェクトがグローバル オブジェクトに含まれます。
* isNaN(x) は、パラメータ x が数値であるかどうかを確認するために使用されます。数値の場合は false を返し、それ以外の場合は true を返します
* isFinite(x) はパラメータ x が無限か小さいかをチェックするために使用され、無限か小さい場合は true
を返します。 * 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 value.htm#start
console.log(encodeURI(uri))
//http://www.wrox.com/illegal value.htm#start
console.log(encodeURIComponent(uri))

•対応するデコード関数は decodeURI() と decodeURIComponent() です
•eval(script) は、インタープリタでスクリプトの内容を実行し、対応する結果を返すために使用されます。とても強力です!

注: ブラウザーでは、Windows オブジェクトは Global オブジェクトをカプセル化し、多くの追加のタスクと機能を引き受けます。

Math オブジェクトは別の組み込みオブジェクトです。 JavaScript 用の数学的計算関数を提供します。

上記がこの記事の全内容です。気に入っていただければ幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。