


気絶!インタビューの質問 console.log(([][[]] + [])[+!![]]+([]+{})[+!![]+ + !![]]) は何を出力しますか?
はじめに
インタビューの質問 console.log(([][[]] [])[ !![]] ([] {})[ !![] !![]]) 出力何?面接中にこの面接の質問に遭遇しました。面接の質問は型変換、暗黙的な型変換、演算子などについて調べたものでした。答えることができませんでした。答え方がわからないわけではありません。めまいがしただけです。質問を読んでいるだけです。ただし、面接の質問ですので、ぜひ解いてみてください。
- " ": 1 元は Number() を使用した場合と同じ変換を実行します
- 数値が 2 つの数値の加算であり、いずれかのオペランドがオブジェクト、数値、またはブール値の場合、toString メソッドが呼び出されて文字列に変換されます
- "!": 非演算子、この操作常にブール値を返します
- "!!": ブール値への強制変換
最初に実行します([][[]] []) , まず [][[]]
内の
[][[]] を実行します。
[][[]]
-
の値 まず、JavaScript エンジンは空の配列
[] を解析します。空の配列には要素がありません。 -
次に、エンジンは、プロパティ名として
[]を使用して、空の配列のプロパティにアクセスしようとします。この場合、
[]自体は配列であるため、JavaScript エンジンはそれを文字列に変換しようとします。
[]は空の配列であるため、文字列に変換した結果は空の文字列
"" になります。 -
最後に、エンジンは空の配列内の
""という名前のプロパティへのアクセスを試みます。このプロパティは空の配列には存在しないため、結果は
unnamed になります。
したがって、
[][[]] の実行結果は
unknown
その後、
([][[]] [])次の実行は
(unknown []) で暗黙的な型変換が実行され、
Convert unknown を文字列
"unknown" に変換し、[] を "" に変換して、2 つの文字列を結合します。したがって、結果は
"unknown"
になります。その後、[!![]] を実行すると、!![] 空の配列がブール値 true に変換されます。単項演算は数値に変換されます。true は
true を数値
1 に変換します。結果は
[1] です。したがって、
([][[]] [])[ !![]] は
unknown[1] を取得できます。この結果は、文字列
'n' になります。
次のステップは、
([] {})[ !![] !![]]
-
となります。まず
([] {})を実行し、
[] {}を計算します。これにより、暗黙的な型変換がトリガーされ、空のオブジェクトが文字列
"[object Object]"に変換され、2 つの文字列が連結されます。したがって、結果は
'[オブジェクト オブジェクト]' -
になります。[!![] !![]]を再度実行します。
!![]解析後の結果は1なので、この部分を実行すると、 get は値 1 を
1 1に加算することで、結果は
[2] -
であり、これは文字列 b結合された 2 つの部分は
'[object Object]'[2]
#最後に、前段で得られた結果 'n'
と後段で得られた結果 'b'
を加算して、最終結果 'nb を取得します。 '
要約: この問題が当面解決できない場合は、いくつかの理由が考えられます。1 つ目は、実行順序が明確でないこと、2 つ目は、実行順序が明確でないことです。 clear.[][[]]
これは実際には、キー []
を持つ空の配列の値を取得するためのものであり、配列のキーは文字列であるため、[]
は ''# に変換されます。 ## が見つからないため、未定義が返されます。あなたは今、この面接の質問を知っていますか?
Web フロントエンド開発ビデオ チュートリアル 」
以上が気絶!インタビューの質問 console.log(([][[]] + [])[+!![]]+([]+{})[+!![]+ + !![]]) は何を出力しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











JavaScript文字列置換法とFAQの詳細な説明 この記事では、javaScriptの文字列文字を置き換える2つの方法について説明します:内部JavaScriptコードとWebページの内部HTML。 JavaScriptコード内の文字列を交換します 最も直接的な方法は、置換()メソッドを使用することです。 str = str.replace( "find"、 "置換"); この方法は、最初の一致のみを置き換えます。すべての一致を置き換えるには、正規表現を使用して、グローバルフラグGを追加します。 str = str.replace(/fi

このチュートリアルでは、カスタムGoogle検索APIをブログまたはWebサイトに統合する方法を示し、標準のWordPressテーマ検索関数よりも洗練された検索エクスペリエンスを提供します。 驚くほど簡単です!検索をyに制限することができます

それで、あなたはここで、Ajaxと呼ばれるこのことについてすべてを学ぶ準備ができています。しかし、それは正確には何ですか? Ajaxという用語は、動的でインタラクティブなWebコンテンツを作成するために使用されるテクノロジーのゆるいグループ化を指します。 Ajaxという用語は、もともとJesse Jによって造られました

この記事シリーズは、2017年半ばに最新の情報と新鮮な例で書き直されました。 このJSONの例では、JSON形式を使用してファイルに単純な値を保存する方法について説明します。 キー価値ペア表記を使用して、あらゆる種類を保存できます

コードプレゼンテーションを強化する:開発者向けの10個の構文蛍光物 ウェブサイトやブログでコードスニペットを共有することは、開発者にとって一般的な慣行です。 適切な構文ハイライターを選択すると、読みやすさと視覚的な魅力を大幅に改善できます。 t

楽なWebページレイアウトのためにjQueryを活用する:8本質的なプラグイン jQueryは、Webページのレイアウトを大幅に簡素化します。 この記事では、プロセスを合理化する8つの強力なjQueryプラグイン、特に手動のウェブサイトの作成に役立ちます

この記事では、JavaScriptとJQuery Model-View-Controller(MVC)フレームワークに関する10を超えるチュートリアルの厳選された選択を紹介します。これは、新年にWeb開発スキルを向上させるのに最適です。 これらのチュートリアルは、Foundatioのさまざまなトピックをカバーしています

コアポイント これは通常、メソッドを「所有」するオブジェクトを指しますが、関数がどのように呼び出されるかに依存します。 現在のオブジェクトがない場合、これはグローバルオブジェクトを指します。 Webブラウザでは、ウィンドウで表されます。 関数を呼び出すと、これはグローバルオブジェクトを維持しますが、オブジェクトコンストラクターまたはそのメソッドを呼び出すとき、これはオブジェクトのインスタンスを指します。 call()、apply()、bind()などのメソッドを使用して、このコンテキストを変更できます。これらのメソッドは、与えられたこの値とパラメーターを使用して関数を呼び出します。 JavaScriptは優れたプログラミング言語です。数年前、この文はそうでした
