概要
今日は第12条 12.12節「ラベル付き文」から12.15節「デバッグ文」まで。発表者は僕です。
資料
リポジトリ名はECMA_262_11ですが、第11回の資料(のつもり)だったからだと思います。12回になるとは思いませんでしたが。
気づき。
- with文とcatchが、内容が大体一緒。
- return文とthrow文が、内容が大体一緒。でも、return文はfunctionの中でしか使えない(文法上は誤りで、エラーハンドリングは各実装に任せる)のに対し、throw文はfunctionの中でしか使えないという制約がない。あと、return文はreturn単体で使えるのに対し、throw文はthrow単体では使えない。
- ちょくちょく出てくる(type, value, target)というタプルのようなオブジェクトの中身は8.9を参考のこと。
- 具象メソッドについては、10.2.1を参考のこと。
- withやcatchのLexicalEnvironmentについては、テストコードを参考のこと。
こんな感じ。catchの中で再定義された変数については、ブロックの中でしか使えない。tryはそうじゃない。レキシカル環境とは、一時的なスコープのこと。oldEnvにデータを一時的に退避させ、ブロックから抜けたらoldEnvを復活させる。
description: "catch doesn't change declaration scope - var initializer in catch with same name as catch parameter changes parameter", test: function testcase() { foo = "prior to throw"; try { throw new Error(); } catch (foo) { var foo = "initializer in catch"; } return foo === "prior to throw"; } });
- Linuxのカーネルとグラフィックボードの関係で、Linuxマシンをプロジェクターにつなげるとカーネルパニックでマシンが再起動することがある
- にこまきは王道にして至高
テストコード
書籍
- 作者: 竹迫良範
- 出版社/メーカー: 秀和システム
- 発売日: 2013/09/25
- メディア: 単行本
- この商品を含むブログを見る