Javascript

复习常见javascript面试题

2017-03-23  本文已影响31人  神奇的少年

1. 判断字符串是否是这样组成的,第一个必须是字母,后面可以是字母、数字、下划线,总长度为5-20

var reg=/^[a-zA-Z][a-zA-Z_0-9]{4,19}$/;//大括号表示重复次数4-19次

2.截取字符串abcdefg的efg

var str="abcdefg";
var efg=str.substr(str.indexOf("efg"),3);

3.判断一个字符串中出现次数最多的字符,统计这个次数

function count(str){
  var a=str.split('');
  var obj={};
  var c=0;
  for(var i=0;i<a.length;i++){
    for(var j=0;j<a.length;j++){
      if(a[i]==a[j]){
        c++;
      }
    }
    var num=a[i];
    obj[num]=c;
    c=0;
  }
  return obj;
}
function maxCount(str){
  var obj={};
  for(var i=0;i<str.length;i++){
    var key=str[i];
    if(!obj[key]){
      obj[key]=1;
    }else{
      obj[key]++;
    }
  };
  var max=-1;
  var maxstr='';
  var key;
  for(key in obj){
    if(max<obj[key]){
      max=obj[key];
      maxstr=key;
    }
  }
  return "max:"+maxstr+",count:"+max+"";
}

获取select中选中的option

var select=document.querySelector('select');

var index=select.selectedIndex;//当前选中的option

var txt=selec.optionst[index].text;//获取文本

var txt=selec.optionst[index].value;//获取value

编写一个方法 求一个字符串的字节长度(一个英文字符占用一个字节,一个中文字符占用两个字节 )

那么这里就要说一下了,javascript采用的是unicode字符集,和UCS-2的编码方式(1990年就发布了第一套),为什么不用UTF-16呢?因为UTF-16是1996年才发布的,javascript在1995就出来了...那么就不用解释了;

UCS-2使用两个字节表示已经有码点的字符

那么就要注意看题目的需求了

function getBytes(str){
  var len=str.length;
  var bytes=len;
  for(var i=0;i<len;i++){
    if(str.charCodeAt(i)<=128) bytes+=1;
    else bytes+=2;
  }
  return bytes;
}

用正则写效率会更快

数组去重

function uniqueArray(arr){
  var result=[];
  var obj={};
  var len=arr.length;
  for(var i=0;i<len;i++){
    if(!obj[arr[i]]){
      obj[arr[i]]=1;
      result.push(arr[i]);
    }
  }
  return result;
}
上一篇下一篇

猜你喜欢

热点阅读