JavaScript基礎

、JavaScript 中函數的調用的幾種方式 - 函數上下文(this)的指向javascript

做爲對象方法調用;this -> 對象html

做爲函數調用;this -> 全局對象(window)java

做爲構造函數調用;this -> new出來的對象git

和使用 apply 或 call 調用。this -> 傳入的 contextgithub

 

2、原型,原型鏈web

原型:構造函數包含的proto對象。構造函數都有一個指針指向原型。閉包

原型鏈:訪問一個對象的屬性時,app

對象查找先在該構造函數內查找對應的屬性,若是該對象沒有該屬性的話,webstorm

那麼javascript會試着從該原型上去查找,若是原型對象中也沒有該屬性的話,ide

那麼它們會從原型中的原型去查找,直到查找的Object.prototype也沒有該屬性的話,那麼就會返回undefined;

將函數用做構造函數調用(使用new操做符調用)的時候,新建立的對象會從原型對象上繼承屬性和方法。

 

3、閉包

內部函數,能夠訪問外部函數的變量。

 

4、獲取事件源

    element.onclick = function(ev){
        var e = ev || window.event;//獲取事件
        var ele = e.target || e.srcElement;//獲取觸發事件的元素
        if(this === ele)//若是這個元素就是觸發事件的元素
            alert(ele.innerHTML);//彈出他的內容
    }

 

 5、定時器

window.setTimeout([function],[interval]) 設置一個定時器,而且設定了一個等待的時間[interval],當到達時間後,

執行對應的方法[function],當方法執行完成定時器中止(可是定時器還在,只不過沒用了);

window.setInterval([function],[interval]) 設置一個定時器,而且設定了一個等待的時間[interval],當到達時間後,

執行對應的方法[function],當方法執行完成,定時器並無中止,之後每隔[interval]這麼長的時間都會從新的執行對應的方法[function],

直到咱們手動清除定時器爲止; 詳細

 

6、js操做對象中點操做和中括號操做的區別

中括號運算符老是能代替點運算符。但點運算符卻不必定能所有代替中括號運算符。

中括號運算符能夠用字符串變量的內容做爲屬性名。點運算符不能。

中括號運算符能夠用純數字爲屬性名。點運算符不能。

中括號運算符能夠用js的關鍵字和保留字做爲屬性名。點運算符不能。

能夠看出來,用點操做的時候,字符串變量的時候,返回undefined;純數字的會報錯;關鍵字和保留字js會自動忽略。而這些[]均可以。

 

7、javascript replace 替換所有

舉例說明:

var str = "atetateg".replace("a",""); 則只會替換第一個a

var str = "atetateg".replace(/a/g,"");  會替換全部  /g 表明匹配全文

 

參考資料:

JavaScript核心(晉級高手必讀篇)

JavaScript 祕密花園

淺談javascript之事件、函數、方法、對象 各表明何含義,通俗解釋及其之間的關聯與區別

爲何JS事件函數裏面都有一個參數(ev)?

DHTML.js javascript API ->DOM from webstorm

相關文章
相關標籤/搜索