6个有用的javascript web前端面试题

时间:2015-05-22

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

var reg = /^[a-zA-Z][a-zA-Z_0-9]{4,19}$/;
reg.test("a1a__a1a__a1a__a1a__");

2,截取字符串abcdefg的efg

var str = "abcdefg";
if (/efg/.test(str)) {
  var efg = str.substr(str.indexOf("efg"), 3);
  alert(efg);

}

 

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

//将字符串的字符保存在一个hash table中,key是字符,value是这个字符出现的次数
var str = "abcdefgaddda";
var obj = {};
for (var i = 0, l = str.length; i < l; i++) {
   var key = str[i];
   if (!obj[key]) {
      obj[key] = 1;
   } else {
      obj[key]++;
   }
}

/*遍历这个hash table,获取value最大的key和value*/
var max = -1;
var max_key = "";
var key;
for (key in obj) {
   if (max < obj[key]) {
      max = obj[key];
      max_key = key;
   }
}

alert("max:"+max+" max_key:"+max_key);

4,编写一个方法 求一个字符串的字节长度

假设:

一个英文字符占用一个字节,一个中文字符占用两个字节

function GetBytes(str){
    var len = str.length;
    var bytes = len;
    for(var i=0; i<len; i++){
        if (str.charCodeAt(i) > 255) bytes++;
    }
    return bytes;
}
alert(GetBytes("你好,as"));

5,编写一个方法 去掉一个数组的重复元素

var arr = [1 ,1 ,2, 3, 3, 2, 1];
Array.prototype.unique = function(){
    var ret = [];
    var o = {};
    var len = this.length;
    for (var i=0; i<len; i++){
        var v = this[i];
        if (!o[v]){
            o[v] = 1;
            ret.push(v);
        }
    }
    return ret;
};
alert(arr.unique());

6,写出3个使用this的典型应用

(1)在html元素事件属性中使用,如

<input type=”button” onclick=”showInfo(this);” value=”点击一下”/>

(2)构造函数

function Animal(name, color) {
   this.name = name;
   this.color = color;
}

(3)

<input type="button" id="text" value="点击一下" />
<script type="text/javascript">
var btn = document.getElementById("text");
btn.onclick = function() {
alert(this.value); //此处的this是按钮元素
}
</script>

(4)CSS expression表达式中使用this关键字

<table width="100px" height="100px">
  <tr>
    <td>
    <div style="width:expression(this.parentNode.width);">div element</div>
    </td>
  </tr>
</table>
上一篇:Html5+Css3制作的一个wordpress评论表单 下一篇:3个优秀的Metro UI框架网站melonhtml5

相关文章

最新文章