为了账号安全,请及时绑定邮箱和手机立即绑定

前端笔试部分试题

近三天,参加了几场面试及笔试,考察javaScript基础,现回顾了部分试题:

1、js中 “5”+4=?//"54"

2、js中void(0)=?//undefined

3、js中NaN*4=?//NaN

4、js中alert(5*015===5.075)//false

5、js中null*4.5=?//0

6、js中13>>2=? -13>>2=?//3   -4

7、js中13|5=? 13&5=?//13   5

8、js中hello world,实现hello+1 world+1?

var str='hello world';

 function jNum(arr){

      var arr=str.split(/\s+/);

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

          arr[i]+="+1";

     }

          return arr.join(' ');

}

9、js中统计一个字符串出现最多的字母

var str="abcdefwwwwwww";

        var arr=str.split("");  // 转换为数组

        arr=arr.sort(); // 排序

        var c=1;    // 记录出现次数

        var arr1=[];    

        var maxmore="";

        for(var i=0;i<arr.length;i++){

            if(arr[i]===arr[i+1]){

                maxmore=arr[i];

                c++;

            }

            else{

                arr1[c]=maxmore;

                c=1

            }

        }

        console.log('最多的字母'+maxmore);

        console.log('最多的字母次数'+ (arr1.length-1));

10、js中实现数组去重

//方法一:利用对象的键值对

function unique(arr){

     if (!Array.isArray(arr)) return arr;

     var o={};

     var res=[];

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

         if(!o[arr[i]]){

         o[arr[i]] = 1;

         res.push(arr[i]);

         }

     }

     return res;

}

//方法二利用indexOf判断是否存在于新数组中,不存在则push到新数组,最后返回新数组

function unique(arr){

     if (!Array.isArray(arr)) return arr;

     var res=[];

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

         if(res.indexOf(arr[i])==-1){

         res.push(arr[i]);

         }

     }

     return res;

}

方法三:利用filter

function unique(arr){

    return arr.filter((item,i)=>arr.indexOf(item)===i);

}

//方法四:利用 ES6 的 Set 对象 和 Array.from 方法

function unique(arr){

     if (!Array.isArray(arr)) return arr;

     if (arr.length < 2) return arr;

     return Array.from(new set(arr));

}

//方法五:思路是先把数组排序,然后比较相邻的两个值

function unique(arr){

     var res=[];

     if (!Array.isArray(arr)) return arr;

     arr.sort();

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

         if(arr[i]!==arr[i+1]){

         res.push(arr[i]);

         }

     }

     return res;

}

11、js中ab变量交换,不使用中间变量?

    //方法一,巧用数组

        function swap(){

            var a = 1, b = 2;

            a=[b,b=a][0]

            console.log("a="+a);

            console.log("b="+b);

        }

//方法二,解构赋值

        function swap(){

            let a = 1,b = 2;

            [a,b] = [b,a];

            console.log("a="+a);

            console.log("b="+b);

       }

 //方法三,数学运算

        function swap(){

            let a = 1,b = 2;

            a = a + b;//a=3,b=2

            b = a - b;//a=3,b=1

            a = a - b;//a=2,b=1

            console.log("a="+a);

            console.log("b="+b);

        }

12、js中实现字符串倒序排列

//利用数组的反转方法

var num = 123456789;

function rev(){

     var str = num+"";

     return str.split("").reverse().join("");

}

console.log(rev(num));

13、js中循环方式替换空白字符

// 循环方式替换空白字符

    var str = " cba   xyz m      n   r   ttt";

    var res = "";

    for(var i=0; i<str.length; i++){

        var c = str.charAt(i);

        res += c.trim();

    }

    console.log(res);

以上部分试题及答案,如有不当之处,请指正,谢谢!

                    


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
6
获赞与收藏
44

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消