ES5

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);
indexOf

  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);

});
forEach

  3.map(function(item,index,array){})遍歷數組,將數組中全部元素都讓一個函數去處理,新元素組成新數組返回

var arr = [2,6,4,8];

var newArr = arr.map(function (v){

    return v * 2;

});

console.log(newArr);
map

  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);
reduce

  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);
filter

  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;
    }
});
some

  7.every方法先遍歷數組,判斷全部元素是否知足條件,返回布爾值

var arr = [2,4,6,10,15,21];
var f = arr.every(function(element, index, array){
    return element > 10;
});
every

  8.find方法返回數組中知足條件的第一個值,找不到元素返回false

var arr = [2,4,6,10,15,21];
var f = arr.find(function(element, index, array){
    return element > 10;
});
find

  9.findIndex方法返回數組中知足條件的第一個值得下標,找不到元素則返回-1

var arr = [2,4,6,10,15,21];
var f = arr.findIndex(function(element, index, array){
    return element > 10;
});
findIndex

   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);
lastIndexOf

  11.Array.isArray():判斷一個變量是否爲數組。

var obj = [];

console.log(Array.isArray(obj));
isArray

 4、ES5新增字符串方法

  trim方法:去除字符串首尾的空白字符

var str = ' hello world ';

console.log(str.trim());
trim

5、ES5新增JSON對象方法

  1.JSON.parse:將一個JSON格式的字符串轉換成對象。

var str = '{"name":"張三"}';

console.log(JSON.parse(str));
JSON.parse

  2.JSON.stringify:將對象轉換成JSON格式的字符串。

var obj = {name:'張三'};

console.log(JSON.stringify(obj));
JSON.stringify
相關文章
相關標籤/搜索