実際の戦闘へのWebフロントエンドエントリ:32の一般的なjsインタビューの質問

JSインタビューの質問:

[面接の質問情報を受け取るには、ここをクリックしてください]

1.javascriptのtypeofによって返されるデータ型

stringbooleannumberundefinedfunctionobject

2.キャストの三種類と暗黙的型変換の二種類に言及?
必須(parseIntparseFloatnumber)暗黙の(== === + -

3. split()とjoin()の違いは
split()、文字列を配列にカットjoin()することです。つまり、配列を文字列に変換します。

4.配列メソッドpop()、push()、unshift()、shift()

  • push()最後に追加
  • pop()テール削除
  • unshift()ヘッド追加
  • shift()ヘッダーの削除

5.IEおよび標準の下で互換性のある書き込み方法は何ですか

var ev = ev || window.event
document.documentElement.clientWidth || document.body.clientWidth
Var target = ev.srcElement||ev.target

6.ajaxリクエスト時のgetとpostの違い

  • getそれはurlバックpost仮想キャリア内部に
  • get サイズ制限があります(送信できるパラメーターはごくわずかです)
  • postよりgetセキュリティ
  • さまざまなアプリケーション、データの要求と送信

7.call和apply地区ВObject.call
(this、obj1、obj2、obj3)Object.apply(this、arguments)

applyそしてcall唯一の相違点は、第二の転送モードの異なるパラメータが、ということであるapply2番目のパラメータは配列である、としなければならないcallパラメータのリストを通過させます。

8.ajaxリクエストが
使用されたときにjsonデータを解析する方法JSON.parse

9.イベント委任とは何ですか?
イベントバブリングの原則を使用して、代わりに独自のトリガーされたイベントを親要素によって実行できるようにします。

10.クロージャとは何か、その特性とは何か、そしてそれがページに与える影響は何か。
クロージャは他の関数の内部変数を読み取ることができる関数であり、そのため関数はGCメカニズムによってリサイクルされません。クロージャを使いすぎると、メモリリークが発生しやすくなります。

なぜポータルを閉じるのですか

11.イベントがバブリングするのを防ぐ方法

  • すなわち:バブリングを停止しev.cancelBubble = trueます;
  • 非IE ev.stopPropagation();

12.デフォルトイベントをブロックする方法

  • 1.1。return false
  • 2 ev.preventDefault().;

13.連絡方法への追加、削除、置換、挿入
1.新しいノードを作成します

// 创建一个具体的元素
createElement();
// 创建一个文本节点
createTextNode();

2.追加、削除、交換、挿入

appendChild();  //添加
removeChild();  //移除
replaceChild(); //替换
insertBefore(); //插入

3.検索

//通过标签名称
getElementsByTagName();
//通过元素的Name属性的值
getElementsByName();
//通过元素Id,唯一性
getElementById();    

14. jsonpの原理と、タグとコールバック関数
動的に作成することが実際のajaxではない理由を説明しscriptます

Ajaxページの更新要求データ操作はありませんか

15.ドキュメントロードとドキュメントレディの違いは
document.onload、構造とスタイル、外観js、画像がロードされた後にのみ実行されることです。js

document.readydomツリーは、メソッドの実装上で作成された、この方法では、ネイティブではないjquery$().ready(function)

16.」「と」= "違い
==はタイプを自動的に変換し、それが等しいかどうかを判断し
===ます。タイプは自動的に変換されません。比較に進むだけです。

17.関数宣言と関数式の違いは何ですか?
ではJavscript、パーサーは、実行環境にデータをロードするときに、関数宣言と関数式を同等に扱いません。パーサーは、コードを実行する前に、まず関数宣言を読み取り、使用可能(アクセス可能)にします。関数式については、パーサーまで待機する必要があります。実際に解析および実行される前に、コードが配置されているコード行まで実行されます。

18.スコープのコンテキストとこれを理解するには、次のコードを参照してください。

var User = {
    
    
 count: 1,
 getCount: function() {
    
    
  return this.count;
 }
};
console.log(User.getCount()); // 1
var func = User.getCount;
console.log(func()); // 是1和undefined

`func`是在`window`的上下文中被执行的,所以不会访问到`count`属性。

19.以下のコードを見て、出力結果を示します。

for(var i = 1; i <= 3; i++){
    
      //建议使用let 可正常输出i的值
  setTimeout(function(){
    
    
    console.log(i);   
  },0); 
};
4 4 4// 原因:Javascript事件处理器在线程空闲之前不会运行。

20. DOMノードがクリックされたときに、関数を実行できるようにしたいのですが、どうすればよいですか?

box.onlick= function(){
    
    }
box.addEventListener("click",function(){
    
    },false);
<button οnclick="box()"></button>

21. Javascriptのイベントフローモデルとは何ですか?
“事件冒泡”:イベントは最も特定の要素によって受信され始め、次に
“事件捕捉”:イベントはレベルごとに上向きに伝播されます。イベントは最初に最も特定されていないノードによって受信され、次にレベルごとに下向きに伝播されます。最も具体的な
“DOM事件流”:3つの段階へのレベル:イベントキャプチャ、ターゲットステージ、イベントバブリング

22.次のコードを見て、出力は何ですか?理由を説明してください。

var a = null;
alert(typeof a);
// object

説明:これJavaScriptは、開始以来のケースです。これnullは、値が1つしかないデータ型であり、この値はnullです。nullポインタオブジェクトを表すため、typeofテストはを返し”object”ます。

23.文字で始まり、数字、アンダースコア、文字が続く文字列を決定します。長さは6〜30です。

var reg=/^[a-zA-Z]\w{5,29}$/;

24.次のコードに答えてください、alertの価値は何ですか?

    var a = 100;  
    function test() {
    
      
        alert(a);  
        a = 10;  //去掉了var 就变成定义了全局变量了
        alert(a);  
    }  
    test();
    alert(a);
// 正确答案是:100, 10, 10

25. javaScriptの2つの変数範囲の違いは何ですか?

  • グローバル変数:現在のページで有効
  • ローカル変数:関数メソッド内で有効

26. nullとundefinedの違いは?
nullこれは、数値に変換される「none」を表すオブジェクトです0数値に変換されるundefined「none」を表す元の値ですNaN宣言された変数が初期化されていない場合、変数のデフォルト値undefinednullまだ存在しないオブジェクトを示すために使用されます

undefined「欠落値」を示します。つまり、ここに値があるはずですが、まだ定義されていません。一般的な使用法は次のとおりです。

1.変数が宣言されているが割り当てられていない場合、それはundefined。に等しくなります。
2.関数を呼び出すときに、指定する必要のあるパラメーターが指定されておらず、パラメーターはundefined。に等しい
3.オブジェクトには属性が割り当てられておらず、属性の値はundefinedです。
4.関数が値を返さない場合、デフォルトで戻りますundefined

null「オブジェクトなし」を意味します。つまり、そこに値があってはなりません。一般的な使用法は次のとおり
です。1。関数のパラメーターとして、関数のパラメーターがオブジェクトではないことを意味します。
2.オブジェクトプロトタイプチェーンの終わりとして。

27. new演算子は正確に何をしますか?
1。空のオブジェクトを作成します。この変数はオブジェクトを参照し、同時に関数のプロトタイプを継承します。
2.これによって参照されるオブジェクトにプロパティとメソッドが追加されます。
3.新しく作成されたオブジェクトはこれによって参照され、最後にこれを暗黙的に返します。

28.jsでの読み込みを遅らせる方法は何ですか?

  • deferasync
  • 動的に作成されますDOM(作成モードscriptDOM中央に挿入、ロードcallBack
  • jsをオンデマンドで非同期にロードする

29.使用中のFlashとAjaxの長所と短所をどのように選択しますか?

フラッシュajaxの比較

1.Flashマルチメディア、ベクターグラフィック、アクセスマシンの処理に適していCSSます。テキスト処理が不十分なため、検索が容易ではありません。
2.ajaxはいCSS、テキストのサポートは非​​常に優れています。検索をサポートします。マルチメディア、ベクターグラフィック、マシンアクセスが不十分です。
共通点:サーバーでのメッセージの非更新配信、ユーザーのオフラインおよびオンラインステータス、DOMの操作

30.ループを使用せず、長さ100の配列を作成します。各要素の値は、その添え字と同じです。

new Array(100).fill(0).map((_, c) => c)

31ページのすべてのチェックボックスを取得するにはどうすればよいですか?(サードパーティのフレームワークを使用しません)

var inputs = document.getElementsByTagName("input"); // 获取所有的input标签对象
var checkboxArray = []; // 初始化空数组,用来存放checkbox对象。
for(var i=0;i<inputs.length;i++){
    
    
  var obj = inputs[i];
  if(obj.type=='checkbox'){
    
    
     checkboxArray.push(obj);
  }
}

32.文字列の前後のスペースをクリアする関数を記述します。(すべてのブラウザと互換性があります)

String.prototype.trim= function(){
    
    
    return this.replace(/^\s+/,"").replace(/\s+$/,"");
}

おすすめ

転載: blog.csdn.net/weixin_56134381/article/details/115330236
おすすめ