遍歷的是物件的屬性,因為陣列也是物件,其內部的元素的索引就是其屬性值。用該方式遍歷陣列就是獲取了陣列中的每乙個元素的索引值(從0開始)。
而for of 則是直接遍歷集合中的元素值本身。map、set和array都屬於iterable型別的資料。都能夠用for of來遍歷:
var omap = new map([['anna',1],['mike',2],['betty',3]]);
for(var x of omap)
此外,最好的方式是使用foreach,iterable型別的資料有內建的方法foreach,該方法接收乙個引數。每遍歷乙個元素就呼叫該方法一次:
var a = ['a', 'b', 'c'];
a.foreach(function
(element, index, array) );
以該種方式遍歷在map型別資料中,ele相應值。index相應鍵。
注意:foreach()方法是es5.1標準引入的,你須要測試瀏覽器是否支援。
注意提公升的是宣告。也就是說通過var 宣告的變數在執行到宣告語句之前使用了該變數是不會報錯的。可是此時無法獲取該變數的值。提公升的時候並沒有把賦值也提公升了,該值為undefined,直到執行到該語句為這個變數賦值為止。
將變數和函式都放到乙個命名空間中。實際上就是定義了乙個空物件,全部的變數和方法都作為該物件的屬性和方法:
// 其它變數:
// 其它函式:
() ;
3.es6引入了let用來宣告塊級作用域內的變數,const來宣告常量.
除了改動函式的作用域外(指定this值),還能夠改變已有函式的行為,即為已經提供了的函式新增新的定義,比如統計呼叫了多少次parseint:
var count = 0;
var oldparseint = parseint; // 儲存原函式
window.parseint = function
() ;
// 測試:
parseint('10');
parseint('20');
parseint('30');
count; // 3
對陣列中每乙個元素呼叫function方法,將結果作為新的陣列返回。不會改變原來的陣列。
引數構成和foreach方法相似。
乙個函式中包括了閉包,每次呼叫外部函式,都會生成乙個新的內部函式。也就是說閉包在外部函式呼叫時都是新生成的。
返回閉包時牢記的一點就是:返回函式不要引用不論什麼迴圈變數,或者興許會發生變化的變數。例如以下**中。引數n繫結了每乙個i(思考活動物件中儲存的內容包括了形參及其值,內部閉包會沿著作用域鏈找到外部馬上執行的匿名函式活動物件中儲存的變數值):假設一定要引用迴圈變數怎麼辦?方法是再建立乙個函式,用該函式的引數繫結迴圈變數當前的值,不管該迴圈變數興許怎樣更改。已繫結到函式引數的值不變:
function
count
() })(i); //建立匿名函式並馬上執行
f_arr.push(rs);
}return f_arr;
}
閉包能夠延遲執行,或者提供了乙個能夠訪問到函式私有變數的入口(閉包攜帶了狀態)。
json.stringify(jsobj,replacer,spliter)
replacer(key,value)能夠是陣列,陣列中的元素是轉換時要保留的js物件的屬性。也能夠是乙個函式,該函式對js物件中的鍵值做了某些處理後返回。spliter是轉換後的縮排等切割。
比如:
function convert(key, value)
return
value;
}var xiaojson=json.stringify(xiaoming, convert, ' ');
json物件反序列化為js物件:
function
addclassmate
(key, value)
return value;
}var xiaoobj=json.parse(xiaojson,addclassmate);
data物件中月份是從0開始的,也就是0表示一月。 Javascript 學習筆記
如果在生成的html裡面有事件需要傳遞帶特殊字元的引數,處理如下 singletext 輸入 1.singletext value.escapehtml 為 將html編碼 2.singletext value.escapehtml inspect 為 3.在 jsdebugtext innerht...
javascript學習筆記
視窗操作 1改變視窗的位置 window.location 2視窗的歷史操作 previous 3建立新的視窗 window.open url 視窗名稱 視窗特徵字元 細節 不能換行寫 視窗特徵 width,height,yes,no munubar,status,scrollbars,resiza...
javaScript學習筆記
2018 12 26 標題 var num1 10 var num2 0 var result num1 num2 console.log result infinity 表示超出了js的數值範圍 類似高數里的整數除以無窮小的數,得到無窮大的結果。var num1 a var num2 3 或其它n...