Web前端面试题
问题:怎样判断是否是电话号码?
解析:functionisPhone(tel){
varregx=/^1[]\d{9}$/;
returnregx.test(tel);
}
问题:如何进行字符串查找?
解析:请使最基本的遍历来实现判断字符串a是否被包含在字符串b中,并返回第次出现的位置(找不到返回-1)。
a=34;b=;//返回2
a=35;b=;//返回-1
a=;b=12354;//返回
5
isContain(a,b);
functionisContain(a,b)
{for(letiinb){
if(a[0]===b)
{lettmp=true;
for(letjina){
if(a[j]!==b[~~i+~~j])
{tmp=false;
}
}
if(tmp)
{returni;
}
}
}
return-1;
}
AngularJS双向绑定原理?
Angular将双向绑定转换为一堆watch表达式,然后递归这些表达式检查是否发生过变化,如果变了则执行相应的watcher函数(指view上的指令,如ng-bind,ng-show等或是{{}})。等到model中的值不再发生变化,也就不会再有watcher被触发,一个完整的digest循环就完成了。
Angular中在view上声明的事件指令,如:ng-click、ng-change等,会将浏览器的事件转发给$scope上相应的model的响应函数。等待相应函数改变model,紧接着触发脏检查机制刷新view。
watch表达式:可以是一个函数、可以是$scope上的一个属性名,也可以是一个字符串形式的表达式。$watch函数所监听的对象叫做watch表达式。watcher函数:指在view上的指令(ngBind,ngShow、ngHide等)以及{{}}表达式,他们所注册的函数。每一个watcher对象都包括:监听函数,上次变化的值,获取监听表达式的方法以及监听表达式,最后还包括是否需要使用深度对比(angular.equals())
以上就是小科今天整理提供的Web前端开发面试题,希望为Web前端同学提供了有用的面试素材,以后小科每日均会提供Python、Web及MySQL数据库相关的习题。学习没有捷径,希望大家都能少走一些弯路,顺利找到工作!