JavaScript笔试代码(三)

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

var str="get-Element-by-id";
    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);
               //charAt()返回指定位置的字符
               //substr可在字符串中抽取从start,开始的字符串
           }
           //把数组中的所有元素放入一个字符串中,返回字符串
           msg=arr.join("");
           return msg;
       }   
       console.log(combo(str));  

2.已知数组 var stringArr = [“This”,“ is”, “Baidu”, “Campus” ], Alert出 “This is Baidu Campus”;

 var stringArr=["This","is","my","house"];
 alert(stringArr.join(" "));//This is my house

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

 var d=new Date();
     var year=d.getFullYear();//获取年
     var month=d.getMonth()+1;//获取月,年份比较特殊,0是1
     var date=d.getDay()-1;
     var t=year.toString()+"-"+"0"+month.toString()+"-"+"0"+date.toString();
    console.log(t);

4.将字符串”{KaTeX parse error: Expected 'EOF', got '}' at position 3: id}̲</td><td>{name}”中的{KaTeX parse error: Expected 'EOF', got '}' at position 3: id}̲替换成10,{name}替换成Tony (使用正则表达式)

"<tr><td>{$id}</td><td>{$name}</td></tr>".replace(/{\$id}/g,'10').replace(/{\$name}/g,'Tony');
//其中“\”是表示匹配后面的内容

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

function escapeHtml(str) {
return str.replace(/[<>”&]/g, function(match) {
    switch (match) {
                   case '<':
                      return "<";
                   case '>':
                      return ">";
                   case '&':
                      return "&";
                   case "\" ":
                    return "”";
      }
  });
}

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

  • 如果foo存在,值不变,否则把bar的值赋给foo
  • 短路表达式:这些表达式在进行求值的时候,只要知道最终的结果,就可以判断是真还是假,求值过程便结束了,称为短路求值;

7.变量声明提升

var foo=1;
(function(){
    console.log(foo);//undefined
    var foo=2;
    console.log(foo);//2
})

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

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

 //1.定义一个空数组
       var Array=[];
       //定义并封装一个getRandom函数
       function getRandom(num1,num2){
           var transition=num2-num1+1;//这里面的加1是为了能够取到num2
            //floor是一个向下取舍的函数
           var res=Math.floor(Math.random()*transition+num1);
           return res;
       }
       for(var i=0;i<10;i++){//随机取10~100之间的十个数
           Array.push(getRandom(10,100));//将取得的数放在数组中
       }
       Array.sort(function(a,b){//对数组里面的数进行排序
           return a-b;
       })
       console.log(Array);

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

       var array1=['a','b','c'];
       var bArray=['d','e','f'];
       //concat用于连接两个数组
       var cArray=array1.concat(bArray);
       //splice:删除元素
       cArray.splice(1,1)

10.写一个function,清楚字符串前后的空格。

if(!String.prototype.trim){
      //prototype向对象添加属性和方法
      //trim去除字符串头尾的空格
      String.prototype.trim=function(){
          return this.replace(/^\s+/,"").replace(/\s+$/,"");
    //\s+:表示匹配任意多个上面的字符
    //$是结束符
      }
  }
  var str="\t\n test string".trim();
  alert(str=="test string");//true

11.a+b的结果是NaN?

var a=undefined;b=NaN

有且只有这种表达可以满足,因为b是没有声明的,所有NaN起到的效果是连接;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值