JS共通インタビューの質問の概要 - 真尋ねました!

1、データタイプを分析するいくつかの方法があります

console.log(typeof演算 'ABC' //   文字列 
はconsole.log(Object.prototype.toString.call( 'ABC' ))
 //   [オブジェクトの文字列] 
はconsole.log( 'abc'.constructor == 文字列)
 // 

 

2.どのようなデータの種類?

基本タイプ:文字列、ナンバー、ブール、未定義、nullの

複合型:機能、オブジェクトは、NaN、配列、正規表現

 

文字列を逆にする3、

VAR STR = 'abcdef'.split(' ')。)(逆。参加(' ')

 

4、イベントデリゲートは何ですか。

イベントデリゲートは、トリガイベントサブラベルが実行するのではなく、親タグを作る泡立ちの使用です。

  //   HTMLの 
<UL> 
  <LI> 1 </ LI> 
  <LI> 2 </ LI> 
  <LI> 3 <LI> 
</ UL> //   スクリプトVAR UL = document.querySelector( 'UL' )。
  ul.onclick = 関数(E){ 
    e.target.style.color = '赤' 
  }

  

 

5、クロージャとは何か、どのような役割

        クロージャーは、スコープの変数を持っていたし、新しい変数のスコープが不明瞭時が、関係なく、関数が実行された場合の、覚えている元の変数のスコープを覚えておくことです。

    1、イテレータとして使用することができます

    図2に示すように、容器は、状態を予測することができます

関数楽しい(){  = 10 戻り 関数(){
     戻り ++を
  } 
} 
VARインナー= 楽しい()
はconsole.log(内側())//   10 
はconsole.log(内側())//   11

 

6、これは問題を指し

詳細この8内のJavaScript大きなポイント!

 

7、すべてのブラウザの互換性、前後にスペースをクリアし、機能を書いてください

関数TRIM(STR){
     IF(STR&typeof演算 STR === "文字列" ){
         リターン str.replace(/(^ S *)|(Sの*)$ / G、 ""); // 前と後の空白を削除
    } 
}

 

8、URLアドレスを取得します

console.log(window.location.href)

 

深いクローンを達成するためにどのように9、

CONST deepclone =(O)=> {
   場合(Array.isArray(O)){
     VARの ARR = []; 
    o.forEach(項目 => { 
      arr.push(deepclone(アイテム)); 
    }); 
    リターンARR。
  } そう であればtypeof演算 O === "オブジェクト" ){
     VARの OO = {};
    VARの K におけるOBJ){ 
      OO [K] = deepclone(OBJ [K])。
    } 
    戻りOO。
  } 
  戻りO; 
}

 

どのくらい10,0.1 + 0.3に等しいです

console.log(0.1 + 0.2 //   0.30000000000000004

 

11、優雅な劣化やプログレッシブクレッシェンドは何ですか?

    実際には、これは2つのスキームブラウザです

優雅な劣化:便利な新機能と、検出する能力;古いとは能力がない場合。

    例えば:

IF (ブラウザのアップレベルブラウザ){ 
      使用して、<ビデオ> 
    } 他に{ 
      フラッシュを使用します
    }

緩やかなクレッシェンド: 

ローエンドのブラウザは基本機能のみを実装し、先進的なブラウザでは、追加機能を実装しています。

このようなファイルのアップロードなど、ローエンドのブラウザはアップロードボタン、増加したハイエンドのブラウザを提供し、それを与えます

 

12.差SUBSTRストリングとスライスとは何ですか?

    ストリング(最初の添字、添字1前の最後の1)

    スライス(最初の添字、添字1前の最後の1)

    SUBSTR(最初の添字、サブストリングの長さ)

   

    スライスは負使用することができますが、位置パラメータを元に戻すことはできません

    サブストリングが負にすることはできませんが、前者は自動的に小数になります

 

13、テキストは10pxの未満ですか?

変換:スケール(0.5)。

 

14、今日の日付の出力は、YYYY-MM-DD形式で表示しますか?

constの日付= 新しい日付(); 
  CONST Y = date.getFullYear()。
  CONST、M = date.getMonth()+ 1 
  CONST D = date.getDate()。

  関数buling(N){
     返す(n.toStringを)。長さ== 1?'0' + N:N。
  } 

  にconsole.log(Y + ' - ' + buling(M)+ ' - ' + buling(D))

 

15、追加、削除、移動、コピー、作成、およびノー​​ドを見つけます

ノードを追加します。

createDocumentFragmentは()//はDOMフラグメント作成 
のcreateElement()// 具体的な要素の作成 
)はcreateTextNodeを(// テキストノードを作成します。

除去、置換、挿入

removeChild()// 削除 
のreplaceChild()//  
のinsertBeforeを()// 挿入

求めます

getElementsByTagNameの()// タグ名によって 
getElementsByName()// 要素のname属性の値で 
getElementByIdを()// 要素ID、一意性により、

 

16、コールと適用の違い

Object.call(これ、OBJ1、OBJ2、OBJ3)
Object.apply(この、引数

 

17は、オブジェクトは元のオブジェクトには影響しません変更を達成することです

せOBJ = {1、B:2 } 
せNEWOBJ = JSON.parse(JSON.stringify(OBJ))
newobj.b = 5 
にconsole.log(OBJ)
はconsole.log(NEWOBJ)

 

18、Q:卵のバスケットは、1が完全取ることができ、2 2 3 3 4 4つの1を残り1に残り、1を左、5は、一、6 6を残し左1、7 7は完全に取ることができます。

(;私は1000 <I ++は、I = 0せ{)
   場合(I%1 == 0 && 
      I%2 == 1 && 
      I%3 == 1 && 
      I%4 == 1 && 
      I%5 == 1 && 
      I%6 == 1 && 
      I%7 == 0 ){ 
        にconsole.log(I)
    } 
  }

 

 あなたがそれを好きなら、へようこそ注意「フロントエンドの擬似叔父、」私はあなたの継続的な学習知識のフロントエンドを共有することになります!

 

おすすめ

転載: www.cnblogs.com/webfy/p/11564210.html