1. 程式人生 > >前端經典面試題-代碼

前端經典面試題-代碼

color borde 格式 空格 存在 urn 默認 url convert

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
}

前端經典面試題-代碼