ホームページ >ウェブフロントエンド >jsチュートリアル >開発者からよく聞かれる JavaScript 面接の質問 10 選 (回答分析付き)

開発者からよく聞かれる JavaScript 面接の質問 10 選 (回答分析付き)

青灯夜游
青灯夜游転載
2021-04-26 18:51:043205ブラウズ

この記事では、初心者向けの JavaScript 面接で最もよく聞かれる 10 の質問を紹介します。ある程度の参考値があるので、困っている友達は参考にしてください、初心者の方にも参考になれば幸いです。

開発者からよく聞かれる JavaScript 面接の質問 10 選 (回答分析付き)

この記事では、JavaScript に関して最もよく寄せられる 10 の質問とその回答をまとめました。

これら 10 問のほとんどは Javascript の基礎に関するものなので、JS の学習を始めたばかりの場合は、それらを理解し、習得することが最善です。

この 10 の質問には、JS の closurespromisevariable Promotionclasses などが含まれます。これらは学ぶのがそれほど難しいことではありませんが、面接でよく質問されるものもあるので、答えを知っておくとよいでしょう。 [推奨学習: JavaScript 上級チュートリアル]

JavaScript のクロージャとは何ですか?

クロージャは、一緒に囲まれた関数の組み合わせであり、内部関数はその変数と外部関数の変数にアクセスできます。

これを説明する最も簡単な方法は、上記の例です:

function outer() {
  var name = 'Maria';
  function inner() {
    console.log(name);
  }
  inner();
}
outer();
// 'Maria'

上記のコードでは、inner() 関数がその親関数変数にアクセスできることがわかります。 ## #名前###。したがって、outer() 関数が呼び出された場合、inner() 関数の console.log()name# の値を返します。 #マリア内部関数は外部関数パラメーター オブジェクトにアクセスできますが、内部関数パラメーターは外部パラメーター オブジェクトと同じであるため、内部パラメーター オブジェクトは外部パラメーター オブジェクトを上書きします。次のようになります:

function outer(a, b) {
  const inner = (a, b) => console.log(a, b);
  inner(1, 2);
}
outer('Alice', 'Mark');
// returns 1, 2

クロージャを使用する主な理由は、他の関数を返すことができる関数を返すためです。

JavaScript における DOM とは

DOM はドキュメント オブジェクト モデルであり、Web サイトのオブジェクト指向表現であり、JavaScript を使用して変更できます。

JS を使用して、色、位置、サイズなどの DOM 要素を操作します。ページの特定の要素を選択するために、JavaScript にはいくつかのメソッドが用意されています。

getElementById()
    -
  • id 属性 で要素を選択します。 getElementsByName()
  • -
  • name 属性を使用して要素を選択します。 getElementsByTagName()
  • - 選択したタグ
  • のすべての要素を選択します。 getElementsbyClassName()
  • - 特定のクラス名を持つすべての要素を選択します
  • *
  • querySelector()
- CSS セレクターを通じて要素を選択します。

JavaScript は、要素を取得するだけでなく、要素を操作する他のメソッド (appendChild()

innerHTML() など) も提供します。 JavaScript における Promise とは

Promise は、従来のソリューションであるコールバック関数やイベントを置き換えることができる非同期プログラミングのソリューションです。 ES6 は使用法を統一し、Promise

オブジェクトをネイティブに提供します。 Promise はオブジェクトとして次の 2 つの特徴を持っています。

(1) オブジェクトの状態は外界の影響を受けません。 (2) 状態は一度変化すると変化しません。つまり、Promise は常に 1 つの状態しか持ちません。 Promise には、保留中

(進行中)、

解決済み (完了)、 拒否済み (失敗) の 3 つの状態があります。 Promise は Pending 状態から開始され、成功すると成功状態に移行して resolve コールバック関数が実行され、失敗した場合は失敗状態に移行して # が実行されます。 ##reject コールバック関数。 Promise が解決された場合は、then() メソッドを呼び出し、戻り値を使用して操作を実行できます。拒否された場合は、

catch()

メソッドを使用してエラーを処理できます。 非同期プログラミングを処理する他の方法には、async/await

callbacks

があります。 JavaScript のプロトタイプとは何ですか?

プロトタイプは通常、2 つのプロトタイプ オブジェクト prototype

__proto__

を指します。前者は明示的プロトタイプ オブジェクトと呼ばれ、後者は暗黙的プロトタイプ オブジェクトと呼ばれます。 Javascript オブジェクトはプロトタイプからメソッドとプロパティを継承し、Object.prototype は継承チェーンの最上位にあります。 Javascript プロトタイプ キーワードを使用して、コンストラクターに新しい値とメソッドを追加することもできます。

