配列のメソッドは、文字列を持つことができ、同時に2つの方法上記のJSONを持っていながら、文字列は、メソッドの配列を持っている、それは驚くべきではないでしょうか?実際に、私は、このメソッドが呼び出され、パイプのようにしたい「詐欺のデータタイプ。」
2つの近いJSデータについての最初の話は、JSONと呼ばれる配列を、と呼ばれます。なぜ両方がそれを言うの取得?まず、タリアは「お父さん、」はい、すべてのObjです。彼らは、同じ場所をあなたに教えてくれません。
JSONの長さが定義されていないと言うことは、正確なJSONなしの長さ、。実際には、これはこれは私有財産ではないので、それが定義されていない、それのオブジェクトの単なる私的財産です。長さ方法がArray.prototypeを、二番目の配列に対応する値にブラケットを用いて抽出することが可能です。
=がある[1,2,3]。
[0] // 1
[1] // 2
括弧内の数字を置く必要がありますが、実際のJSONでこの機能がサポートされて。それはチャンスを与えたこと。
[OK]を、今JSONで[1,2,3]オブジェクトを偽造。
=は{あります。
'0':1
'1':2、
'2':2
}。
鍵ペアでJSONのキー値がOKの場合されて、私は0,1,2の文字列を使用することができ、唯一のナンバーキー値として説明することはできません。
やることが、このような
[0] // 1
[1] // 2
もちろん、長さの最後のステップ短い場合、システムを欺いているように見える、[OK]を、私たちは直接長さを与えます。
=は{あります。
'0':1
'1':2、
'2':2、
長さ:3
}。
出力及び[1,2,3]が完全に異なっている一つのそのような事実は、。端的に言えば、我々はJSONを使用していた、実際にすることなく、コンテンツを見て、完全に人間の目を欺くことができます。
最後に、あなたは、システムの目を欺くことはできませんか?最初のテストの前に、我々は、オブジェクトのメソッドの実装の原則について話しています。実際には、このメソッドの機能のすべてのオブジェクトをインスタンス化するためには、あなたが見返りに、この操作を最終たいデータを指しています。
このような理由で、私たちは、メソッドの配列を使用することはできません。この偽のJSONを使用するようにしてください。まず第一に、我々は最初のスライスにしてください。
a.slice()//このメソッドは与えられていません
[] .Slice.call(A)// 1,2,3正常ブラウザをだまさ
私たちは、少し深さを試してみてください。
Array.prototype.slice.call(、1)// 2,3が実際に取りました。
この時間のJSONオブジェクトは長さの属性を持っていない場合は、空の配列を返しますが、この方法では、配列の長さの命令が使用されます。これがなった後、すべての私達のJSON、および配列の同じ後、この方法は、実際には、メソッドの配列を実行するためにブラウザをだますことができます。
もちろん、私たちのような、それは少し、配列は、独自のサイクルの束を持っているより難しいの別の例があります見つけることが、forEachの、findIndexは、我々はそれの最後をテストします。
[] .findIndex.call((関数(例えば、インデックス){
console.log(E); 1,2,3-
console.log(インデックス)。0,1,2
}))。
この方法は、完全に明確なJSON配列を使用することも可能ですが、という意味では、すべて、実際には、発見後に観察、メソッドの大多数の配列を使用することができない問題、あなたは配列としてキー値と長さではなく、ラインでJSONを使用したい場合は、何も意味をなさないように思いません。我々は確かにJSON文字列メソッドできますか?
=「123」があります。
と
=は{あります。
'0': '1'
'1': '2'、
'2': '2'、
長さ:3
}。
明らかな違いは、[0]自分のaが1でないときの出力にはいないようだ、長さも3です。[OK]を、試してみましょう
」.substring.call(A)// '[オブジェクトのオブジェクト]'
あなたは、サブストリングはこの事を認識することが、与えられていない使用することができます。しかし、インテリアは、彼がこれの真のオブジェクトがobjを解析することであることを自分自身の内部に彼を公開しました。彼は最終的にこのから出てくる事が返されます。もちろん、あなたがこの問題はそこに行く場合は、新しい文字列文字列がある、と言うのだろうか?さあ、の質問を見てみましょう。
するvar A =新しい文字列( '123');
'123' '(A)// .substring.call'。
私がテストした後、いくつかの方法がありませんエラーが、しかし、出力が文字列「[オブジェクトのオブジェクト]」であることがわかりました。人々の文字列は、そのターゲットが、これも実際にある問題の深さを反映して、すべてではない権利です。が、文字列オブジェクトは、オブジェクトへの参照、またはすべての私有財産の特性が、配列やオブジェクトOBJを持っており、いくつかの重要な違いがあります。エンドJSONに来るもちろん、我々は文字列の配列を再生しようとするでしょう。
=がある[1,2,3]。
'(1).substring.callを' //、2,3-。
エラーませんが、配列はまた、超クールなsubstringメソッドの文字列を、裏起毛ありません。しかし、カットオフ値は、実際にはかなりではない、私たちが望むものです。はい」、2,3' ;
実際に、2,3' 自然に生じる最後の最初の傍受から始まる、「1,2,3」に内部配列を見つけることは困難ではありません。
実際には、後にいくつかの方法をテストし、文字列の配列はまだ、かなりフレンドリーほとんどがサポートされていたが、その後、あなたは配列に行く、それが自動的にカンマで文字列に変換されます。「1,2,3」に変換[1,2,3]のように、実際には何の文字列配列方法はとてもフレンドリーありませんが、ちょうど微細化の方法があります。例えば:
[] .slice.call( '123'、1)// [ '2'、 '3']。
配列に[「2」、「3」]に自動的に移動した後に「123」である[「1」、「2」、「3」] [開始で、最初のものから採取[「2」、「3」]になり、スプリット(「」)ステップを保存するので、それは良い結果だが、それは、配列に分けなるアルファベットの文字だけです。しかし、いくつかの他の方法などのそれと運、:
=「123」があります。
[] .Push.call(4 '')//エラー
実際には、非常に数が少ない、テストのほとんどを見つけることができますが、使用することができ、小さな部分が残っています。
要するに、この事は、実際の戦闘で実際に実用的な意義はありませんが、JSONの、実際には配列、文字列、方法の節は、一般的なことができるかどうかと言うこと。
教室の先生のフロントエンドのレオ・リー・ツアーへ]をクリックしてようこそ
サイトに最も完全なフルスタックのコースを入力するためにクリックし、「リー・ツアーレオ-設計するために、ゼロベースからWebフロントエンド、フルスタック」あなたは何千もの最速タイムの給料でステップとります