2019 前端面試押題卷(2)【初級】

1.把兩個數組合並,並刪除第二個元素?

var a = [1,2,3]
var b = [4,5,6]
var c= a.concat(b);
c.splice(1, 1);複製代碼

2.原生javascript怎麼建立、添加、移除、替換和查找dom節點?

var a = document.createElement("p");
var b = document.getElementById("my_div");
b.appendChild(a);
b.removeChild(a);
var c = document.createElement("div");
b.replaceChild(c,a);
document.getElementById("id");
document.getElementsByClassName("class");
document.getElementsByTagName("div");複製代碼

3.javascript同源策略是什麼?如何實現跨域請求?JSONP的原理是什麼?

JavaScript出於安全方面的考慮,不容許跨域調用其餘頁面的對象javascript

利用jsonp 方式java

利用javascript 的 src 屬性 容許訪問使用不一樣源的js文件json


4.請編寫一個JavaScript函數parseQueryString,他的用途是把URL參數解析爲一個對象,

如:var url = "http://www.hnfcedu.com/eg?key0=0&key1=1&key2=2";跨域

答:
數組

var url = "http://www.hnfcedu.com/eg?key0=0&key1=1&key2=2";

function parseQueryString(url){
    var index=url.indexOf("?");
    var paraStr=url.substring(index+1);
    var json=eval("({"+paraStr.replace(/=/igm,":\"").replace(/&/igm,"\",")+"\"})");
    console.log(json);
    return json;
}
parseQueryString(url);
// { key0: '0', key1: '1', key2: '2' }複製代碼

5.如何消除一個數組裏面重復的元素?

//數組排序,再比較相鄰的值:
var ary = new Array("bbb","cc","dd","bbb");
var nary=ary.sort();
for(var i=0;i<ary.length;i++){
    if (nary[i]==nary[i+1]){
        alert("數組重複內容爲:"+nary[i]);
        nary.splice(i,1);
    }
}複製代碼

6. 定義一個log方法,讓他能夠帶你console.log的方法


console.log = (function(ori){
    return function(str)
    {
        ori.call(console,"hello:"+str);
    }
})(console.log);
console.log("word");複製代碼

7.在javascript中什麼是僞數組?如何將僞數組轉化爲標準數據組?

能經過Array.prototype.slice轉換爲真正數組的帶有length屬性的對象安全

對於arguments:Array.prototype.slice.call(arguments)bash

兼容ie8:session

function realArray(c){
    try{
        return Array.prototype.slice.call(c);
    }catch(e){
        var ret = [], i =0, len = c.length;
        for(; i<len; i++){
            ret[i] = (c[i]);
        }
        return ret;
    }
}複製代碼

8. 如何用原生js實現一個對頁面某個節點的拖拽

1. 捕獲 onmousedown 鼠標按下事件、onmousemove 鼠標移動事件、onmouseup 鼠標擡起事件app

2.當mousedown時記下鼠標點擊位置離拖拽容器左邊沿的距離和上邊沿的距離,即tmpX,tmpY;mousemove時經過定位拖拽容器的style.left/style.top,使拖拽容器進行移動,定位到哪裏則由剛剛的tmpX/tmpY和當前鼠標所在位置計算得出;mouseup時,結束移動。dom


9.HTML5中的本地存儲有哪些?

localStorage 永久性的本地存儲

sessionStorage 會話級別的本地存儲


十、已知有字符串foo="get-element-by-id",寫一個function將其轉爲駝峯表示法"getElementById"。

foo="get-element-by-id";
function test(str){
    var arr=str.split('-');
    for(var i=1;i<arr.length;i++){
        arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substring(1);
    }
    var result=arr.join('');
    return result;
}
console.log(test(foo));複製代碼
相關文章
相關標籤/搜索