1. 那个是正确的

    1.for (let index = 0; index < 12; index++) {};console.log(index);//错误
    2.const a = 12;a = 13;console.log(a);//错误
    3.const G = {a:3};console.log(G.a);G.b=12;console.log(G.b);// 3,12
    4.let [head,...tail] = [1,2,3,4];console.log(tail)// [2,3,4]
  2. 请问输出的是 // GoodByeJack

    var name = 'world';
    (function () {
     var name;
     if (typeof name === "undefined") {
         name = 'Jack';
         console.log('GoodBye'+name)
     } else {
         console.log('hello'+name)
     }
    })();
  3. w3c制定的js标准事件模型的顺序是事件捕获->事件处理->事件冒泡
  4. 下面程序执行结果是什么?

    if (!'a' in window) {
     var a =1;
    }
    alert(a) // undefined
  5. 下面这段JS代码的执行结果是什么?

    var msg = 'hello';
    for (var i = 0; i < 10; i++) {
     var msg = 'hello'+i*2+i;
    }
    console.log(msg);// hello189
  6. 这段代码的执行结果是?

    function *gen(){
     yield 1;
     yield 2;
     yield 3;
    };
    gen(); // 返回的是一个generotar对象
  7. 下面选择哪个选项? B

    js数组的方法中,哪些方法不能改变自身数组?
    A.splice B.concat C.sort D.pop
    concat ()方法用于连接两个或多个数组。
    该方法不会改变现有的数组,而仅仅会返回一个新数组。
  8. 下面正确的选项是(b)

    你想通过 XMLHttpRequest更新以下元素,即使用div显示状态,下面哪段代码是正确的?
    1
    <div id="statusCode"></div>
    a.var myDiv = document.getElementById ("statusCode"); myDiv.innerHTML = req.statusCode;
    b.var myDiv = document.getElementById ("statusCode"); myDiv.innerHTML = req.status;
    c.var myDiv = document.getElementById ("statusCode"); myDiv.setStatus (req.statusCode);
    d.var myDiv = document.getElementById ("statusCode"); myDiv.status = req.status;
  9. 下面哪个选项是正确的(c)

    在前提:var arr=[1,3,2]下,下面哪个操作会返回一个数组,并且不是arr?
    a.arr.push(3)
    b.arr.reverse()
    c.[].concat.call(arr,[])
    d.[].sort.call(arr)
  10. 下面代码的输出结果是();

    var a = 4399<0 || typeof(4399+'');
    console.log(a); // string
  11. 以下JS表达是输出false的是();

    以下js表达式返回false的是(c)
    a. 1==true
    b.“”==false
    c.false==null
    d.null==undefined
    
    
    关于==的比较规则大体有一下几点:
    1、操作数为数字与字符串时,将字符串转换为数字,再比较值
    2、操作数为布尔和非布尔时,现将布尔转换为数字,再比较值
    3、普通类型(布尔/字符串/数字)和对象类型(数组、对象等)比较时,现将对象类型进行toString()的转换,如果操作数有布尔类型,则现将布尔类型转换为数字,然后在进行对象的转换,再比较值
    4、null和undefined,关于它们更多的是记住规则:(1)null == undefined (2)null与undefined不能进行类型转换(换句话说不能进行类型转换,那么怎么能进行同其他类型的比较呢?那自然就是false了)
    5、Nan == Nan //false
  12. 下面输出结果是() // 首先全部输出first,然后全部输出second

    function foo(){
     console.log("first");
     setTimeout(function(){
     console.log('second')
     },5);
    };
    for (let i = 0; i < 439999999; i++) {
     foo();
    }

    13.给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。

    var lengthOfLongestSubstring = function(s) {
    let left=0;//定义左指针
    let res=0;//定义无重复字符长度
    let map=new Map();//定义map方法,用以后续判断是否有重复字母、获取元素下标索引、存储索引
    for(let i=0;i<s.length;i++){//for遍历循环,i为右侧滑动指针
        if(map.has(s[i])&&map.get(s[i])>=left)//如果字符中有重复的,并且右侧指针的索引>左侧指针索引
         {
            left=map.get(s[i])+1;//那么左侧指针索引进一位
        }
        res=Math.max(res,i-left+1);//数学方法判断“符合题意”的字符最长值,res最初为0,通过不断循环迭代,来两者比较最长部分
        map.set(s[i],i);//每次循环更新一下map中的键值对,重点是i索引
    }//在不断判断与左侧滑动+max最长值判断的多重约束下,最终得到理想值res
    return res;//返回结果
    };

Hole
36 声望5 粉丝

« 上一篇
css面试题
下一篇 »
Html面试题