例を見てみましょう: <pre class="brush:js;toolbar:false;">function Animal(name, kind, age) { this.name = name; this.kind = kind; this.age = age; } Animal.prototype.ownerName(&amp;#39;Mark&amp;#39;);</pre>ご覧のとおり、プロトタイプを使用すると、

ownerName

属性を

Animal( )

コンストラクターの中間。 JavaScript における変数プロモーションとは

プロモーションは、宣言されたすべての変数と関数をローカル スコープにプロモートするメカニズムです。グローバル スコープに配置されると、グローバル スコープの最上位に昇格します。

JavaScript では、変数を使用した後に宣言できます。

Promotion

は、変数または関数を定義する前に実行することによって発生する

unknown

エラーを回避するために使用されます。

name = &#39;Ted&#39;;
console.log(name);
var name;
// &#39;Ted&#39;


var name;
name = &#39;Ted&#39;;
console.log(name);
// &#39;Ted&#39;;

使用 var 声明的变量,如果没有赋值,则默认会被初始化为 undefined, letconst 则不会。另外,需要注意的是,在声明const时,必须同时初始化它,因为后面不可在更改它。

Javascript中的对象是什么

对象只是一种特殊的数据。对象拥有属性和方法。JavaScript 中的所有事物都是对象,如:字符串、数值、数组、函数等。

对象的属性:反映该对象某些特定的性质的,如:字符串的长度、图像的长宽等;

对象的方法:能够在对象上执行的动作。例如,表单的“提交”(Submit),时间的“获取”(getYear)等;

属性只是简单的值,而方法是可以在对象上执行的操作。

var student = {
  firstName: &#39;Alice&#39;,
  lastName: &#39;Jones&#39;,
  age: 21,
  sayHi: () => {
    return &#39;Hi, I am &#39; + this.firstName;
  }
}

在上面的代码中,你可以看到Student对象,其中包含三个属性和一个方法。

Javascript 中的函数是什么

在javascript中函数是一段可以被执行或调用任意次数的JavasScript代码,在数据类型中属于"function"。函数也拥有属性和方法,因此函数也是对象。

在Javascript中函数定义函数声明或函数表达式由关键字function开始。在定义函数时,可以在函数名后面的括号中添加一些参数。当我们调用函数时,括号中传递的值称为参数。

function calculate(x, y) {
  return x * y;
}

calculate(2, 5);

Javascript中的纯函数是什么

如果函数的调用参数相同,则永远返回相同的结果。它不依赖于程序执行期间函数外部任何状态或数据的变化,必须只依赖于其输入参数。

顾名思义,纯函数跟我们初中数学的基本函数一样,遵循一定的映射关系,输入决定输出,一个输入只能对应一个输出。不同的输入可以有相同的输出,但是相同的输入不能有不同的输出

一个函数,如果符合以下两个特点,那么它就可以称之为 纯函数:

  • 对于相同的输入,永远得到相同的输出
  • 没有任何可观察到的副作用

Javascript中的构造函数是什么

构造函数是一种特殊的方法,用于初始化和创建 Javascript 中的对象。

JavaScript 中的构造函数和其它语言中的构造函数是不同的。 通过 new 关键字方式调用的函数都被认为是构造函数。

在构造函数内部,this 指向新创建的对象 Object。 这个新创建的对象的 prototype 被指向到构造函数的 prototype

如果被调用的函数没有显式的 return 表达式,则隐式的会返回 this 对象,也就是新创建的对象。

const Person = (name, age) => {
  this.name = name;
  this.age = age;
}

var man = new Person(&#39;Mark&#39;, 23);
console.log(man);
// { name: &#39;Mark&#39;, age: 23 }

在上面的代码中,我创建了一个Person构造函数,在下面的代码中,创建了一个名为man的新变量,并基于Person构造函数创建了一个新对象。

Javascript类是什么?

自从 ES6 引入以来,我们可以在Javascript中使用类。 类是一种函数,我们使用关键字class代替function 关键字来初始化它。

除此之外,我们还必须在类内部添加constructor()方法,该方法在每次初始化类时都会调用。

constructor()方法内部,我们添加了类的属性。 要基于现有的类创建另一个类,我们可以使用extends关键字。

在JavaScript中使用类的一个很好的例子是 React 框架,它是类的组件。

总结

在本文中,我收集了开发者经常问的 10 个Javascript问题,并给出答案,答案不是唯一,这里只是自己的一些见解,希望本文能给初学者带来一些帮助。

原文地址:https://dev.to/duomly/10-most-common-javascript-questions-answered-1083

作者:Duomly

更多编程相关知识,请访问:编程视频!!

以上が開発者からよく聞かれる JavaScript 面接の質問 10 選 (回答分析付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。