JS常见面试试题总结【去重、遍历、闭包、继承等】
本文实例讲述了JS常见面试试题。分享给大家供大家参考,具体如下:
JavaScript面试题总结
1,首先是数组去重算法:给一个数组,去掉重复值
(function(){ vararr=[1,2,3,3,4,]; functionunique(){ varresult=[]; vartem={}; for(vari=0;i2,多维数组,至少3层的遍历,将数组整合一维数组,网上给出的方案
//遍历多维数组 vararr=[1,2,3,[4,[5,[6]]]];//arr.length Array.prototype.each=function(fn){ try{ //1目的:遍历数组的每一项//计数器记录当前遍历的元素位置 this.i||(this.i=0);//vari=0; //2严谨的判断什么时候去走each核心方法 //当数组的长度大于0的时候&&传递的参数必须为函数 if(this.length>0&&fn.constructor==Function){ //循环遍历数组的每一项 while(this.i3,获得url查询参数方案
1)一个是用正则表达式方法
//获取url参数 functionGetQueryString(name){ varreg=newRegExp("(^|&)"+name+"=([^&]*)(&|$)"); //jsmatch返回的是一数组 varr=location.search.substr(1).match(reg); if(r!=null){ returnr[2]; }else{ returnnull; } }2)另外一种就是利用split结合数组遍历实现,这个比较容易实现就不贴代码了
4,正则表达式去掉空格
/**去掉字符串前后所有空格*/ functiontrim(str){ returnstr.replace(/(^\s*)|(\s*$)/g,""); }5,闭包的概念考察
6,原型继承如何实现,原型继承有两种方案
1)第一种是利用prototype
varobj={name:'seven'}; vara=function(){}; a.prototype=obj; varaa=newa(); alert(aa.name);2)第二种是利用apply或者call
functionpeople(name,age){ //属性 this.name=name; this.age=age; //方法 this.show=function(){ console.log("mynameis"+this.name+"andIam"+this.age+"yearsold"); }; } functionstudent(name,age,school){ people.apply(this,arguments); this.school=school; this.showYourself=function(){ console.log("mynameis"+this.name+"andIam"+this.age+"yearsold"+"myschoolis"+this.school); }; } vartom=newstudent('tom','19','xtu'); tom.showYourself();7,ES6常用知识点考察
感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码运行效果。
更多关于JavaScript相关内容可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。