美文网首页
2020年WEB前端开发面试题最新整理(11-21)

2020年WEB前端开发面试题最新整理(11-21)

作者: 野生程序猿A | 来源:发表于2020-08-17 17:31 被阅读0次

    11.已知数组var stringArray = [“This”, “is”, “Baidu”, “Campus”],Alert出”This is Baidu Campus”。

    答案:alert(stringArray.join(" "))

    那么问题来了,已知有字符串foo="get-element-by-id",写一个function将其转化成驼峰表示法"getElementById"。

    function combo(msg){

    var arr = msg.split("-");

    var len = arr.length;    //将arr.length存储在一个局部变量可以提高for循环效率

    for(var i=1;i<len;i++){

    arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substr(1,arr[i].length-1);

    }

    msg=arr.join("");

    return msg;

    }

    (考察基础API)

    12.var numberArray = [3,6,2,4,1,5]; (考察基础API)

    1) 实现对该数组的倒排,输出[5,1,4,2,6,3]

    2) 实现对该数组的降序排列,输出[6,5,4,3,2,1]

    var numberArray = [3,6,2,4,1,5];

    numberArray.reverse(); // 5,1,4,2,6,3

    numberArray.sort(function(a,b){  //6,5,4,3,2,1

    return b-a;

    })

    13.输出今天的日期,以YYYY-MM-DD的方式,比如今天是2014年9月26日,则输出2014-09-26

    var d = new Date();

    // 获取年,getFullYear()返回4位的数字

    var year = d.getFullYear();

    // 获取月,月份比较特殊,0是1月,11是12月

    var month = d.getMonth() + 1;

    // 变成两位

    month = month < 10 ? '0' + month : month;

    // 获取日

    var day = d.getDate();

    day = day < 10 ? '0' + day : day;

    alert(year + '-' + month + '-' + day);

    14.将字符串”<tr><td>{$id}</td><td>{$name}</td></tr>”中的{$id}替换成10,{$name}替换成Tony (使用正则表达式)

    答案:

    "<tr><td>{$id}</td><td>{$id}_{$name}</td></tr>".replace(/{$id}/g, '10').replace(/{$name}/g, ‘Tony’);

    15.为了保证页面输出安全,我们经常需要对一些特殊的字符进行转义,请写一个函数escapeHtml,将<, >, &, “进行转义

    function escapeHtml(str) {

    return str.replace(/[<>”&]/g, function(match) {

    switch (match) {

    case “<”:

    return “<”;

    case “>”:

    return “>”;

    case “&”:

    return “&”;

    case “\””:

    return “"”;

    }

    });

    }

    16.foo = foo||bar ,这行代码是什么意思?为什么要这样写?

    答案:if(!foo) foo = bar; //如果foo存在,值不变,否则把bar的值赋给foo。

    短路表达式:作为"&&"和"||"操作符的操作数表达式,这些表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短路求值。

    17.看下列代码,将会输出什么?(变量声明提升)

    var foo = 1;

    function(){

    console.log(foo);

    var foo = 2;

    console.log(foo);

    }

    答案:输出undefined 和 2。上面代码相当于:

    var foo = 1;

    function(){

    var foo;

    console.log(foo); //undefined

    foo = 2;

    console.log(foo); // 2; 

    }

    函数声明与变量声明会被JavaScript引擎隐式地提升到当前作用域的顶部,但是只提升名称不会提升赋值部分。

    18.用js实现随机选取10--100之间的10个数字,存入一个数组,并排序。

    var iArray = [];

    funtion getRandom(istart, iend){

    var iChoice = iend - istart +1;

    return Math.floor(Math.random() * iChoice + istart);

    }

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

    iArray.push(getRandom(10,100));

    }

    iArray.sort();

    19.把两个数组合并,并删除第二个元素。

    var array1 = ['a','b','c'];

    var bArray = ['d','e','f'];

    var cArray = array1.concat(bArray);

    cArray.splice(1,1);

    20.怎样添加、移除、移动、复制、创建和查找节点(原生JS,实在基础,没细写每一步)

    1)创建新节点

    createDocumentFragment() //创建一个DOM片段

    createElement() //创建一个具体的元素

    createTextNode() //创建一个文本节点

    2)添加、移除、替换、插入

    appendChild() //添加

    removeChild() //移除

    replaceChild() //替换

    insertBefore() //插入

    3)查找

    getElementsByTagName() //通过标签名称

    getElementsByName() //通过元素的Name属性的值

    getElementById() //通过元素Id,唯一性

    21.有这样一个URL:http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e,请写一段JS程序提取URL中的各个GET参数(参数名和参数个数不确定),将其按key-value形式返回到一个json结构中,如{a:'1', b:'2', c:'', d:'xxx', e:undefined}。

    答案:

    function serilizeUrl(url) {

    var result = {};

    url = url.split("?")[1];

    var map = url.split("&");

    for(var i = 0, len = map.length; i < len; i++) {

    result[map[i].split("=")[0]] = map[i].split("=")[1];

    }

    return result;

    }

    相关文章

      网友评论

          本文标题:2020年WEB前端开发面试题最新整理(11-21)

          本文链接:https://www.haomeiwen.com/subject/xqwrrktx.html