あなたがジュニアJavaScript開発者として知る必要がある一般的なインタビューの質問.

12339 ワード


口頭の質問.

の間の違い.
JavaScriptでは(=)は代入演算子で、二重または三重の等号(= =、= =)は比較演算子です.等号の左側に変数名を配置し、等しい符号の右側の値を指定することで、変数に値を代入するために、単一の等しい符号を使用します.
double =(= =)と三重( == = )の両方を使用して2つの値を比較します.しかし、それらの間に違いがあります、そして、三重の等しい演算子はより安全です.
Double Equalsを使用すると、JavaScriptは値に一致しようとしますが、値の型については気にしません.だから最初に値の型に一致する値の型を変換し、比較します.たとえば、23(数字)をダブルイートを使用して' 23 '(String)と比較すると、JavaScriptは文字列を数値に変換し、それを比較します.その結果、返り値はtrueになります.
"23" == 23 // true
一方、三重同値(= ==)はこれらの種類の変換を避けます.値と型の両方をチェックします.その結果、23(数字)を' 23 '(String)と比較すると、戻り値はfalseになります.
"23" == 23 // false

Truthy & falsy値.
JavaScript Truthy Valueでは、Booleanで遭遇したときにtrueと見なされる値を意味します.偽りの価値にも同じ規則が当てはまる.
信頼できる値は以下の通りです:
true、空の配列"[]"、空のオブジェクト"{}", number (浮動小数点数、exept 0および- 0を含む有効で正の数)、bigint、new date ()、無限大および無限大.
falsy値は以下の通りです:
false , 0 , - 0 , 0 n ,空の文字列(""), NULL , undefiend , NaN.

"NULL "と"undefined "とは?
JavaScript NULLでは、未定義の型はオブジェクトです.NULLは空を意味する.任意の特定の値を割り当てたくない値として割り当てることができます.定義されていない変数は宣言されますが、値は割り当てられません.

DOMとは
ドキュメントオブジェクトモデルは、HTMLとXMLのプログラミングインターフェイスです.WebページはHTMLドキュメントです.この文書はプログラミング言語で操作できません.それで、ドムは遊びに入ります.DOMはHTML文書のオブジェクト指向表現です.これは、JavaScriptなどのプログラミング言語で操作できるノードとオブジェクトとしてドキュメントを表します.

JavaScript矢印関数.
JavaScript矢印関数はJavaScriptの通常の関数の短縮です.しかし、それにもいくつかの制限があります.
*これは独自の結合を持たない.
*引数がない、または新しいです.対象キーワード.
*呼び出し、適用、バインドメソッドに適していません.一般的にスコープを設定することに依存します.
*コンストラクタとして使用できません.
* yieldを使用できません.
//Traditional Named Function with arguments
function add(a, b) {
  return a + b; 
} 

//Arrow Function 
add (a, b) => {
 return a + b;
}

実際的課題

配列の最大の要素を見つけます.
数学.max ()メソッドは、最大の要素を返します.スプレッド演算子(
const numbers = [1, 2, 3]

console.log(Math.max(...numbers)) // 3 

重複する要素を配列から削除します.
配列から重複を取り除く最も簡単な方法は、filter ()配列メソッドを使用することです.filter ()は、要素の配列を返します.重複する要素をインデックス番号でフィルタアウトできます.
const names = ["John", "Smith", "John", "David"]
function removeDuplicate(data) {
  return data.filter((value, index) => {
    data.indexOf(value) === index
  })
}

console.log(removeDuplicate(names)); // ["John", "Smith", "David"]

文字列内の単語数をカウントします.
あなたは私のようなregexの専門家ではない場合は、単にスペースと使用して文字列を分割することができます.長さのメソッドは、単語をカウントします.
function WordCount(str) { 
  return str.split(" ").length;
}

console.log(WordCount("hello world"));

ループを使用して数値の階乗を計算します.
さて、あなたがFactorialに慣れていないならば、あなたはHeckが要因であるものを知る必要があります.階乗は数学用語です.選択された番号を1に乗算する.例えば、5の階乗は5 * 4 * 3 * 2 * 1 = 120である.数値が正の整数でなければならず、0の階乗が1に等しいという条件があります(理由を尋ねないでください)
それでは、我々の条件をまっすぐにしましょう.負の数はなく、0 = 1である.
function factorialize(num) {
  if (num < 0) {
    console.log("Wrong Input")
  }
  if (num === 0 || num === 1)
    return 1;
  for (let i = num - 1; i >= 1; i--) {
    num *= i;
  }
  return num;
}
factorialize(5);
このコードでは、私たちは5からすべて1までに始まります.最初の反復では' i 'の値はnum - 1となります.私たちは、それぞれの反復の後、「i」を1ずつ減じます.NUM変数に番号を格納し、最後にそれを返します.

番号が素数かどうかチェックします.
素数は1とそれ自身で割り切れるだけの正の整数です.例えば、2、3、5、7、11は最初の数の素数である.
function test_prime(n)
{

  if (n===1)
  {
    console.log("1 is neither prime nor composite number.")
  }
  else if(n === 2)
  {
    console.log("Prime number")
  } else {
    for(let x = 2; x < n; x++)
    {
      if(n % x === 0)
      {
        console.log("Not a prime number")
      }
    }
    console.log("Prime number") 
  }
}

test_prime(37)