愚かなJavascriptインタビューの質問.

Dec 11 2022
私は技術的な質問に直接反対しているわけではありません。候補者の技術スキルを把握する方法の 1 つだと思います。

私は技術的な質問に直接反対しているわけではありません。候補者の技術スキルを把握する方法の 1 つだと思います。私は厳密な技術面接よりも技術的な議論を好みます。しかし、今日の Javascript に関する最悪の質問の 1 つとその理由について説明させてください。

単方向リスト

私の要点を説明する前に、Javascript の歴史を少し掘り下げてみましょう。

それは 1995 年で、Netscape (Brendan Eich) によって開発され、その後 Mozilla は javascript の強化と開発を続けました。JavaScript の背後にある考え方は、オンラインの世界をブラウジングするときに、ある種のダイナミクスを作成することでした。一部のアラートや非常に基本的なアニメーションに使用されました。Javascript は、Java のルック アンド フィールを持つように設計されていますが、プログラマー以外でも簡単に操作できるように設計されています。当時は AJAX すらなかった -> Javascript はリクエストなどに使用されていませんでした。

1997 年頃 Javascript が ECMA 標準の一部になりました。

2005 年に AJAX の最初の公式リリースがありました -> これが今日の Web 開発が始まったポイントです。データをリロードできるようにするためにページを更新する必要がなくなりました。突然、ある種の Web アプリを作成できるようになったと想像してください。しかし問題は、Javascript はその準備ができていたのかということです。まあ、そうではありません。開発者はIIFEEなどの使用にすぐに慣れました。

(function() {
// Code that runs in your function
var name = 'John Doe'
}
)()
console.log(name) // error as the name is not defined in this scope

IIFEEは基本的に、今日の観点からは、より多くの.jsファイルを使用して複雑なアプリを作成できるハッキーなソリューションでした。この種のソリューションが必要だったのは、Javascript がクラスのない厳密に機能的な言語であったため、変数、関数などの名前付けで競合が発生するためです。

VAR と巻き上げ ->巻き上げとは、宣言を先頭に移動する動作です。また、JavaScript では、変数を宣言する前に使用できます。これは有効なシナリオです:

myVariable = ‘is this shit possible?’
var myVariable;
console.log(myVariable); // is this shit possible?

この例では、変数 myVariable が先頭に移動され、同時に初期化されました。これが理由で、3 行目で変数が既に文字列を格納しています。

そして、そのようなことや問題はもっとたくさんありました。ここで見つけることができるjavascriptの奇妙な部分を忘れないでください:https://hackernoon.com/the-weird-parts-of-javascript-zxo34i8

しかし、バージョン es6 から Javascript で何かが変更されました

新しいアプローチで巻き上げの例に戻ると、次のようになります。

myVariable = ‘is this shit possible?’
let myVariable;
console.log(myVariable); // undefined

Javascript はまだ変数の宣言を先頭に置いていますが、初期化は行っていません。したがって、コンソールは文字列の代わりに未定義の変数を書き込みます。

さらに、バージョン es6 には次の機能があります。

  • アロー関数
  • クラス
  • モジュール
  • 約束
  • 発電機
  • 変数の let および const 宣言
  • Spread および Rest 演算子
  • テンプレート リテラル
  • 破壊
  • そして、はるかに

それでは、間違った面接の質問は何ですか?

要点を描き始める前に、これらの例の少なくともいくつかを示す必要がありました。

あなたが新しい開発者で、Javascript を学び始めたとします。以下を理解する必要はありません。

  • ヴァール
  • IIFEE
  • 閉鎖
  • Promise とその使用法 (ただし、知っておくと便利です)

ただし、古いバージョンの Javascript の知識を確認する必要はまったくありません。古い Javascript は、現在使用されている目的とは異なる目的で構築されました。

結論として、次のように言えます。もちろん、Javascript にはまだ弱点があります。しかし、それを使用する方法を知っている場合は、小さな HTML Web サイトまたは小さなアプリに対してのみバニラ Javascript を記述します。そうでなければ、正気の開発者なら誰でも Typescript を使用することになります。