某公司前端筆試題

1.javaScript有哪幾種數據類型javascript

   5種基礎數據類型   Number String Array Boolean Undefined java

   1種複雜類型     Objectjquery

2.JavaScript中哪些爲真?哪些爲假?ajax

  爲假的值正則表達式

      ''  0  -0  false  undefind  null  NaN數組

  其餘的全部值都是真瀏覽器

3.計算如下運行結果oracle

  1)  alert(0/0);    -->NaN  app

//拓展    

NaN != NaN           //-->true

infinity/infinity        //-->NaN

infinity-infinity        //-->NaN

 

 

  2)  alert(1/0)    ---->Infinitydom

  3)  var arr =[1,'abc',function(){alert(3333);}];

      alert(arr[2]())  --->3333  undefined

      arr[2]();    ---->3333

  4)  var len = 4;

     while(len--)  //這裏len判斷以後再  --  

     {

      setTimerout(function(){console.log(len),3000);  -----> -1,-1,-1,-1

      console.log(len);               ----->3,2,1,0

     }      

  5)  window.name = 'Window';

     var cat = {

      name:'Cat'

     };

     var dog = {

      name = 'Dog',

      sound:function(word){

        alert(this.name+word);  

        }    

      };

    dog.sound('is pooping');      --->'Dogis pooping'

    dog.sond.call(window,'is banking');  --->'windowis banking'

    dog.sound.call(dog,'is banking');   ---->'Dogis banking'

    dog.sound.apply(cat,['miaowing']);  ---->'Catis miaowing'

4.請寫出如下正則表達式的詳細規則說明

  1)  /^(0[1-9]\d\d?)?[1-9]\d(6)\d?$/

    這個正則表達式是  匹配    

  以 0 + 1-9的數字 + 一到兩個數字爲開頭  再加  1-9的數字 + 一個數字再+  6 再加一個或者不加數字爲結尾

或者

  以 1-9的數字爲開頭 + 一個數字再+  6 再加一個或者不加數字爲結尾

  2)/^1[89]|[2-9]\d|100&/i  

    這個正則表達式能夠匹配三種狀況     不區分大小寫

      一種是     18/19

      另外一種   2-9的數字 + 上任意一位數字

      或者      100

  3)  /^\w\-/+@[a-z0-9\-]+([\[a-z]{2-6})(1,2)$/i

     這個正則表達式匹配的是

      不區分大小寫   以 一個或者多個 字母 或者 - 開頭  再加上 @ 再加上 一個或多個 a-z 0-9

      在接上 2-6個   a-z 或 [   一次或者兩次

5.請寫出打亂數組的方法

  方法1

    var arr = [1,2,3,4,5,6,7,8,9];
    function arrBreak (arr) {
      arr.sort(()=>{
        var flag = Math.ceil(Math.random() - 0.5);
        console.log(flag);
        return flag;
      })
    }
    console.log(arr);

  方法2

    function arrBreak(arr){
      [len] = [arr.length];
      while(len--){
        j = Math.floor(Math.random()*len);
        [arr[len],arr[j]] = [arr[j],arr[len]]
      }
    }
    arrBreak(arr)

6.寫出document.getElementsByClassName的實現方法

  其實不太懂  實現方法是什麼意思   試問怎麼用???

 根據dom元素的class值 獲取與 方法匹配class 的dom  生成一個dom數組,

 要用的時候 用  []   讀取數組中的dom便可

7.下列哪一個不屬於 js 保留字?            ( B )

A.with
B.parent
C.class
D.void  空的 無效的

8.jquery中如何選擇一個元素的全部兄弟節點  

.sublings()

9.如下那條語句會產生運行錯誤?          ( A

A.var obj = ();
B.var obj = [];
C.var obj = {};
D.var obj = //;

10.請選擇對javascript理解有誤的?          (B) 

A.Jscript是javascript的簡稱
B.javascript   是網景公司開發的一種java腳本語言,其目的是爲了簡化java開發的難度
C.FireFox和IE存在大量兼容問題是由於他們對javaScript的支持程度不一樣
D.ajax技術必定要使用javaScript技術

    java 當時是sun公司的     如今是 oracle的  

    javaScript是網景公司,的工程師 布蘭德·奇  開發的,當時開發的要求是   

    開發一個與java類似但要比java簡單的語言   

    1.刪除全部相關瀏覽器的內容,2.對象與平臺無關,3.全面支持unicode編碼

     本來開發出來叫作  liveScript  後來因爲經濟緣由  爲了宣傳 與  sun公司合做 使用 javaScript這個名字爲了宣傳

11.解釋div元素和span元素的區別

  div 是塊級元素   獨佔一行   能夠設置寬高等屬性

  span  是行內元素   不獨佔一行  不可設置寬高,margin-top/margin-bootom等屬性

12.alert中如何換行?

  在aler中使用js特殊字符    \n  或者  \r

alert('firstLine\rsecondLine');

13.如下關於Array數組對象說法不正確的是      (C B )

A.對數組中數據排序可使用sort函數,若是排序效果非預期,能夠給sor函數加一個排序函數的參數
B.reverse用於對數組數據的倒序排列
C.想數組的最後位置加一個新元素能夠用 pop方法  //push是加 pop是刪除
D.unshift方法用於向數組刪除第一個元素  //應該是添加

14.push(),pop(),shift(),unshift()分別是什麼功能?

  push()    尾部加一位   能夠傳多位 做爲多位的值  返回值是長度

  pop()      尾部刪除一位  不支持傳參  

  shift()   頭部刪除一位  不支持傳參

  unshift()  頭部添加一位  能夠傳多位 做爲多位的值 返回值是長度

15.如何阻止事件的冒泡

  粗暴的方法  return false;

  標準方法   event.stopPropagation();

相關文章
相關標籤/搜索