【Javascript学習ノート】【ES 6:関数の拡張】
3979 ワード
目次ディレクトリ 関数パラメータのデフォルト値 は、デフォルト値の解釈と組み合わせて使用されます. デフォルトの位置 関数のlength属性 作用域 ショートカットリンク 関数パラメータのデフォルト値
パラメータ定義の後に直接書きます.このパラメータがない場合はデフォルト値が使用されます.
注意!let、constでパラメータを宣言してはいけません.そうしないと、エラーが発生します.
デフォルト値の解釈と組み合わせて使用
関数パラメータのデフォルト値は使用されません.注意!関数fooのパラメータがオブジェクトである場合にのみ、変数xとyは解構賦値によって生成されるため、foo()にはパラメータがなく、エラーが発生する.解決策は以下の通りである(
デフォルトの場所
関数のlengthプロパティ
js関数のlengthプロパティは、パラメータの数を返します.しかし、デフォルト値を指定すると、lengthプロパティはデフォルト値が指定されていないパラメータの数だけを返します.!!デフォルト値がテールパラメータでない場合、lengthプロパティも後のパラメータに計上されません.
アクティブドメイン
関数を宣言して初期化すると、パラメータは個別の役割ドメインを形成します.初期化が終わると、この役割ドメインは消えます.例:ここでのパラメータyは、グローバルxではなくパラメータXからの値を得る
ショートカットリンク
すべてのReact学習ノートのディレクトリClick Here>>すべてのJavascript学習ノートのディレクトリClick Here>>Less学習ノートClick Here>>安利一波フロントエンド開発推奨ツールClick Here>>ESLint問題記録Click Here>>github各種実戦練習ソースダウンロードClick Here>>私のものがあなたを助けることができると思ったら、无限へようこそgithubライブラリコレクションStar~0 v 0~
パラメータ定義の後に直接書きます.このパラメータがない場合はデフォルト値が使用されます.
function log(x, y = 'World') {
console.log(x, y);
}
log('Hello') // Hello World
log('Hello', 'China') // Hello China
log('Hello', '') // Hello
function Point(x = 0, y = 0) {
this.x = x;// x
this.y = y;
}
const p = new Point();
p // { x: 0, y: 0 }
注意!let、constでパラメータを宣言してはいけません.そうしないと、エラーが発生します.
デフォルト値の解釈と組み合わせて使用
function foo({x, y = 5}) { console.log(x, y); } foo({}) // undefined 5 foo({x: 1}) // 1 5 foo() // TypeError: Cannot read property 'x' of undefined
関数パラメータのデフォルト値は使用されません.注意!関数fooのパラメータがオブジェクトである場合にのみ、変数xとyは解構賦値によって生成されるため、foo()にはパラメータがなく、エラーが発生する.解決策は以下の通りである(
).function foo({x, y = 5} = {}) {
console.log(x, y);
}
foo() // undefined 5
:
はundefined(すなわち、パラメータがない)に渡され、パラメータがデフォルト値に等しいことがトリガーされ、nullは(空のパラメータがある)のでデフォルト値に等しくありません.デフォルトの場所
!
はいずれも末尾パラメータに設定されている.理由:1.見やすい2.このパラメータが省略できることを保証します.そうしないと、その後のパラメータはデフォルトのパラメータで、省略できます.関数のlengthプロパティ
js関数のlengthプロパティは、パラメータの数を返します.しかし、デフォルト値を指定すると、lengthプロパティはデフォルト値が指定されていないパラメータの数だけを返します.!!デフォルト値がテールパラメータでない場合、lengthプロパティも後のパラメータに計上されません.
アクティブドメイン
関数を宣言して初期化すると、パラメータは個別の役割ドメインを形成します.初期化が終わると、この役割ドメインは消えます.例:ここでのパラメータyは、グローバルxではなくパラメータXからの値を得る
var x = 1;
function f(x, y = x) {
console.log(y);
}
f(2) // 2
var x = 1;
function foo(x = x) {
// ...
}
foo() // ReferenceError: x is not defined
ショートカットリンク
すべてのReact学習ノートのディレクトリClick Here>>すべてのJavascript学習ノートのディレクトリClick Here>>Less学習ノートClick Here>>安利一波フロントエンド開発推奨ツールClick Here>>ESLint問題記録Click Here>>github各種実戦練習ソースダウンロードClick Here>>私のものがあなたを助けることができると思ったら、无限へようこそgithubライブラリコレクションStar~0 v 0~