Rumah > Soal Jawab > teks badan
if (!Array.prototype.map) {
Array.prototype.map = function(callback, thisArg) {
var T, A, k;
if (this == null) {
throw new TypeError(" this is null or not defined");
}
var O = Object(this);
var len = O.length >>> 0;
// 3.如果callback不是函数,则抛出TypeError异常.
if (Object.prototype.toString.call(callback) != "[object Function]") {
throw new TypeError(callback + " is not a function");
}
if (thisArg) {
T = thisArg;
}
A = new Array(len);
k = 0;
while(k < len) {
var kValue, mappedValue;
if (k in O) {
kValue = O[ k ];
mappedValue = callback.call(T, kValue, k, O);
A[ k ] = mappedValue;
}
k++;
}
return A;
};
}
var len = O.length >>> Apakah tujuan operator bit di sini
过去多啦不再A梦2017-05-18 10:59:55
Pemahaman peribadi:
Oleh kerana walaupun kaedah peta ini adalah pada prototaip Array, apabila ia sebenarnya dipanggil, ini tidak semestinya jenis Array, dan panjangnya tidak boleh dijamin Selepas menambah operasi bit, nilai yang tidak pasti boleh ditukar kepada Nombor.
1 >>> 0 // 1
undefined >>> 0 // 0
null >>> 0 // 0
'string' >>> 0 // 0
天蓬老师2017-05-18 10:59:55
Semua nilai bukan angka ditukar kepada 0
Semua nombor yang lebih besar daripada atau sama dengan 0 mengambil bahagian integer