1、ES5簡介數組
ECMAScript 5.1 (或僅 ES5) 是ECMAScript(基於JavaScript的規範)標準的修正。 與HTML5規範進程本質相似,ES5經過對現有JavaScript方法添加語句和原生ECMAScript對象作合併實現標準化。安全
2、ES5嚴格模式ide
目的:函數
1.消除Javascript語法的一些不合理、不嚴謹之處,減小一些怪異行爲。this
2.消除代碼運行的一些不安全之處,保證代碼運行的安全。spa
3.提升編譯器效率,增長運行速度。3d
4.爲將來新版本的Javascript作好鋪墊。code
使用:對象
1.針對整個腳本文件:將"use strict"放在腳本文件的第一行,則整個腳本都將以"嚴格模式"運行。若是這行語句不在第一行,則無效,整個腳本以"正常模式"運行。若是不一樣模式的代碼文件合併成一個文件,這一點須要特別注意。blog
2.針對單個函數:將"use strict"放在函數的第一行,則整個函數以"嚴格模式"運行。
語法及行爲改變:
1.全局變量顯式聲明:在正常模式中,若是一個變量沒有聲明就賦值,默認是全局變量。嚴格模式禁止這種用法,全局變量必須顯式聲明。所以,嚴格模式下,變量都必須先用var命令聲明,而後再使用。
2.函數形參不容許重複。
3.禁止使用with語句。
4.禁止函數內部this關鍵字指向全局對象,this指向undefined。
5.函數必須聲明在頂層。
3、數組新增的方法
1.indexOf 返回整數索引值,若是沒有匹配(嚴格匹配),返回-1;fromIndex可選,表示從這個位置開始搜索,若缺省或格式不合要求,使用默認值0。
var arr = [2,3,4,5]; var iIndex = arr.indexOf(-3); console.log(iIndex);
2.forEach 遍歷數組,第二個參數爲可選的上下文參數(改變this指向);forEach方法中的function回調支持3個參數,第1個是遍歷的數組內容;第2個是對應的數組索引,第3個是數組自己。forEach不會遍歷空位置的內容。如:[1, , 3],只會遍歷1和3。
var arr = [1,2,3,4]; arr.forEach(function(v,k,arr){ console.log(v,k,arr); });
3.map(function(item,index,array){})遍歷數組,將數組中全部元素都讓一個函數去處理,新元素組成新數組返回
var arr = [2,6,4,8]; var newArr = arr.map(function (v){ return v * 2; }); console.log(newArr);
4.reduce 歸併,遞歸減小;callback函數接受4個參數:以前值、當前值、索引值以及數組自己。initialValue參數可選,表示初始值。若指定,則看成最初使用的previous值;若是缺省,則使用數組的第一個元素做爲previous初始值,同時current日後排一位,相比有initialValue值少一次迭代。
var arr = [1,2,3,4]; var result = arr.reduce(function (previous,current,index,arr){ return previous + current; }); console.log(result);
5.filter 指數組過濾後,返回過濾後的新數組。 filter的callback函數須要返回布爾值true或false。
var arr = [4,5,6,7]; var newArr = arr.filter(function (v){ if(v > 5){ return true; }else { return false; } }); console.log(newArr);
6.some方法先遍歷數組,若是至少有一個元素知足條件,則返回true,不然返回false
var arr = [2,4,6,10,15,21]; var f = arr.some(function(element,index,array){ if(element > 20){ return true; }else{ return false; } });
7.every方法先遍歷數組,判斷全部元素是否知足條件,返回布爾值
var arr = [2,4,6,10,15,21]; var f = arr.every(function(element, index, array){ return element > 10; });
8.find方法返回數組中知足條件的第一個值,找不到元素返回false
var arr = [2,4,6,10,15,21]; var f = arr.find(function(element, index, array){ return element > 10; });
9.findIndex方法返回數組中知足條件的第一個值得下標,找不到元素則返回-1
var arr = [2,4,6,10,15,21]; var f = arr.findIndex(function(element, index, array){ return element > 10; });
10.lastIndexOf方法:從數組的末尾開始查找,而不是從開頭。還有一個不一樣就是fromIndex的默認值是array.length - 1而不是0。
var arr = [2,3,4,5,3,4,5,6,7]; var iIndex = arr.lastIndexOf(3); console.log(iIndex);
11.Array.isArray():判斷一個變量是否爲數組。
var obj = []; console.log(Array.isArray(obj));
4、ES5新增字符串方法
trim方法:去除字符串首尾的空白字符
var str = ' hello world '; console.log(str.trim());
5、ES5新增JSON對象方法
1.JSON.parse:將一個JSON格式的字符串轉換成對象。
var str = '{"name":"張三"}'; console.log(JSON.parse(str));
2.JSON.stringify:將對象轉換成JSON格式的字符串。
var obj = {name:'張三'}; console.log(JSON.stringify(obj));