前端经典面试题-代码
Posted i-leo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端经典面试题-代码相关的知识,希望对你有一定的参考价值。
1、检测变量类型。
// 此方法不仅可检测出6种基本数据类型,还能检测出Array、Function Object.prototype.toString.call(Array) // [‘Object‘,‘Array‘]
2、去除字符串中的空格,可使用trim()方法或正则表达式。
// trim()用于去除字符串左右两端的所有空格 // trimLeft()、trimRight()用于去除字符串左边和右边的空格 ‘ today is Monday ‘.trim() // "today is Monday" ‘ today is Monday ‘.trimLeft() // "today is Monday "
// 使用正则表达式和replace方法可以去除所有空格 // 注意replace方法默认只能替换一次,因此正则表达式需加g修饰符完成全部替换 ‘ today is Monday ‘.replace(/s*/g,‘‘) // "todayisMonday" ‘ today is Monday ‘.replace(/^s*|s*$/g,‘‘) // "today is Monday"
3、获取URL中的参数。
function getUrlParam(sUrl, sKey) { var reg = /[?&](w+)=(w+)/g // 正则表达式 var obj = {} while(reg.exec(sUrl)) // 每次匹配结果返回一个数组,RegExp.$1表示第一个子表达式的匹配,即key obj[RegExp.$1]? obj[RegExp.$1] = [].concat(obj[RegExp.$1],RegExp.$2):obj[RegExp.$1] = RegExp.$2 return sKey? obj[sKey]||‘‘:obj }
4、把字符串转换为化成驼峰格式,如-webkit-border-image 转换后的结果为 webkitBorderImage。
// 注意(?!^)的使用,表示不以……开头 // replace方法的第二个参数为函数,函数的a表示完整匹配,b、c表示匹配到的子表达式 function convertToUpper(str){ return str.replace(/(?!^)-(w)(w+)/g, function(a,b,c){ return b.toUpperCase()+c.toLowerCase() }).replace(/-/g,‘‘) }
5、数组去重,可以使用IndexOf方法或利用对象的key不能重复的特性来做。
// 创建一个新数组,通过判断索引的方法去重,元素不存在时,indexOf返回-1 function arryUniq(arr){ var uniq = [] arr.forEach(function(item){ if(uniq.indexOf(item) < 0){ uniq.push(item) } }) return uniq }
// 对象的key值不能重复 function arryUniq(arr){ var obj = {} var uniq = [] arr.forEach(function(item){ if(!obj[item]){ obj[item] = true uniq.push(item) } }) return uniq }
以上是关于前端经典面试题-代码的主要内容,如果未能解决你的问题,请参考以下文章