週末TIL-4月16日
13353 ワード
今日のキーワード📌
1.関数
1-1. 護衛する
宣言された関数を有効範囲の上部にドラッグ&ドロップ
const a = 7
double()
// 함수 표현
const double = function () {
console.log(a * 2)
}
// TypeError 발생
Javascriptは上から下に解釈されるため、double()
関数呼び出しは関数表示部分の上にあるため、タイプエラーが発生します.const a = 7
double()
// 함수 선언
function double() {
console.log(a * 2)
}
// 14 출력
非関数表現の関数宣言では、関数宣言子が有効範囲の最上位レベルに引き上げられるため、関数呼び出しが関数宣言の上にある場合でも、エラーなく実行できます.1-2. 匿名関数
// 기명(이름이 있는) 함수
// 함수 선언
function hello() {
console.log('Hello~');
}
// 익명(이름이 없는) 함수
// 함수 표현
let world = function () {
console.log('World~');
}
// 함수 호출
hello(); // result: Hello~
world(); // result: World~
匿名関数には名前がないため呼び出せないため、データとして使用したり、変数に保存して使用したりすることができます.関数の名前を指定すると、宣言関数を表します.
名前のない匿名関数を変数表現関数に割り当てます.
1-3. インスタント実行関数
// 즉시실행함수
// IIFE, Immediately-Invoked Function Expression
const a = 7
function double() {
console.log(a * 2)
}
double(); //result: 14
// 즉시 실행 함수 1
(function () {
console.log(a * 2)
})(); //result: 14
// 즉시 실행 함수 2
(function () {
console.log(a * 2)
}()); //result: 14
関数を作成すると、すぐに実行される関数とdouble()
の関数をJavaScriptエンジンで区別できます.貼り付けないとjavascriptエンジンは;
関数とインスタント実行関数を明確に区別できないため、タイプエラーが発生します.インスタント実行関数は
double()
形式と()();
形式である.1-4. コールバック関数
コールバック関数とは、関数引数として使用される関数です.
「どういう意味?」
例えば、
(());
関数に入るパラメータでは、最初のパラメータの関数はコールバックに相当します!「じゃあ…「何に使うの?」
function timeout() {
setTimeout(() => {
console.log('Hello!')
}, 3000)
}
timeout()
console.log('Done!')
//result: Done!
//result: Hello!
上記の例では、setTimeout(함수, 시간)
関数が先に呼び出されても、timeout()
関数が3秒後にDone!
を出力するため、setTimeout
関数が先に出力される.では、
Hello!
を出力してからHello!
を出力したらどうすればいいのでしょうか.この場合はコールバック関数を使用します!
function timeout(callback) {
setTimeout(() => {
console.log('Hello!')
callback()
}, 3000)
}
timeout(() => {
console.log('Done!')
})
//result: Hello!
//result: Done!
Done!
関数に新しい矢印関数をパラメータとして追加します.このとき、新しい矢印関数がコールバック関数です.その後、callback関数の内部にtimeout()
が出力され、Done!
関数にパラメータとしてのcallback関数を受け入れるためにパラメータtimeout()
が作成され、実行を保証したい場所で関数が呼び出され、callback
と書かれる.すなわち,パラメータとして用いられる関数はコールバックであり,コールバックは通常実行位置を保証するために用いられる.
論理が非常に複雑であるため、処理に時間がかかる関数にコールバック関数を使用すると、処理が完了した後に実行されることが保証されます.
2.方法
// 객체 데이터
const 멋사 = {
name: '아기사자',
age: 1,
// 메소드(Method)
getName: function () {
return this.name;
}
};
const hisName = 멋사.getName();
console.log(hisName); // result: 아기사자
// 혹은
console.log(멋사.getName()); // result: 아기사자
上記の例では、オブジェクトデータ属性は、callback()
、name(문자열)
、およびage(숫자)
である.属性の一般的なデータ(文字、数値...)非関数が指定されている場合は、属性とは呼ばれず、メソッドと呼ばれます.知らない場所
今日一日を整理します..。🌃
4月15日の授業でJavaScriptを先に勉強しましたが、いろいろな用語が出てきて混乱していました.
「匿名関数?「願い事箱を直すようなものですか?」
「コールバック?!」
「方法?「メフ・メソ?!
そこでjavascriptの授業を始める前に、混同された内容を簡単に見ておくと役立ちます.これから本格的にjavascriptレッスンを始める前に、できるだけたくさん見てみます!
Reference
この問題について(週末TIL-4月16日), 我々は、より多くの情報をここで見つけました https://velog.io/@nu11/TIL-4월-16일テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol