js基礎知識點

根據百度學院的教程複習下js基礎,在這裏作一個彙總筆記javascript

1.數據類型、判斷

最新的 ECMAScript 標準定義了 7 種數據類型:前端

  • stringjava

  • number跨域

  • boolean數組

  • undefined閉包

  • nulldom

  • symbol(new in ECMAScript 6)ide

  • object
    注意:function array 皆是對象模塊化

1.1 數據的定義函數

  • null&undefined的區別和聯繫
    undefined:未定義,沒有被賦值的變量默認值是undefined
    null:不存在

null == undefined // true
null === undefined // false
  • 定義對象

    • 訪問對象屬性&枚舉

person.name // feifei
person["name"] // 在方括號內以字符串形式訪問屬性

var key = 'name'
person[key] //feifei

hasOwnProperty(obj.key)//檢測key屬性是否,是對象自己的屬性值
forin,遍歷對象的全部屬性,包括原型鏈對象上的屬性。+hasOwnProperty,遍歷對象自身屬性。
注意:forin,亂序遍歷對象屬性。
for (var i in obj) {
    if (obj.hasOwnProperty(i)) {
        console.log(i)
    }
  }
注意:由於for in 會遍歷整個原型鏈的全部屬性值,因此效率較for循環慢了不少。

相關方法:Object.keys(),Object.getOwnPropertyNames()有空看

  • 刪除對象屬性:delet obj.key。注意,把屬性設置爲undefined或null是無效的

  • 定義數組
    數組能夠保存任何值,而且能夠混合保存

//2種方法建立數據, 構造函數和數組直接量,它們的區別?
var colors = new Array()//建立空數組
var colors = new Array(20)//傳數值,建立length 20
var colors = new Array("red","blue","yellow")//
注意:可省略new字符
var colors = [];
var colors = ["red","blue","yellow"];
var a = [1,2,3];
[1,2,3].join //返回'1,2,3'
[1,2,3].concat(4,5)//返回新數組,[1,2,3,4,5]
[1,2,3].slice(0,2)//返回拷貝的新數組
//splice能夠刪除、插入、替換, 在原數組上修改
[1,2,3].splice(0,1)//[2,3]
[1,2,3].splice(0,0,0)//[0,1,2,3]
[1,2,3].splice(0,1,1)//[0,2,3]
[1,2,3].reverse//[3,2,1]

1.2 數據的判斷

  • 相等和比較 == & ===,推薦===

  • typeof,實際應用場景檢測一個對象是否已經定義或者是否已經賦值,而不是檢查數據類型

  • instanceof
    一些常見的考察點:

  • 數組的判斷

2.js基礎

  • ==與===的區別
    == equality 等同,=== identity 恆等。
    ==, 兩邊值類型不一樣的時候,要先進行類型轉換,再比較。
    ===,不作類型轉換,類型不一樣的必定不等

3.dom操做

4.事件機制

幾個概念:事件流,事件冒泡,事件捕獲
addEventListener(event,listener)&attachEvent("on"+event,listener)

5.原型繼承面向對象

  • 前端模塊化(amd&cmd規範)

  • 列表項目

6.閉包

7.this

8.跨域

相關文章
相關標籤/搜索