前端领域高频笔试面试10题:JavaScript相关

Posted 前端小马

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端领域高频笔试面试10题:JavaScript相关相关的知识,希望对你有一定的参考价值。

目录

1.已知数组var stringArray = [“This”, “is”, “Baidu”, “Campus”]

2.已知有字符串foo=”get-element-by-id”,写function将其转化成驼峰表示法

3.已知数组var numberArray = [3,6,2,4,1,5];应用数组API进行操作

4.以YYYY-MM-DD格式输出今天的日期

5.使用正则表达式将字符串"{$id}{$name}"中的{$id}替换成10,{$name}替换成Tony

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

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

8.以下代码输出结果为?

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

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


1.已知数组var stringArray = [“This”, “is”, “Baidu”, “Campus”]

Alert出”This is Baidu Campus”:

alert(stringArray.join(" "))  //将数组转化为字符串并用空格隔开

2.已知有字符串foo=”get-element-by-id”,写function将其转化成驼峰表示法

function combo(msg){
    var arr=msg.split("-");
    for(var i=1;i<arr.length;i++){
        arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substr(1,arr[i].length-1);
    }
    msg=arr.join("");
    return msg;
}

3.已知数组var numberArray = [3,6,2,4,1,5];应用数组API进行操作

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

numberArray.reverse( )

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

numberArray.sort(function(a,b){return b-a})

4.以YYYY-MM-DD格式输出今天的日期

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

5.使用正则表达式将字符串"<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');

        在正则表带式中的直接量的形式:/要匹配的字符串/,/^ 严格模式 $/,/g默认在全局下找到所有匹配该字符串的元素,replace替换匹配到的字符串,特殊符号用 \\ 转义。

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

function escapeHtml(str) {
return str.replace(/[<>”&]/g, function(match) {
    switch (match) {
      case “<”:
        return “&lt;”;
      case “>”:
        return “&gt;”;
      case “&”:
        return “&amp;”;
      case “\\””:
        return “&quot;”;
      }
  });
}

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

        如果foo存在,值为foo,否则把bar的值赋给foo。

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

8.以下代码输出结果为?

var foo = 1;
(function(){
    console.log(foo);
    var foo = 2;
    console.log(foo);
})()
//变量声明提升后,以上代码相当于:
var foo = 1;
(function(){
    var foo;
    console.log(foo); //undefined
    foo = 2;
    console.log(foo); // 2;   
})()

        函数声明与变量声明会被javascript引擎隐式地提升到当前作用域的顶部,但是只提升变量名不提升值。该代码输出undefined 和 2。

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

function randomNub(aArray, len, min, max) {
          if (len >= (max - min)) {
              return '超过' + min + '-' + max + '之间的个数范围' + (max - min - 1) + '个的总数';
          }
          if (aArray.length >= len) {
              aArray.sort(function(a, b) {
                  return a - b
              });
              return aArray;
          }
          var nowNub = parseInt(Math.random() * (max - min - 1)) + (min + 1);
          for (var j = 0; j < aArray.length; j++) {
              if (nowNub == aArray[j]) {
                  randomNub(aArray, len, min, max);
                  return;
              }
          }
          aArray.push(nowNub);
          randomNub(aArray, len, min, max);
          return aArray;
      }
var arr=[];
randomNub(arr,10,10,100);

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

var array1 = ['a','b','c'];
var bArray = ['d','e','f'];
var cArray = array1.concat(bArray);
cArray.splice(1,1);   //在数组的第(参数1)个索引值开始,删除(参数2)个数组元素,返回剩余的含有数组值的数组
slice() 

常用数组API:

toString( )     将数组转为字符串
indexOf( )     检测数组中是否含有某个元素,返回的是元素的下标,如果找不到则返回-1
join( )  将数组转为字符串,同时指定分割的符号
concat         拼接多个数组,返回一个大的数组
reverse( )  翻转数组元素
slice( )          截取数组中的元素slice(start,end) ;start是开始的下标,end是结束的下标
splice( )        删除数组中的元素
push( )         往数组的末尾添加一个或者多个元素,返回的是数组的元素,原数组会发生变化
pop( )             删除数组末尾的一个元素,返回的是删除的那个元素,原数组会发生变化
unshift( )       往数组的开头添加一个或者多个元素,返回的是数组的元素,原数组会发生变化
shift( )            删除数组开头的一个元素,返回的是删除的那个元素,原数组会发生变化

以上是关于前端领域高频笔试面试10题:JavaScript相关的主要内容,如果未能解决你的问题,请参考以下文章

前端领域高频笔试面试—— Vue相关

javaScript面试题2023前端最新版javaScript模块,高频24问

2021年中级前端笔试面试题总结(含答案解析)

前端笔试面试题总结(二)

2021年10月大厂高频核心前端面试题总结,五万多字,面试必考

前端CSS面试题2023前端最新版css模块,高频15问