1 數(shù)據(jù)類型
基本六個(gè)類型雷厂,亮點(diǎn) 提到了ES6 的symbol
如果問到 判斷數(shù)據(jù)類型 除了說明typeof 還要提到instanceof
2 ===和==的區(qū)別抑胎,
===會(huì)判斷類型和值 ==只判斷值 比如 “6”==6是成立的 undefined==null
判斷值的時(shí)候 想到 []!=[] NAN!=NAN ES6新語法 Number.isNaN(NaN)的結(jié)果是true
es6中專門用來判斷變量是NAN的方法 Number.isNaN()
3 js onload和DOMcontentloaded的區(qū)別 這也是jq加載函數(shù)和JS 的onload的區(qū)別
window.onload 事件在所有頁面元素(包括圖片何鸡,腳本等)都下載完畢后才會(huì)觸發(fā)。
除了 IE筛璧,其它瀏覽器支持 DOMContentLoaded 事件逸绎。當(dāng) DOM 內(nèi)容下載完畢,就會(huì)立刻觸發(fā)夭谤。
針對(duì) IE棺牧,有各種模擬 DOMContentLoaded 事件的辦法。目前被廣泛采納的方案是判斷 document 是否可以滾動(dòng)(doScroll)朗儒。一旦可以 滾 動(dòng)颊乘,就意味著 DOM Content 已經(jīng)加載完畢。
4 給10個(gè)li添加點(diǎn)擊事件采蚀。彈出下標(biāo)
var oli=document.getElementsByTagName('li');
for(var i=0; i<oli.length;i++)
{
oli[i].index=i;
oli[i].onclick=function(){
alert('下標(biāo)是:'+this.index);
};
}
5 通過字符串拼接添加dom元素和通過appendchild添加dom有什么區(qū)別疲牵,那個(gè)更好
字符串拼接好
6 你都使用什么實(shí)現(xiàn)模塊加載
import
export
7. 如何對(duì)數(shù)組隨機(jī)排序
如下代碼:
var arr = [1,2,3,4,5,6]
arr.sort(function(a,b){
return Math.random()-0.5
});
8. 如何理解原型和原型鏈
[圖片上傳失敗...(image-8f7b31-1530749078749)]
下面的鏈接是原型與原型鏈詳解
http://www.cnblogs.com/ningyn0712/p/6216711.html
9. JQ 中鏈?zhǔn)讲僮鞯脑?/h4>
$("#id").css("width","100px") .css("height","100px").css("background","red");
鏈?zhǔn)秸{(diào)用原理
var MyJQ = function(){
}
MyJQ.prototype = {
css:function(){
console.log("設(shè)置css樣式");
return this;
},
show:function(){
console.log("將元素顯示");
return this;
},
hide:function(){
console.log("將元素隱藏");
}
};
var myjq = new MyJQ();
myjq.css().css().show().hide();
10. this 指向問題
$("#id").css("width","100px") .css("height","100px").css("background","red");
var MyJQ = function(){
}
MyJQ.prototype = {
css:function(){
console.log("設(shè)置css樣式");
return this;
},
show:function(){
console.log("將元素顯示");
return this;
},
hide:function(){
console.log("將元素隱藏");
}
};
var myjq = new MyJQ();
myjq.css().css().show().hide();
this要在執(zhí)行時(shí)才能確認(rèn)值承二,定義時(shí)無法確認(rèn)
[圖片上傳失敗...(image-5aa3c0-1530749078749)]
11. 從輸入U(xiǎn)RL到現(xiàn)實(shí)頁面的過程
- 瀏覽器查找域名對(duì)應(yīng)的 IP 地址榆鼠;
- 瀏覽器根據(jù) IP 地址與服務(wù)器建立 socket 連接;
- 瀏覽器與服務(wù)器通信: 瀏覽器請(qǐng)求亥鸠,服務(wù)器處理請(qǐng)求妆够;
- 瀏覽器與服務(wù)器斷開連接。
12. 圖片懶加載原理
一個(gè)頁面有很多的圖片负蚊,比如:京東神妹、淘寶等,如果一上來就發(fā)送這么多請(qǐng)求家妆,頁面加載就會(huì)很漫長鸵荠,用戶多了一次來上一堆請(qǐng)求,服務(wù)器就吃不消了伤极。
因此優(yōu)點(diǎn)就很明顯了:不僅可以減輕服務(wù)器的壓力蛹找,而且可以讓加載好的頁面姨伤,用戶體驗(yàn)更好了
頁面中的img元素,如果沒有src屬性庸疾,瀏覽器就不會(huì)發(fā)出請(qǐng)求去下載圖片乍楚,一旦通過javascript設(shè)置了圖片路徑,瀏覽器才會(huì)送請(qǐng)求届慈。
如何獲取正真的路徑徒溪,將真正的路徑放到一個(gè)自定義的'data-url'屬性里,要用的時(shí)候就取出來金顿,再給src
對(duì)象頂部與文檔頂部之間的距離臊泌,如果它小于父元素底部與文檔頂部的距離,則說明垂直方向上已經(jīng)進(jìn)入可視區(qū)域了串绩,就可以將真正的src給它了缺虐!
13. 對(duì)于一個(gè)無限下拉加載圖片的頁面。如何給圖片加點(diǎn)擊事件 原生js事件委托和JQ委托的寫法
事件委托礁凡,js的addEventListener()高氮,jq的on()
addEventListener()
document.getElementById("ul").addEventListener("click",function(e){
if(e.target.nodeName=="LI"){
alert("xxx")
}
});
也可以將判斷寫成e.target.nodeName.toLowerCase()=="li";
jq里面on()事件
$('#id').on('click','li',function(){}
14. ajax 對(duì)象建立 open send 等待數(shù)據(jù) 接受數(shù)據(jù)
AJAX的open ( )方法
open ( ) 有三個(gè)參數(shù) (method , url 顷牌, boolean) ;
- method 對(duì)應(yīng)的取值是“GET”和“POST”
- url 是 文件在服務(wù)器上的位置 .
- boolean 的取值是“true”和“false”剪芍,boolean 取值為“true” 的時(shí)候,服務(wù)器的請(qǐng)求是異步的窟蓝,beelean取值為“false”的時(shí)候罪裹,服務(wù)器的請(qǐng)求是同步的
15. 跨域是如何產(chǎn)生的,解決方式是什么
跨域是指在不同的域之間進(jìn)行數(shù)據(jù)傳輸或通信运挫,比如用ajax向一個(gè)不同的域請(qǐng)求數(shù)據(jù)状共,或者通過js獲取頁面中不同域的框架中的數(shù)據(jù)。只要協(xié)議谁帕、域名峡继、端口有任何一個(gè)不同,都被當(dāng)作是不同的域匈挖。
1. 通過jsonp跨域
我們直接用XMLHttpRequest請(qǐng)求不同域上的數(shù)據(jù)時(shí),是不可以的舶吗。但是择膝,在頁面上引入不同域上的js腳本文件卻是可以的,jsonp正是利用這個(gè)特性來實(shí)現(xiàn)的腹侣。
比如筐带,有個(gè)a.html頁面,它里面的代碼需要利用ajax獲取一個(gè)不同域上的json數(shù)據(jù)蓝晒,假設(shè)這個(gè)json數(shù)據(jù)地址是http://example.com/data.php,那么a.html中的代碼就可以這樣:
[圖片上傳失敗...(image-d92393-1530749078749)]
16 描述 cookie localStorage sessionStorage的區(qū)別
存儲(chǔ)位置區(qū)別 容量區(qū)別 是否在ajax中攜帶
17 談?wù)勀銓?duì)模塊化的理解