• 某公司前端笔试题


    1.javaScript有哪几种数据类型

       5种基础数据类型   Number String Array Boolean Undefined 

       1种复杂类型     Object

    2.JavaScript中哪些为真?哪些为假?

      为假的值

          ''  0  -0  false  undefind  null  NaN

      其他的所有值都是真

    3.计算以下运行结果

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

    //拓展    
    
    NaN != NaN           //-->true
    
    infinity/infinity        //-->NaN
    
    infinity-infinity        //-->NaN

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

      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]dd?)?[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特殊字符       或者  

    alert('firstLine
    secondLine');

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

      

          

  • 相关阅读:
    GitHub代码阅读神器,你值有拥有!
    SpringBoot项目构建成jar运行后,如何正确读取resource下的文件
    基于SpringBoot-Dubbo的微服务快速开发框架
    基于SpringBoot的Web API快速开发基础框架
    野蛮生长的前端,从杂牌军到正规军
    让Redis突破内存大小的限制
    myeclipse 8.5-10.0 安装 svn 方法
    几秒后刷新页面
    不错的Spring学习笔记(转)
    Spring学习笔记(三)-类扫描的注解
  • 原文地址:https://www.cnblogs.com/96weibin/p/8708198.html
Copyright © 2020-2023  润新知