zoukankan      html  css  js  c++  java
  • 阿里巴巴面试题

     

    1、(单项选择)对于下列程序运行结果,符合预期的是

    function f1() {

        console.time('time span');

    }

    function f2() {

        console.timeEnd('time span');

    }

    setTimeout(f1, 100);

    setTimeout(f2, 200);

    function waitForMs(n) {

       var now = Date.now();

        while (Date.now() - now < n) {

        }

    }

    waitForMs(500);

    A、time apan:700.077ms      B、time apan:0.066ms

    C、time apan:500.077ms      D、time apan:100.077ms

     选择B,因为要f1要过100毫秒执行,f2要200毫秒执行,waitForMs是过500毫秒执行,因为JS是单线程,所以f1和f2执行几乎同时,所以开始时间和结束时间几乎接近,所以他们之间间距时间肯定很小,所以选择B,

     对应题目

    console.time('计时器');

    for (var i = 0; i < 1000; i++) {

          for (var j = 0; j < 1000; j++) {}

    }

    console.timeEnd('计时器');

    答案:计时器: 2.371ms

    2、(单项选择)请选择结果为真的表达式:B

    A、null instanceof Object       B、null == undefined

    C、NaN == NaN                   D、false == undefined

    3、(单项选择)下面程序的执行结果是:A

    var name = 'World!';

    (function () {

      if (typeof name === ‘undefined’) {

       var name = ‘Jack’;

       console.log(‘Goodbye ‘ + name);

      } else {

       console.log(‘Hello ‘ + name);

      }

    })();

    A、Goodbye Jack         B、Hello Jack

    C、Hello undefined      D、Hello World

    备注:如果 name = "Jack" 前面加var ,那就是name转成undefined,所以他们绝对等于
    所以走第一个,如果不加申明,那'World!'=== "undefined"是false
    所以走第二个

     

    4、(不定项选择)以下关于DOM事件流的表述哪些是正确的 B,D

    A、事件流包括两个阶段:事件捕获阶段、事件冒泡阶段。错误,中间再加目标阶段

    B、IE跟标准浏览器对于DOM事件流实现不一样

    C、假设parentEle是childEle的父节点,绑定事件:

    parentEle.addEventListener(“click”, fn1, false)和

    childEle.addEventListener(“click”, fn2, false),当点击childEle的时候fn1将先于fn2触发。

    D、addEventListener第三个参数true代表支持捕获,false代表不支持捕获 备注:false是捕获

    5、(不定项选择)通过下面的哪些方法可以获取页面的html元素 A,C,D

    A、document.getElementById

    B、document.getElementsByClassName

    C、document.querySelector

    D、document.querySelectorAll

    6、(不定项选择)下面选项中,对javascript事件的描述不正确的是:C

    A、IE使用attachEvent/detachEvent方法来添加和删除事件监听器;w3c使用addEventListener/removeEventListener方法。

    B、IE是将event对象作为参数传递给监听器,w3c事件监听器内使用的是一个全局的Event对象。

    C、IE提供了对事件捕获阶段的支持。错误,备注IE9以上支持

    D、要停止事件的传递,IE的做法是设置event对象的cancelBubble为true,而w3c的做法是设置执行stopPropagation方法。

    7、(单项选择)

    var array1 = [1,2];

    var array2 = array1;如果改成 var array2 = [1,2]

    array1[0] = array2[1];

    array2.push(3);

    console.log(array1);

    console.log(array2);

    执行上面的代码array1和array2的值分别是什么?C

    A、Array1的值为[2,2];Array2的值为[1,2,3]

    B、Array1的值为[2,2,3];Array2的值为[1,2,3]

    C、Array1的值为[2,2,3];Array2的值为[2,2,3]

    D、Array1的值为[1,2,3];Array2的值为[1,2,3]

    备注:如果改成var array2 = [1,2],那么是A

    8、(不定项选择)有如下代码:

    function Test(name,age){

        this.name = name;

        this.age = age;

    };

    Test.prototype = {

        name:’aliyun’,

        hasOwnproperty:function(){

        return false;

    }

    };

    var instance = new Test(‘alibaba’,102);

    以下关于原型链的说法正确的是: A ,C

    A、JavaScript对象有两种不同的属性,一种是对象自身的属性,另一种是继承于原型链上的属性

    B、instance.name == ‘aliyun’为true

    C、instance.hasOwnproperty(‘age’)结果将是false

    D、所有对象都继承自Object.prototype 备注:Object.prototype为null

    9、实现函数range([start,]stop[,step])返回一个数组(step大于1)D

    A range(1,11); => [1,2,3,4,5,6,7,8,9,10]

    B range(0); => []

    C range(10); => [0,1,2,3,4,5,6,7,8,9]

    D range(0,30,5); => [0,5,10,15,20,25]

    10、有一个包含数据列表的页面,数据行数不确定。每一行数据都有一个删除按钮,单击删除按钮删除该列数据,请用JavaScript实现该功能。

    <script>
    
          var oUl = document.createElement('ul');
              oUl.id="oul";
          var str="";
          for(var i=0;i<10;i++){
                  str+="<li>cjakcsk<span class="shanchu">删除"+i+"</span></li>";
                  var spanli=document.getElementsByTagName("span");
          };
           oUl.innerHTML=str;
           document.body.appendChild(oUl);
           var liSpanObj=oUl.querySelectorAll("span");
           for(var i=0;i<liSpanObj.length;i++){
                 //第一方法
                 liSpanObj[i].index = i;
                 liSpanObj[i].onclick=function(){
                     oUl.removeChild(liSpanObj[this.index].parentNode);
                 }
                 //第一个方法
    
                 (function(k){
                     liSpanObj[i].onclick=function(){
                          var li=liSpanObj[k].parentNode;
                              oUl.removeChild(li);
                  })(i);
    
            }
    
    </script>
  • 相关阅读:
    PAT 甲级 1132 Cut Integer (20 分)
    AcWing 7.混合背包问题
    AcWing 9. 分组背包问题
    AcWing 5. 多重背包问题 II
    AcWing 3. 完全背包问题
    AcWing 4. 多重背包问题
    AcWing 2. 01背包问题
    AcWing 875. 快速幂
    AcWing 874. 筛法求欧拉函数
    AcWing 873. 欧拉函数
  • 原文地址:https://www.cnblogs.com/binmengxue/p/5316027.html
Copyright © 2011-2022 走看看