プロパティは使わないほうがいい。ブラウザでのサポートが望めないからである。プロパティとは何か複数行でも3点リーダーをきかせることができるというもの。プロパティ単体では効果を持たず、他のプロパティと組み合わせて使う。製アプリケーションでの内部的な利用のため。開発者の使用に対してはサポートされないプロパティを、いくつか部分的にサポートしている。ために設計されたプロパティ。開発のごく初期段階であり、まだ実用に耐えないプロパティ。ファイルからはパースできないプロパティ。歴史的な理由でパースはされるが、実際には使われないプロパティ。組み合わせる必要がある。時代に内部利用のため、もしくは実験的に実装され、そのまま放置されたものではないかと推測される。実際に上述の文書ではこのプロパティが「サポートされない」ものとして挙げられている。このプロパティをベンダ接頭辞なしで書く必要があるかない。書いたところで、どのブラウザもサポートしていない。いう全く別の値を使うようになっている。3;}のようにベンダ接頭辞付きのプロパティを併記するのは無意味である。いうプロパティが制定されることもない。いうプロパティ名では標準化されない。プロパティのことが議題に上がっている。そこでの結論としては、最大行数の指定とブロックに対する省略記号の問題は別々に議論していこうというものである。検討されていくことになると思われる。値しか書かないという状況が蔓延したため、ベンダ接頭辞は無意味なものとなった。ベンダ接頭辞付きのプロパティを解釈する。接頭辞付きのメソッドがエイリアスとして仕様に取り込まれるという体たらくである。これらの反省から、現在のブラウザ開発ベンダはベンダ接頭辞を使わず、開発版ブラウザを使っているときや、ユーザーが明示的にオプションを有効にしたときのみ仕様策定中の機能を有効にするという方針になっている。ベンダ接頭辞は、かつて試験的に実装されたプロパティにつけることはあっても、今後新規に実装されていくプロパティにつける必要はない。ベンダ接頭辞をつけるにしても、手動でつけていくのではなく、Autoprefixerのようなツールを使って自動的につけていくのが確実である。日目の記事として公開された。(ES6)の新機能」というライトニングトークをしたので、そのスライドに当日しゃべった内容や補足を追記して以下に掲載します。Edtition)クラス構文アロー関数ブロックスコープPromiseetc...2015年にECMAScriptが大幅に改定されました。クラス構文やアロー関数の追加はあちこちで取り上げられているので皆さんご存知でしょうが、ここではあまり取り上げられていない地味な新機能を紹介します。ES6JavaScriptの文字列はUTF-16符号化形式で表現されます。絵文字などBMP(基本多言語面)外の文字はサロゲートペアと呼ばれるふたつの符号単位の組み合わせで表現されるため、これまでエスケープシーケンスを使うときなどには符号単位(16ビット符号なし整数)ごとに指定する必要がありました。ES2015ではUnicodeの符号位置(U+0~U+10FFFFまでの値)を直接指定できるようになります。森鷗外'Unicodeには結合文字などの表現形式をそろえる「正規化」という手順が定義されています。ES2015では文字列にnormalizeメソッドが追加され、NFCやNFKCといった複数種類の正規化を適用できるようになりました。NFKCで文字列を正規化すると、組文字が個々の文字に展開されたり、全角英数字が半角に、半角カタカナが全角にそろえられたりします。正規化を行うことで「神」が「神」になるなど字体が変わってしまうこともあるので注意してください。SyntaxErrorこれまで正規表現は符号単位ごとにマッチしていましたが、/uフラグを指定することで符号位置ごとにマッチするようになります。未定義のメタ文字があったとき、これまでは\が無視されていましたが、/uフラグ下では構文エラーになります。これにより、将来新たなメタ文字を導入しても、既存の正規表現パターンの挙動が変わってしまうということがなくなります。将来の拡張性確保のためには重要な変更です。true通常正規表現マッチは部分一致ですが、/yフラグを付けると前方一致になります。/bar/.test('foobar')はマッチ成功となりますが/bar/y.test('foobar')はbarが先頭にないのでマッチ失敗となります。前方一致といいましたが、より正確に言うと正規表現オブジェクトのlastIndexプロパティで指定した位置からの一致になります。上の例ではlastIndexに3を指定したので、fooの直後からマッチを試みることになり、マッチが成功しています。これが役に立つ場面として字句解析があげられます。文字列からトークンを切り出した後、次のトークンを探すときには前回のトークンの終了位置直後から探索できると便利でしょう。12文字列のmatchメソッドなどは、引数として渡されたオブジェクトに処理を委譲するようになりました。Symbol.matchメソッドを持つオブジェクトを引数に渡すことで、そのメソッドの返り値がそのまま文字列のmatchメソッドの返り値となります。RegExpを継承するオブジェクトなら、execメソッドを上書きするだけでも大丈夫です。[42]この挙動の変更は、XRegExpのような正規表現を拡張するライブラリの作成に有用だと思われます。多くの数学関数が追加されています。1と同じですが、xが0に近い値のときにより精度の高い結果を返します。isFiniteは引数を数値に変換してから非数・有限値かどうかを判定していました。Number.isFiniteは引数が数値でなければその時点で偽を返します。1))Math.truncは引数が正の数なら切り下げ(Math.floor)を、負の数なら切り上げ(Math.ceil)を行います。Math.imulはふたつの32ビット符号なし整数値を乗算し、その結果の下位32ビットの値を返します。*演算子を使うと64ビット浮動小数点数の有効桁数を超えたときに不正確な値になってしまいます。整数かどうかの判定メソッドNumber.isIntegerも追加されました。Number.isSafeIntegerは整数であるかどうかに加えて、64ビット浮動小数点数で一の位まで正確に表せる範囲内かどうかも見ます。新たな定数を使って言うと、Number.MIN_SAFE_INTEGER以上Number.MAX_SAFE_INTEGER以下の整数に対してNumber.isSafeIntegerは真を返します。recordという値が定義されています。recordという値を実装しているとは限りません。recordに基づく文の評価結果、いわば「文の返り値」は通常触れることはできませんが、eval関数の結果としてその値を確かめられます。recordの扱いが少し変更されました。ES5までは制御構文の本体が空だったとき、プログラム全体の返り値はその制御構文の直前の文の返り値を引き継いでいました。ES2015からは制御構文の本体が空ならundefinedが返るようになります。この変更は主にJavaScriptエンジンの実装の都合によるものです。これまでは制御構文の評価に移ってもそれ以前の文の返り値を保持しておく必要がありました。ES2015に沿った実装なら制御構文の評価に移った時点でそれ以前の文の返り値を破棄してもよく、実装に最適化の余地が生まれると考えられます。-->で囲むことがあります。このとき<!--も-->も単一行コメントとみなされますが、この挙動はECMAScriptで定義されたものではなく、あくまで各Webブラウザの独自拡張という扱いでした。-->をコメントとして扱う構文を定義しています。Webブラウザが後方互換性を確保するために実装するものであり、ブラウザと直接関係ない実装(Node.jsなど)がこの構文に対応することは推奨されていません。プログラマもこうしたレガシーな機能を使うべきでないとされています。くらげだらけ」という記事が興味深いです。項に記述がありました。は行ボックスの幅からあふれる単語に影響を与えるが、最小幅を算出しようという段階では行ボックスの幅も定まっていない)。明示的に指定されていればそのようなことは起こらない)。仕様の注意書きには以下のように書かれています。ように明示的に最小幅を指定したほうがよい。ないと巨大な表や画像があったときに内容がはみ出して読みづらくなることがある。アイテムの内容が膨大なときには、むしろパフォーマンスに悪影響を及ぼしうる)、製作者の意図しない奇妙な表示結果を避けるためだそうです。よる暗黙的な最小サイズの解説に、どんな場面でどんな挙動を想定しているかの例も載っていました。並べたいが、画面幅が狭くて収まりきらない場合」の救済措置を意図しているようです。奇妙な表示結果を避けるための仕様が、ある場面では逆に制作者の意図しない「奇妙な表示結果」を生み出しているというのが面白いですね。仕様が導入された経緯について調べたのですが、その具体的な手順は以下の通りです。何はともあれまずは最新の仕様草案を確認する。仕様の編集者草案を見る。日付け勧告候補とほぼ同じと思われる。仕様草案を斜め読みしていく。プロパティを再定義しているのを見つける。Algorithm」もざっと追おうとするが、分量も多く複雑なので断念。大元の記事に関する仕様草案の記述個所はわかったが、なぜそのような仕様になっているのかはわからない。その仕様がいつ導入されたのかを確認する。Items」の項が登場しているのを確認。日付け草案には存在しない。メーリングリストでの議論を追う。メーリングリストのアーカイブページに移動。items」というのはあったがフォローアップ的な内容のみ。件名に含まれる文字列が「css-flexbox」になっているのもあると後から気づく。Size」が見つかる。ミーティングでの議論を追う。MTG」でググるもミーティング一覧が出てこない。ググったらミーティング一覧ページが出てきた。items」という項目があった。アイテムの最小幅の問題について取り上げられている。ようなキーバインディングを利用するための個人的なメモ。管理者として実行する。スナップショットバージョンを利用。