某公司前端笔试题

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();

相关文章
相关标签/搜索