JavaScript中var、let桐早、const區(qū)別癣缅?
使用var聲明的變量,其作用域為該語句所在的函數(shù)內(nèi)哄酝,且存在變量提升現(xiàn)象友存;
使用let聲明的變量,其作用域為該語句所在的代碼塊內(nèi)陶衅,不存在變量提升爬立;
使用const聲明的是常量,在后面出現(xiàn)的代碼中不能再修改該常量的值万哪。
instanceof 與 isPrototypeOf 的區(qū)別?
B instanceof A:
A構(gòu)造函數(shù)的prototype對象是否在B的原型鏈上
A.isPrototypeOf(B):
A對象是否在B的原型鏈上
Ajax 優(yōu)缺點
優(yōu)點:
1.實現(xiàn)了異步交互,提高了用戶體驗
2.無需重新加載整個頁面,是需要與服務(wù)器進行少量的數(shù)據(jù)交換,就能夠?qū)崿F(xiàn)對頁面中的某一部分進行更新,從而減少了帶寬的占用
3.AJAX是在客戶端運行的,它承載了一部分本來由服務(wù)器承擔的工作,減少了大用戶量下的服務(wù)器負載,如果這放在后端的話,解決思路就類似ActiveMQ侠驯,RocketMQ,消息中間件,去異步的解決大用戶量下服務(wù)器的壓力
缺點:
1.AJAX大量的使用了JavaScript和ajax引擎,這些取決于瀏覽器的支持,在編寫的時候需要考慮對瀏覽器的兼容性
2.AJAX只是局部刷新,所以頁面的后退按鈕是沒有用的,干掉了Back和History功能,即對瀏覽器機制的破壞
JavaScript 中的聲明提前是什么?
var scope = "global";
function f( ){
console.log(scope); //輸出"undefined",而不是"global"
var scope = "local";
console.log(scope); //輸出“l(fā)ocal”
}
這時候 scope 的變量聲明就被提前了,所以打印出undefined