null和undefined的區(qū)別
1. 如果有一個操作數(shù)是布爾值难菌,則在比較相等之前將其轉換為數(shù)值————false轉換為0,true轉換為1腿时;
2. 如果一個操作數(shù)是字符串,另一個操作符是數(shù)值,則在比較相等之前先將字符串轉換為數(shù)值硝全;
3. 如果一個操作數(shù)是對象,另一個操作數(shù)不是楞抡,則調用對象的valueOf()方法伟众,用得到的基本類型值按照前面的規(guī)則進行比較。
面向對象理解
1.JS中的對象就是普通名值對的集合
2.使用對象時召廷,只關心對象提供的功能凳厢,不用關注內部細節(jié)
3.面向對象的特點
a.封裝
b.繼承
c. 多態(tài)
4.依附于對象的變量叫屬性
依附于對象的函數(shù)叫方法
5.創(chuàng)建對象的三種方式
a.工廠模式账胧,使用簡單的函數(shù)創(chuàng)建對象,為對象添加屬性和方法先紫,然后返回對象
b.構造函數(shù)模式治泥,創(chuàng)建自定義引用類型,可以像創(chuàng)建內置對象實例一樣使用new操作符遮精,這種方法的缺點是居夹,構造函數(shù)的每個成員都無法復用,每次創(chuàng)建出的對象都只有私有變量和私有方法本冲,不能實現(xiàn)共用
c.原型模式准脂,使用構造函數(shù)的prototype屬性來指定共享的屬性和方法,即使用構造函數(shù)定義實例屬性檬洞,使用原型定義共享的屬性和方法
6.繼承
JS主要通過原型鏈實現(xiàn)繼承意狠,原型鏈是通過將一個類型的實例賦值給一個構造函數(shù)的原型實現(xiàn)的
模塊化理解
模塊化就是為了減少系統(tǒng)耦合度,提高高內聚疮胖,減少資源循環(huán)依賴环戈,增強系統(tǒng)框架設計。
讓開發(fā)者便于維護,同時也讓邏輯相同的部分可復用
模塊化開發(fā):針對js澎灸、css院塞,以功能或業(yè)務為單元組織代碼。js方面解決獨立作用域性昭、依賴管理拦止、
api暴露、按需加載與執(zhí)行糜颠、安全合并等問題汹族,css方面解決依賴管理、組件內部樣式管理等問題其兴。