typeof操做符:返回字符串,多是「undefined」,「boolean」,「 string」,「number」,「object」,「function」中的一種,因此不能判斷數組。
NaN(Not a Number):用法NaN(val)若是val能被轉化成一個數就返回false,不然返回true。
parseInt(val,way)其中way能夠是2,4...就是要按照這個進制來轉化,返回number類型,num.toString(way)同理,只不過返回string類型。
object類型有一個hasOwnProperty(name)來判斷當前對象是在實例中仍是原型中。
每一個函數都有個arguments屬性對象來記錄它的參數,至關於一個參數的數組,用argumentscallee能夠遞歸。
unshift方法能夠從前端向數組推入兩個元素並返回長度,用unshift和pop能夠反向模擬隊列。
sort(compare),其中compare(val1,val2)方法當val1在val2前面返回-1,後面返回,0好像是不變。
對數組操做用splice函數,splice(a1,a2,a3......)a1,a2必填a1表示起始位置,a2表示要刪除的項數,後面的參數表示從該位置要插入的新值。
indexOf返回一個val在數組中的位置,lastindexOf()從後面開始數。
數組的迭代方法:every()每一個值都返回true才返回true,filter()返回全部返回true元素的數組,forEach()只是運行函數,沒有返回,map()返回函數調用結果組成的數組,some()與every相對,如有一個返回ture則返回true。
舉例:var everyRes = number.every(function(item,index,array){return item>2 ;}) ;//item,index,array三個參數是必填的。
數組的歸併:reduce和reduceRight(),舉例:var sum = values.reduce(function(prev,cur,index,array){return prev+cur;}) ;prev表明前一個,cur表明後一個。
Date類型:var date = new Date(Date.parse("May 25,2004")); var date = new Date(Date.UTC(2015,4,5,17,55,50));
call和apply區別第一個是this(上下文對象)。
var obj =eval("("+data+")")來轉化json,JSON.parse(data)也能夠,二者的區別是eval至關因而把內容當作js來解析,而parse是隻轉化成obj對象。
與JSON.parse對應的是JSON.stringify方法,來把obj變成json
判讀一個對象是否是數組:Object.prototype.toString.call(o) == '[object Array]' ;
如何用用continue跳出兩層循環(對break也適用):php
var num = 0 ; outer: for(var i=0;i<10;i++) for(var j=0;j<10;j++) { if(i==5&&j==5) { continue outermost ; } num++ ; } alert(num);//95
with語句:前端
var obj = { search : "st" , name : "lala", url : "www.123.com" } ; with(pbj){ var a = search ; var b = name ; var c = url ; }
用Object.defineProperty(obj,"key",{
configurable:true,
value:"value"
});這樣能夠讓對象的屬性只讀。
用Object.defineProperties能夠一次添加多個屬性json
Object.defineProperties(book,{ _year:{ value:2004 }, edition:{ value:1 }, year:{ get:function(){ return this._year ; } set:function(newValue){ if(newValue>2004) { this._year = newValue ; edition++ ; } } } } }) ;
轉載於猿2048:→《js學習階段總結》數組