活字体機能
ステートメントを使用してタスクを実行するための関数のセットです。
あなたは、異なる機能にコードを置くことができます。別々の機能にコードを分割する方法を決定するのはあなた次第ですが、論理的に通常に基づいて、特定のタスクを実行するために、各機能を行わ分けました。
関数宣言は、コンパイラの関数名、戻り値の型とパラメータを伝えます。関数定義は、関数の実際の身体を提供します。
関数の定義
ファンクションブロックは、以前に使用キーワード機能、括弧内にラップされています。
構文は次のとおりです。
FUNCTION_NAME関数()
{
// コードを実行
}
関数の呼び出し
関数内のコードを実行することができ、それを呼び出すことによってのみ機能します。
構文は次のとおりです。
FUNCTION_NAME()
例
試験関数(){ // 関数定義
はconsole.log(「コール機能」)
}
テスト() // 関数を呼び出します
関数の戻り値
時には我々はそれを呼び出すローカルに結果を返す関数を実行したいです。
これは、return文を使用することによって達成することができます。
return文を使用している場合、この関数は実行を停止し、指定された値を返します。
構文は次のとおりです。
関数FUNCTION_NAME():return_type {
// 语句
戻り値。
}
-
戻り値の型をreturn_type。
-
returnキーワードは、返される結果が続いた後。
-
この関数は一つだけreturn文を持つことができます。
-
戻り型(return_type)関数定義のニーズと一致する戻り値の型。
無名関数:
匿名関数は、関数の関数名ではありません。
何の関数名、同じ標準の機能を持つ他ありません以外のプログラムの動的無名関数の宣言は、実行されています。
私たちは、この式は関数式となり、変数に割り当てられた匿名関数とすることができます。
構文は次のとおりです。
VaRのファン= 関数():数{
戻り 123 ;
}
アラート(ファン()); // メソッドを呼び出します
パラメータを持つ関数
関数を呼び出すとき、あなたはそれに値を渡すことができ、これらの値はパラメータと呼ばれます。
これらのパラメータは、関数で使用することができます。
あなたは、カンマ使用、関数に各パラメータを複数のパラメータを送信することができ分けました:
構文は次のとおりです。
機能GETINFO(名称:文字列、年齢:番号):文字列{
リターン ' $ {名前} --- $ {年齢} ' ;
}
アラート(GETINFO(' zhangsan '、20);
-
名前、年齢はパラメータ名です
-
文字列、パラメータのタイプの番号。
オプションのパラメータ
我々はパラメータを定義した場合、これらのパラメータは、オプション、オプションのパラメータは疑問符で識別されない限り、活字体の機能では、我々はこれらのパラメータを渡す必要がありますか?。
function buildName(firstName: string, lastName?: string) {
if (lastName)
return firstName + " " + lastName;
else
return firstName;
}
let result1 = buildName("Bob"); // 正确
let result2 = buildName("Bob", "Adams", "Sr."); // 错误,参数太多了
let result3 = buildName("Bob", "Adams"); // 正确
可选参数必须跟在必需参数后面。 如果上例我们想让 firstName 是可选的,lastName 必选,那么就要调整它们的位置,把 firstName 放在后面。
如果都是可选参数就没关系。
默认参数
我们也可以设置参数的默认值,这样在调用函数的时候,如果不传入该参数的值,则使用默认参数
function getInFo(name: string,age: number = 20):string{
return '${name}---${age}';
}
alert(getInFo('zhangsan');
实例函数的参数 age 设置了默认值为20,调用该函数时如果未传入参数则使用该默认值
剩余参数
也叫 三点运算符 接受新参传过来的值。
有一种情况,我们不知道要向函数传入多少个参数,这时候我们就可以使用剩余参数来定义。
剩余参数语法允许我们将一个不确定数量的参数作为一个数组传入。
function sun(...result: number[]):number{
var sun = 0;
for(var i = 0; i < result.length; i++){
sun+=result[i];
}
return sum;
}
alert(sum(1,2,3,4,.....));
可以在sun()中无限的添加参数,不用改方法的定义。
函数重载
重载是方法名字相同,而参数不同,返回类型可以相同也可以不同。
每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。
参数类型不同:
function disp(string):void;
function disp(number):void;
参数数量不同:
function disp(n1:number):void;
function disp(x:number,y:number):void;
参数类型顺序不同:
function disp(n1:number,s1:string):void;
function disp(s:string,n:number):void;
如果参数类型不同,则参数类型应设置为 any。
参数数量不同你可以将不同的参数设置为可选。
实例
function myInFo(name: string): void;
function myInFo(age: number, name: string): void;
function myInFo(class: any, phone ?: any): void {
console.log(class);
console.log(phone );
}
myInFo("小明")
myInFo(1,"晓峰");
Lambda 函数
Lambda 函数也称之为箭头函数。
箭头函数表达式的语法比函数表达式更短
var getInFo = function (name: string,age: number):string => {
return '${name}---${age}';
}
alert(getInFo('zhangsan',20);
( ) => { }
相当于
function myInFo(): void { }
无参数时可以设置空括号。
好了,ts的函数就到这里吧,和js有点儿不同。