タグ

ブックマーク / ja.javascript.info (7)

  • Proxy と Reflect

    target – ラップするオブジェクトです。関数含め何でもOKです。 handler – プロキシ設定: 操作をインターセプトするメソッドである “トラップ” をもつオブジェクトです。例: get トラップは target のプロパティの読み取り用、set トラップは、target へのプロパティ書き込み用、など。 proxy の操作では、handler に対応するトラップがある場合はそれが実行されます。それ以外の場合は、操作は target で実行されます。 最初の例として、トラップなしでプロキシを作ってみましょう。: let target = {}; let proxy = new Proxy(target, {}); // 空のハンドラ proxy.test = 5; // プロキシへの書き込み (1) alert(target.test); // 5, プロパティが target

    Proxy と Reflect
  • バブリング と キャプチャリング

    例から始めましょう。 このハンドラは <div> へ割り当てられますが、<em> や <code> のような任意のネストされたタグをクリックしたときにも実行されます: <div onclick="alert('The handler!')"> <em>If you click on <code>EM</code>, the handler on <code>DIV</code> runs.</em> </div> 不思議ですよね?実際にクリックしたのは <em> でしたが、 <div> のハンドラが実行されるのはなぜでしょう? バブリング(Bubbling)バブリングの原理はシンプルです。 要素上でイベントが発生すると、最初にその要素上のハンドラが実行され、次にその親要素のハンドラが実行され、さらに他の祖先を実行します。 たとえば、3つのネストされた要素 FORM > DIV > P があ

    バブリング と キャプチャリング
    murasuke
    murasuke 2023/12/25
  • 非 async から async を呼び出す

    async function wait() { await new Promise(resolve => setTimeout(resolve, 1000)); return 10; } function f() { // ...ここに何を書きますか? // async wait() をして 10 を取得するのを待ちます // 覚えておいてください、"await" は使えません }

    非 async から async を呼び出す
  • 数値

    最新の JavaScript では、2つの数値型があります: JavaScript での通常の数値は “倍精度” として知られる64ビットフォーマットIEEE-754 で格納されます。ほとんどの場合で使用する数値はこちらであり、チャプターでもこちらについて説明します。 BigInt は任意の長さの整数を表現するためのものです。通常の数値では 253 を超えることや、 -253 よりも小さい値を扱うことができないため、場合によって必要になります。BigInt は限られた特別な領域で使用されます。BigInt は BigInt で取り上げます。 したがって、このチャプターでは、通常の数値について説明します。では、知識を広げていきましょう。 数値を書く多くの方法10億を書くことを想像してください。明白な方法は次の通りです:

    数値
    murasuke
    murasuke 2020/12/11
  • ウィンドウを跨いだやり取り

    “同一オリジン” (同一サイト) ポリシーは、ウィンドウとフレームのアクセスを互いに制限します。 2つのウィンドウが開いているとします: 1つは john-smith.com、もう1つは gmail.com です。この場合、john-smith.com がメールを読むようなスクリプトは望まないでしょう。 同一オリジン(Same Origin)同じプロトコル、ドメインとポートを持つ場合、2つの URL は “同一オリジン” 言われます。 これらの URL はすべて同じオリジンです: http://site.com http://site.com/ http://site.com/my/page.html これらは違います: http://www.site.com (別のドメイン: www. のため) http://site.org (別のドメイン: .org �のため) https://si

    ウィンドウを跨いだやり取り
    murasuke
    murasuke 2020/05/10
    “サブドメインは同一オリジンの場合があります”document.domain = 'site.com';
  • 現代の JavaScript チュートリアル

    私たちはこのオープンソースプロジェクトを世界中の人々に提供したいと考えています。このチュートリアルの内容をあなたが知っている言語に翻訳するのを手伝ってください。

    現代の JavaScript チュートリアル
  • カスタムイベントのディスパッチ

    私たちは、ハンドラを割り当てるだけでなく、JavaScript からイベントを生成することもできます。 カスタムイベントを使用して「グラフィックコンポーネント」を作成できます。例えば、メニューのルート要素は、メニューで起きたことを伝えるイベントをトリガすることができます: open (メニューを開く), select (項目が選択された) など。 click, mousedown などのような、組み込みのイベントを生成することもでき、テストをするときに便利です。 イベントコンストラクタイベントはDOM 要素クラスと同様、階層を形成します。ルートは組み込みの Event クラスです。 このようにして Event オブジェクトを生成できます: 引数: event type – "click" や独自の "hey-ho!" のような任意の文字列です。 options – 2つのオプションのプロパ

    カスタムイベントのディスパッチ
    murasuke
    murasuke 2020/01/27
    click, mousedown などのような、組み込みのイベントを生成することもでき、テストをするときに便利 イベントオブジェクトを作成した後、elem.dispatchEvent(event) を使って、要素上で “実行”
  • 1