您的位置:首页 > 职场人生

前端面试题汇总1

2016-09-19 16:28 363 查看
1、判断字符串是否是这样组成的,第一个必须是字母,后面可以是字母

数字、下划线,总长度为5-20

var str="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa2afxsld_sldkjie232";
var reg=/^[a-zA-Z][a-zA-Z0-9_]{4,19}$/;
alert(reg.test(str));


2、截取字符串abcdefg的efg

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

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

var str="aabbbbbbbbbbbbbcedwwefaasdio0sda";
var obj={};
var ret=[];
for(var i=0;i<str.length;i++){
var key=str[i];
if(!obj[key]){
obj[key]=1;
ret.push(key);
}else{
obj[key]++;
}
}
var max=-1;
var key_max="";
for(var i=0;i<ret.length;i++){
var key=ret[i];
if(max<obj[key]){
max=obj[key[b]];
key_max=key;
}
}
alert("出现最多的字符是:"+key_max+" 出现次数是:"+max);

4、IE和FF脚本兼容问题
(1)关于event的用法,ie中可以直接使用event对象,但是Firefox中不可以直接使用

IE下可以直接用:

<input type="button" value="click" onclick="doIt();">
<script>
function doIt(){
alert(event);
}
</script>

Firefox下要修改:

<input type="button" value="click" onclick="doIt(event);">
<script>
function doIt(oEvent){
alert(oEvent);
}
</script>

(2)事件绑定和解除:ie中是attachEvent和detachEvent,Firefox中是addEventListener和removeEventListenter

5、规避JavaScript多人开发函数重命名问题

(1)可以开发前规定命名规范,根据不同开发人员开发的功能在函数前加前缀

(2)将每个开发人员的函数封装到类中,调用时就调用类的函数,即使函数重名只要类名不重复就OK

6、JavaScript面向对象中继承实现

JavaScript面向对象中的继承实现一般都是用了构造函数和prototype原型链

7、编写一个方法,求一个字符串的字节长度,假设一个英文字符占用一个字节,一个中文字符占用两个字节

function getLength(str){
return str.replace(/[^\x00-xff]/g,"xx").length;
}

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

var arr=[1,2,3,4,2,4,2,4];
var obj={};
var ret=[];
for(var i=0;i<arr.length;i++){
var key=arr[i];
if(!obj[key]){
obj[key]=1;
ret.push(key);
}
}
alert(ret);

9、写出3个使用this的典型应用

(1)在HTML元素事件属性中使用,例如:

<input type="button" value="click" onclick="alert(this.type);">


(2)构造函数

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


(3)css expression表达式中使用this关键字

<table>
<tr>
<td>
<div style="width:expression(this.parentNode.width);"></div>
</td>
</tr>
</table>

10、如何显示/隐藏一个DOM元素?

obj.style.display="block";//或inline-block
obj.style.display="none";

obj是要操作的DOM元素
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  web前端