JS 010
8874 ワード
計算機の作成
1.シーケンス図を描く
2.変数関係の理解
計算機の動作順序に従って、最初に入力された数字numOne
、演算子operator
、演算子の後に入力された数字をnumTwo
変数に入力する.
この場合、変数numOne
のみが存在し、変数operator
のみが存在し、変数operator
のみが存在し、変数numTwo
が存在する.
3.コード
(1)同じコードを繰り返し,繰り返し,繰り返し,繰り返し記述を最大限に排除する.
(2)変数のデータを追加または変更した場合は、画面に出力することを忘れないでください.
(3)ほぼ同一であるが一部のみ異なる関数については,パラメータ処理により重複を解消することができる.
(4)addEventListenerの2番目のパラメータは「関数」を含む必要があり、onClickNumber(「0」)の戻り値は定義されていないため、この関数の戻り値は()=>{}である.に変更する必要があります.
△これらの関数を高次関数と呼ぶ.
(5)return値を変更した後、関数の動作文では、演算子変数が空である場合と空でない場合にif文を加えなければ実行できません.(onClickNumber関数のアクション文には入れず、return値に入れます.)
(6)矢印関数では,閉じた括弧と戻りリンクが一緒であればどちらも省略できる.(最適化)
高次関数による重複除外
関数は、呼び出し時に数値、文字列、ブール値に限らず、Javascriptのすべてのデータ型である値を返します.したがって、関数は関数を返すことができます.<script>
const func = () => {
return () => {
console.log('hello');
};
};
const innerFunc = func(); // func(); == () => {console.log('hello');
innerFunc();
hello
</script>
この場合、func関数を呼び出すと関数が返され、返される関数は他の変数に格納されてもよいし、変数に格納された関数を再呼び出すこともできる.
関数に呼び出されたコードがある場合は、その部分をその関数の実際の戻り値に変換して理解できます.
同じ関数にパラメータを適用すると、func関数を呼び出すとコンソールに設定されます.logの関数が返されます.<script>
const func = (msg) => {
return () => {
console.log(msg);
};
};
const innerFunc1 = func('hello');
const innerFunc2 = func('js');
const innerFunc3 = func();
innerFunc1();
innerFunc2();
innerFunc3();
hello
js
undefined
</script>
(7)if文が重なる回数が多いほど,コードが難しくなる.ほとんどのif文のオーバーラップは、シーケンス図を少し修正することで回避できます.
1)if
ゲートの後に現れる共通の手順を各分岐内部に入れる.
2)境界点で短いプログラムから実行するために、if
文を作成する.
3)ショートプログラム終了後,終了はreturn
(関数内部)またはbreak
(for
ゲート内部)である.
4)else
をクリアする.(重複が削除されます.)
5)次に重なる分岐点が現れると,1)~4)の過程を繰り返す.예시
<script>
function test() {
let result = '';
if (a) {
if (!b) {
result = 'c';
}
} else {
result = 'a';
}
result += 'b';
return result;
}
</script>
<script>
function test() {
let result = '';
if (!a) {
result = 'a';
result += 'b';
return result;
}
if (!b) {
result = 'c';
}
result += 'b';
return result;
}
</scirpt>
(8)if
ゲートおよびswitch
ゲート、およびfor
ゲートおよびwhile
ゲートは、互いに柔軟に変更可能であるべきである.
(9)+演算子以外の演算子は、文字列を自動的に数値形式に変更するので、形式変換関数を使用する必要はありません.
Reference
この問題について(JS 010), 我々は、より多くの情報をここで見つけました
https://velog.io/@hyoungqu23/JS-010-a382j3hw
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
<script>
const func = () => {
return () => {
console.log('hello');
};
};
const innerFunc = func(); // func(); == () => {console.log('hello');
innerFunc();
hello
</script>
<script>
const func = (msg) => {
return () => {
console.log(msg);
};
};
const innerFunc1 = func('hello');
const innerFunc2 = func('js');
const innerFunc3 = func();
innerFunc1();
innerFunc2();
innerFunc3();
hello
js
undefined
</script>
예시
<script>
function test() {
let result = '';
if (a) {
if (!b) {
result = 'c';
}
} else {
result = 'a';
}
result += 'b';
return result;
}
</script>
<script>
function test() {
let result = '';
if (!a) {
result = 'a';
result += 'b';
return result;
}
if (!b) {
result = 'c';
}
result += 'b';
return result;
}
</scirpt>
Reference
この問題について(JS 010), 我々は、より多くの情報をここで見つけました https://velog.io/@hyoungqu23/JS-010-a382j3hwテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol