シンボルが5つしかないJSF ** k?


47

これはチャレンジではなく質問です。

プログラミングパズルの解決や特定の種類の課題に関連する非チャレンジ型の質問もトピックに含まれています。

質問に今:

5文字だけのJavaScriptコードを書くことは可能ですか?JSFuckはすでに6つのシンボルでこれを行っています!+[]()が、その!キャラクターが必要かどうか疑問に思います。

JSFuckは、文字列へのキャスト(空の配列の追加による)、数値へのキャスト(前に+を書き込む)、および否定によるブール値へのキャストの組み合わせで動作します。例えば:

[]        \\ Empty array
+[]       \\ Cast to number -> 0
!+[]      \\ Negate -> true
!+[]+[]   \\ Cast to string -> "true"

この文字列から、内部に数字を含む角括弧を使用してすべての文字を抽出できます。また、何回でもtrueを加算することで、任意の数字を作成できます。

このように、多くの文字が見つかり、文字列に連結できます。作成できる最も重要な文字列"constructor"Function、任意の関数から取得するために使用でき、このオブジェクトを使用して文字列をJavaScriptとして実行できるためです。

[]["find"]                          \\ the function Array.prototype.find
[]["find"]["constructor"]           \\ the Function object
[]["find"]["constructor"](string)() \\ same as eval(string)

ご覧のとおり、!ここには2つの用途があります。

  • 文字列から文字を選択する番号を作成します。
  • をブール値にキャストして取得"true""false"ます。

これら2つの最初の1つは++、直接で0はなく、インクリメンターを使用して行うこともできますが、配列内の要素で使用できます。

+[]          \\ 0
[+[]]        \\ [0]
[+[]][+[]]   \\ [0][0] -> 0
++[+[]][+[]] \\ ++[0][0]-> 1
++[[]][+[]]  \\ also works because ++ casts to number

したがって、すべての番号はなしで作成でき!ます。

二番目はもっと難しいです。との重要性"true""false"レイアウトの文字"r""s"、両方に表示され"constructor"ます。私はすでに、他のすべての文字を発見した"constructor"手段によって"undefined""Infinity""NaN"および文字列に関数をキャストすることによって。

(どのように)あなたがブール値、または文字を作成することができます究極の質問だから、"r""s"だけ使用してJavaScriptでは+[]()

手紙"l"も役立つかもしれません。フォームnullから取得できますが、これらの5つのシンボルでその値を取得することはできませんでした。たとえば、既に持っている場合はブール値を取得するために使用できます"s"

[]["includes"]()       \\ false
[+[]]["includes"](+[]) \\ true

手紙"l""k"一緒にアクセスできるようになります"r"

([]+[])["link"]() \\ "<a href="undefined"></a>"

ブール値nullまたは文字のいずれかを取得する方法r s l kは非常に便利です!

私たちが持っているもののライブラリ:

Array.prototype.find:[] [(([] [[]] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])+ (++ [[]] [+ []])+(++ [[]] [+ []])])+(([[] [[]] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+( ++ [[]] [+ []])])+(([[] [[]] + [])[++ [[]] [+ []]])+(([] [[]] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])])]

無限大:+((++ [[]] [+ []] + [])+(([[]] [[]] + [])[(++ [[]] [+ []])+(+ + [[]] [+ []])+(++ [[]] [+ []])])+(++ [[]] [+ []] + [])+(+ []) +(+ [])+(+ []))

NaN:+ [] [[]]

未定義:[] [[]]

0:+ []

1:++ [[]] [+ []]

2:(++ [[]] [+ []])+(++ [[]] [+ []])

3:(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])

4:(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[] ] [+ []])

5:(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[] ] [+ []])+(++ [[]] [+ []])

6:(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[] ] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])

7:(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[] ] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])

8:(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[] ] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+ (++ [[]] [+ []])

9:(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[] ] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+ (++ [[]] [+ []])+(++ [[]] [+ []])

a:(+ [] [[]] + [])[++ [[]] [+ []]]

c:([] [(([] [[]] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])])+(([[] [[]] + [])[(++ [[]] [+ [ ]])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [ []] [+ []])])+(([] [[]] + [])[++ [[]] [+ []]])+(([] [[]] + [] )[(++ [[]] [+ []])+(++ [[]] [+ []])))] + [])[(++ [[]] [+ []]) +(++ [[]] [+ []])+(++ [[]] [+ []])]

d:([] [[]] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])]

e:([] [[]] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [ + []])]

f:([] [[]] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [ + []])+(++ [[]] [+ []])]

i:([] [[]] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [ + []])+(++ [[]] [+ []])+(++ [[]] [+ []])]

n:([] [[]] + [])[++ [[]] [+ []]]

o:([] [(([] [[]] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])])+(([[] [[]] + [])[(++ [[]] [+ [ ]])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [ []] [+ []])])+(([] [[]] + [])[++ [[]] [+ []]])+(([] [[]] + [] )[(++ [[]] [+ []])+(++ [[]] [+ []])))] + [])[(++ [[]] [+ []]) +(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])]

t:(+((++ [[]] [+ []] + [])+(([] [[]] + [])[(++ [[]] [+ []])+( ++ [[]] [+ []])+(++ [[]] [+ []])])+(++ [[]] [+ []] + [])+(+ [] )+(+ [])+(+ []))+ [])[(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ [] ])]

u:([] [[]] + [])[+ []]

v:([] [(([] [[]] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])])+(([[] [[]] + [])[(++ [[]] [+ [ ]])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [ []] [+ []])])+(([] [[]] + [])[++ [[]] [+ []]])+(([] [[]] + [] )[(++ [[]] [+ []])+(++ [[]] [+ []])))] + [])[(++ [[]] [+ []]) +(++ [[]] [+ []])+ [] +((++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []]))]

y:(+((++ [[]] [+ []] + [])+(([[]] [[]] + [])[(++ [[]] [+ []])+( ++ [[]] [+ []])+(++ [[]] [+ []])])+(++ [[]] [+ []] + [])+(+ [] )+(+ [])+(+ []))+ [])[(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ [] ])+(++ [[]] [+ []])]

I:(+((++ [[]] [+ []] + [])+(([[]] [[]] + [])[(++ [[]] [+ []])+( ++ [[]] [+ []])+(++ [[]] [+ []])])+(++ [[]] [+ []] + [])+(+ [] )+(+ [])+(+ []))+ [])[+ []]

N:(+ [] [[]] + [])[+ []]

"":([] [(([] [[]] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])+(+ + [[]] [+ []])+(++ [[]] [+ []])])+(([[] [[]] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])])+(([] [[]] + [])[++ [[]] [+ []]])+(([] [[]] + [ ])[(++ [[]] [+ []])+(++ [[]] [+ []])])] + [])[+(++ [[]] [+ [] ] + [] +((++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(+ + [[]] [+ []])+(++ [[]] [+ []])))]

(:([] [(([] [[]] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])])+(([[] [[]] + [])[(++ [[]] [+ [ ]])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [ []] [+ []])])+(([] [[]] + [])[++ [[]] [+ []]])+(([] [[]] + [] )[(++ [[]] [+ []])+(++ [[]] [+ []])])] + [])[+(++ [[]] [+ []] + [] +((++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])))

):([] [(([] [[]] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])])+(([[] [[]] + [])[(++ [[]] [+ [ ]])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [ []] [+ []])])+(([] [[]] + [])[++ [[]] [+ []]])+(([] [[]] + [] )[(++ [[]] [+ []])+(++ [[]] [+ []])])] + [])[+(++ [[]] [+ []] + [] +((++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])))]

{:([] [(([] [[]] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])])+(([[] [[]] + [])[(++ [[]] [+ [ ]])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [ []] [+ []])])+(([] [[]] + [])[++ [[]] [+ []]])+(([] [[]] + [] )[(++ [[]] [+ []])+(++ [[]] [+ []])])] + [])[+(++ [[]] [+ []] + [] +((++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])))]

}:([] [(([] [[]] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])])+(([[] [[]] + [])[(++ [[]] [+ [ ]])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [ []] [+ []])])+(([] [[]] + [])[++ [[]] [+ []]])+(([] [[]] + [] )[(++ [[]] [+ []])+(++ [[]] [+ []])))] + [])[+((++ [[]] [+ [] ])+(++ [[]] [+ []])+(++ [[]] [+ []])+ [] +((++ [[]] [+ []])+( ++ [[]] [+ []])))]

。:(+(++ [[]] [+ []] + [] +(++ [[]] [+ []])+([] [[]] + [])[(++ [ []] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])] +(++ [[]] [+ [] ] + [] +(+ [])+(+ [])))+ [])[++ [[]] [+ []]]

、:[[]] [([] [(([] [[]] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])+ (++ [[]] [+ []])+(++ [[]] [+ []])])+(([[] [[]] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+( ++ [[]] [+ []])])+(([[] [[]] + [])[++ [[]] [+ []]])+(([] [[]] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])])] + [])[(++ [[]] [+ [ ]])+(++ [[]] [+ []])+(++ [[]] [+ []])] +([] [(([] [[]] + [])[ (++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [ + []])])+(([] [[]] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])+( ++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])])+(([] [[] ] + [])[++ [[]] [+ []]])+(([] [[]] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])])] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [ []] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []] )] +([] [[]] + [])[++ [[]] [+ []]] +([] [(([] [[]] + [])[(++ [[ ]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []]) ])+(([[[]] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[] ] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])])+(([[[]] + []) [++ [[]] [+ []]])+(([] [[]] + [])[(++ [[]] [+ []])+(++ [[]] [ + []])))] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])] +(+ [] [[]] + [])[++ [[]] [+ []]] +(+((++ [[]] [+ []] + [])+(([] [[]] + [])[(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])] +( ++ [[]] [+ []] + [])+(+ [])+(+ [])+(+ []))+ [])[(++ [[]] [+ [] ])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[]] [+ []])+(++ [[ ]] [+ []])+(++ [[]] [+ []])]]([[]])+ []

これはcodegolf.stackexchange.com/q/11690/194と非常に密接に関連しており、もしその質問にJSの回答があった場合、私は閉めることに投票したでしょう。現状では、この質問への回答は以前の質問への回答に直接変換される可能性がありますが、違いがあるため、一方的に閉じたくないほど十分に境界線になっています。
ピーターテイラー

29
とてもいい質問です。私は絶対に難解なプログラミングと型破りな計算モデルに関する質問に賛成しますが、一部の人々が近い投票のために準備してください、現在これは人々がメタで同意する範囲に完全に適合しないからです。ただし、このような質問の先例を設定してほしい。:)
マーティンエンダー

1
コメントは詳細なディスカッション用ではありません。この会話はチャットに移動さました
アレックスA.

4
このような質問は、質問に報奨金を与える機能があることを望みます。
-xnor

1
私が得たevalで2453個の文字にwindow許可します。
電卓

回答:


23

ブレーンストーミングの後、結果は、少なくとも最新のブラウザーでは、これを行う方法がないようです。

先に進む前に、特定のドメインでオプションを使い果たした理由についてのいくつかの推論を追加して、プロセス全体を要約しようとします。次に、驚くべき新しい洞察(誰もが忘れているJavaScriptシンタックスのコーナーケースなど)を除いて、残りの文字を取得する方法がないことはかなり明確になります。

リテラル

唯一の即時あなたが作ることができるリテラルは+()[]、ネストされた空の配列である[][[]][[[]]]、などそこから、我々は、使用して値をキャスト開始することができます+

  • +[]ゼロを取得し、Jensのトリックはを使用して任意の正の整数に展開します++

  • []+[]です""。実際、一般的な[]+x文字列表現を取得しますx

[]の次の用途はインデックス作成です。(範囲外のオブジェクトのインデックスを作成する[][[]])あなたが取得しますundefined。それを文字列にキャストして結果にインデックスを付けると、文字が得られますd e f i n u。最初にを使用して整数にキャストすると、文字の後に続く+youが取得されます。NaNa N

++これまでに到達した整数以外の値でトリックを使用するとNaN、エラーが発生するか、エラーになります。また、作成できるオブジェクトはいずれも(まだ)呼び出し可能で()はないため、役に立ちません(グループ化を除く)。

残りのトリックは、キャストとインデックス作成です。質問は0123456789adefinuN、次のいずれかの文字を使用してどの文字列を作成できるかです。

  • 新しい文字列を取得するために整数にラウンドキャストできる数値リテラル、または
  • 到達可能なオブジェクトのプロパティ名は何ですか?

数値リテラル

第二の選択肢の一例として、我々は文字列を作ることができ"1e1000"、その後、取得Infinityから+"1e1000"、そのキャストバックを文字列にすることは私たちに手紙を取得yしてI

また、を作成し"11e100"、数値にキャストし、文字列に戻して取得し"1.1e+101"、そこからを抽出して.およびにすることができ+ます。

それを使用して.、文字列を作成し、".0000001"それを数字にキャストして戻すことが"1e-7"でき-ます。

それは基本的にすべてのフロートがあなたを手に入れることです:Infinityと以外の興味深い値NaNはなく、通常の文字列表現では以外の文字は使用されていません-+.0123456789e

物性

手紙があり-+.0123456789adefinuyINます。どのプロパティに到達できますか?JavaScriptに聞いてみましょう。

>>> R = /^[-+.0123456789adefinuyIN]+$/
>>> [Array, Object, String, Number].reduce((h, f) => {
        h[f.name] = Object.getOwnPropertyNames(f.prototype).filter(x => x.match(R));
        return h }, {})

{ Array: [ 'find' ], Object: [], String: [], Number: [] }

[].findJensがすでに見つけたのみ。それを文字列にキャストし、そのすべての文字を刈り取り、再試行してみましょう。文字列表現はブラウザ間で少し異なります。ChromeおよびEdgeでは、スペースとスペース"function find() { [native code] }"が含まれacdefinotuv()[]{}ます。現在、完全なアルファベットは+-.()[]{}0123456789INacdefinotuvyです。Firefoxでは、スペースと改行が増えますが、文字は同じです。

検索を繰り返します。

>>> R = /^[+-.()\[\]{}0123456789INacdefinotuvy]+$/
>>> [Array, Object, String, Number, Function].reduce((h, f) => {
        h[f.name] = Object.getOwnPropertyNames(f.prototype).filter(x => x.match(R));
        return h }, {})

{ Array: [ 'concat', 'find' ],
  Object: [],
  String: [ 'concat' ],
  Number: [],
  Function: [] }

String.prototype.concat廃止されました:まさに+できることを行いますが、すでにできることです。だから我々はなったArray.prototype.concatArray.prototype.find。それらで何ができますか?

機能

concat()長い配列を初めて作成できます。[[]].concat([[]])であり[[], []]、それを文字列にキャストすると取得でき","ます。(これは、新しいプロパティを見つけるのに役立ちません。)しかし.concat、値を変更することはありませんnull。また、そのような値を返すことはありません。

電話find()も役に立たない:MDNのドキュメントに

find()アレイ満たすの要素与えられたテスト関数場合、メソッドは、配列内の値を返します。それ以外の場合undefinedは返されます。

どちらも、インデックス作成を使用して既に実行できます。


そしてここからは、他に行く場所はありません。私が書いたことを疑う場合は、コメントで知らせてください。


1
私は一人で、過去に時間を働いてきた私の個人的なアプローチは、すべての実行可能な得られているnull:返す関数をString.prototype.matchRegExp.execArray.prototype.includes。私が知らない正規表現を形成する奇妙な方法がない限り、これらのすべてを形成することは不可能であると見つけると、これを行う可能な方法はないと結論付けました。
コナーオブライエン

素敵な分析!これはおそらく正しい答えですが、私はまだいくつかのトリックを期待しています...おそらく間違った希望:)
ジェンスレンダー

catch and throwの文字を取得できた場合、エラーの文字を取得できますか?それは「hwr」です。
Rɪᴋᴇʀ

3
現在できない文字列"catch"とを構築しても、それらをキーワードとして使用"throw"するようevalなものが必要になります。これがそもそもの目標です。
リン

数字の-キャストを使用して負の数を指定することもできますが、それはあまり役に立ちません。
電卓

15

Lynnの答えの3つの関数はそれほど役に立たなかったわけではありません。しかし、ECMAScript 5の厳格モードは私の計画を妨げました。

JavaScript / ECMAScriptの古いバージョンには奇妙な点があります。オブジェクトなしでメソッドが呼び出された場合、グローバルオブジェクトwindowが想定されます。これを行うことができます:

a = {f:function(){return this}};
a.f();                            // Returns a.
g = a.f;
g();                              // Returns window.
window.g();                       // Also returns window.

これは、最新のブラウザーにも当てはまりますが、関数が厳格モードで定義されていない場合のみです。そして、すべての組み込み関数(ネイティブコード付き)は厳密モードになっているようです。厳密モードがまだない古いブラウザでは、これは組み込み関数でも機能します。

古いブラウザを使用していると仮定します。その後、必要に応じてwindow、を含むものを返す組み込み関数を見つける必要がありますthis。私たちが持っていた唯一の選択肢の中に、Array.prototype.concatまさにそれを行う機能があります。次のようにテストできます。

Number.prototype.concat = Array.prototype.concat;
1..concat(2);                     // Returns [1, 2]
concat = Array.prototype.concat;
window.concat(2);                 // Returns [window, 2]
concat(2)                         // TypeError in modern browsers while
                                  //   returning the same thing in older ones.
concat.bind(window)(2)            // A workaround in modern browsers.

したがって、基本的には、呼び出されるオブジェクトが配列であるかどうかは関係ありません(ただし、少なくともオブジェクトである必要があります)。そうでない場合は、配列にラップします。

があった場合window、まず文字列[object Window]にキャストして文字列を取得できます。新しいキャラクターを使用すると、次の2行をそれぞれb取得rしてs使用できますconstructor

window["atob"]("cuaa")[0]
window["atob"]("cyaa")[0]

しかし、他の問題はからオブジェクト参照を削除すること[].concatです。ので、仕事しない配列でそれをラップし、抽出[].concat既に手段[]["concat"]。どちらを使用して構築できるかを知る唯一の方法+[]()は、関数から返すことです。Array.prototype.findそれができるように見えました:

[[]["concat"]]["find"](x=>1)      // Returns Array.prototype.concat, where x=>1 can
                                  //   be replaced with any always truthy function.

私たちは常に真実の機能を持っていました。Array.prototype.concatそしてString.prototype.concat、オブジェクトがある場合、戻りtruthy両方window。後者を使用する場合、使用可能な3つの機能すべてを使用しました。

しかし、残念ながら、Array.prototype.find使用している古いブラウザには存在しません。少なくとも、機能するものは見つかりませんでした。そして、オブジェクト参照を削除する別の方法は見つかりませんでした。

戻っていることを最近のブラウザでテスト可能である完全なコードrs、と.bind(window)回避策:

[[]["concat"]]["find"](""["concat"].bind(window)).bind(window)()[0]["ato"+([]+[[]["concat"]]["find"](""["concat"].bind(window)).bind(window)()[0])[2]]("cuaa")[0];
[[]["concat"]]["find"](""["concat"].bind(window)).bind(window)()[0]["ato"+([]+[[]["concat"]]["find"](""["concat"].bind(window)).bind(window)()[0])[2]]("cyaa")[0]

クールな情報。どのブラウザを試しましたか?
リン

@Lynn多くはありません。主にFirefox 3.6.0および25.0。私はここここから読みましfindが、それはストリクトモードよりもずっと遅れて来たので、何か機能するものを見つけることはまずありません。Edgeについて尋ねたのは、標準に従うよりも後方互換性を好む可能性があると思ったからです。同じ理由でKonquerorも試しました。また、一部のコマンドラインブラウザーはJavaScriptをサポートしていません。
jimmy23013

Safari 7.1と8、およびブラウザーのスクリーンショットWebサイトの電話でランダムにデフォルトのブラウザーを試してみました。今のところどれも機能しません。
jimmy23013

@ jimmy23013 Safari 5.0または5.1をお試しください。Can I useによると、古いSafariでの部分サポートは、無効と見なされるべき多くのJSを引き続き受け入れる厳格モードを指します。しかしfind、まだ実装多分それは...、部分的ではなかったでしたか?だけで、それは...自分のリストにあった場合
mbomb007
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.