-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JavaScript #186
Comments
イベントループhttps://ja.javascript.info/event-loop
setTimeoutで設定した関数は macrotask キューに追加される。 setTimeout仕組みはよくわからないが指定したコールバック関数は指定した時間の後 macrotask キューに追加される。 Promise仕組みはよくわからないがPromiseがresolveまたはrejectされると登録されていたコールバックが microtask キューに追加される。 async/awaitPromiseのシンタックスシュガー。 const data = await fetch();
console.log(data); fetch().then(data => {
console.log(data);
}); |
プライベートフィールドES2022で追加される予定の仕様。 class Human {
#age = 20;
}
重要な特徴として、プライベートフィールドはインスタンス内でもクラスごとに保持されるというものがある。 class Human {
#age = 20;
sayAge() {
console.log(this.#age); // Humanの#ageを指す
}
}
class Man extends Human {
#age = 30;
sayAge2() {
console.log(this.#age); // Man の#ageを指す
}
}
const man = new Man();
console.log(man.sayAge()); // 20
console.log(man.sayAge2()); // 30 上記のように、 基本的には別のインスタンスのプライベートフィールドにはアクセスできないが、同じクラスであれば別のインスタンスのプライベートフィールドを読み取ることができる。
|
Hoisting(ホイスティング、巻き上げ)JavaScriptでは先にスコープ内の定義をすべて読み込む。
|
Shadow DOMDOM をカプセル化する。
|
strictモードECMAScript5から追加された。 strictモードには以下のような特徴がある。
strictモードを有効にするにはファイルの先頭に |
モジュールのエクスポートエクスポートは named export か default export のどちらかの方法で行う。 named export以下は一例 export const x = 10;
export function test() {...}
export class Test {...}
// まとめてexport
export { name1, name2, name3 };
// 名前を変えてエクスポートすることも可能
export { name1 as alias }; 変数、関数、クラスは宣言の直前に named export は import { name } from './module.js'; という構文でインポートする。 default export以下は一例 export default function() {...}
export default class {...}
// 名前付きの default export もある
export default class Test {...}
// default という名前でエクスポートすると default export になる
export { name1 as default }; default export は import name from './module.js'; という構文でインポートする。 |
ジェネレータ関数ジェネレータ関数は function* testGen(i) {
yield i;
yield i + 1;
yield i + 2;
}
const gen = testGen(1);
console.log(gen.next().value); // 1
console.log(gen.next().value); // 2
console.log(gen.next().value); // 3
|
No description provided.
The text was updated successfully, but these errors were encountered: