ゆの in ECMAScript 解説

nanto_vi, 2008-07-20

ゆの in lanugage とは

プログラムのハック遊び。

X / _ / X < 来週も見てくださいね!

といったアスキーアートを含む一文を演算子オーバーロードなどを用いて実行可能なプログラムとして解釈させ

ひだまりスケッチ×365 来週も見てくださいね!

とコンソールに出力させる。

ゆの in languageとは - はてなダイアリー

ゆの」とは

ゆのを見るには

『夏目友人帳』は土曜 26 時 5 分から、『ひだまりスケッチ×365』は土曜 26 時 25 分から

京都では重要な番組とかぶっているため見られません ><

JavaScript で書くには

オブジェクトから数値への型変換

  1. valueOf メソッドを呼び出した結果がプリミティブ値なら、その値を数値に変換して返す
  2. toString メソッドを呼び出した結果がプリミティブ値なら、その値を数値に変換して返す
  3. 例外を投げる

サイ本 5 版 3.5.3, 3.14

オブジェクトから文字列値への型変換

  1. toString メソッドを呼び出した結果がプリミティブ値なら、その値を文字列値に変換して返す
  2. valueOf メソッドを呼び出した結果がプリミティブ値なら、その値を文字列値に変換して返す
  3. 例外を投げる

valueOf メソッド

Object.prototype.valueOf = function () {
  return this;
};

Number.prototype.valueOfString.prototype.valueOf はプリミティブ値を返す関数で上書きされている

サイ本 5 版 7.4.4

in 演算子

str in object

objectstr という名前のプロパティを持っていれば true、そうでなければ false

サイ本 5 版 7.2.2

ゆの in ECMAScript

var X = {
  valueOf: function () {
    _ += "スケッチ";
    delete this.valueOf;
  },
  toString: function () {
    _ += "×365";
  }
};

ゆの.valueOf = function () {
  そんなことよりヱヴァンゲリヲン新劇場版 =
    _ + " " + eval(/".*?"/.exec(this)[0]);
};

ゆの.toString = function () {
  _ = "ひだまり";
  this();
  delete this.toString;
  return this;
};

var languageが流行ってるって = { undefined: true };

function ゆの() {
  X / _ / X < "来週も見てくださいね!";
}

ゆの in languageが流行ってるって?
そんなことよりヱヴァンゲリヲン新劇場版:破はまだですか?
早くカヲル君が見たいです.
ヱヴァンゲリヲン新劇場版:序でカヲル君が出てきたときは (以下省略);