根據百度學院的教程複習下js基礎,在這裏作一個彙總筆記javascript
最新的 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"];
數組原生方法:http://yanhaijing.com/javascript/2014/01/17/fun-with-javascript-native-array-functions/
棧和隊列.pop,.push,.shift和.unshift
排序.sort
鏈接.join和合並數組.concat
複製.slice(start,end)
截取.splice(index, howmany, element1, ….., elementX)
逆序.reverse
查找.indexOf(es5)
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
一些常見的考察點:
數組的判斷
==與===的區別
== equality 等同,=== identity 恆等。
==, 兩邊值類型不一樣的時候,要先進行類型轉換,再比較。
===,不作類型轉換,類型不一樣的必定不等
幾個概念:事件流,事件冒泡,事件捕獲
addEventListener(event,listener)&attachEvent("on"+event,listener)
前端模塊化(amd&cmd規範)
列表項目