ぶれすとつーる

だいたいjavascript

ECMAScript

exotic objectがhost objectの呼び名が変わったものという風潮

native object -> ordinary object host object -> exotic object って感じの解釈をよく聞くけど違うと思う。(誰も言ってなかったらごめんなさい) es6上での定義 4.3.6 ordinary object object that has the default behaviour for the essential internal m…

Argumentsと関数内の変数環境の関係

おはようございます。 この記事はJavascript Advent Calender 2014の22日目の記事です。 JavaScript Advent Calendar 2014 - Qiita JavaScript Advent Calendar 2014 - Qiita domenicのツイートをストーキングしてたら、とある話を拾った。 I forgot about t…

ES6 Map/Setのキーの比較まわりの挙動の変化について

今日Firefox29がでてその変更内容の中で 更新された ECMAScript6 仕様草案に準拠するため、Map オブジェクトおよび Set オブジェクトがキーと値の同一性を確認するときは、-0 と +0 を同一として扱うようになりました。 ってかいてるのみて、ほとんど出た当…

文字列リテラルとU+2028

元気にインターネットしてたらユーザの入力した値をこんな感じでDOMに埋め込んでるサイトをみつけた <a href='javascript:edit(2,{"a":"どらえもん","b":["×","×"],"c":"ふごふご"},1)'> ほげええ </a> 入力値いろいろかえて遊んでみたらだいたいの文字列はエスケープはされてたけど曰くのU+2028はsyntax errorだしてた Uncaught SyntaxError: Une…

正規表現リテラルのes3からes5の間での変化

何度目かの聖書(JavaScript: The Good Parts)の輪読会をしてたときに、RegExpの章を担当してくれた子が、「正規表現リテラルから生成される正規表現オブジェクトは内容が同じなら参照も同じになります!」って説明してくれて、「あれ、そうだっけ」って思っ…

Proxyでオブジェクトにlength

ある日、会社で「オブジェクトにlengthプロパティが欲しい」といわれたので色々考えてみました。。lengthプロパティはArrayオブジェクトとかに存在するあれです。 var ary = ["a", "b", "c"]; console.log(ary.length); // output: 3 これを普通のオブジェク…