**均來自:mdn
原陣列將被改變,但是陣列的長度不會發生變化,ie系列不支援此方法
if (!array.prototype.copywithin)
var o = object(this);
// steps 3-5.
// >>> 0 的作用(無符號右移):
// 1.能轉換為數值的先轉換為數值然後在右移
// 2.非數值型別不能轉換為數值的返回0
// 3.自然數向左取整,負數會轉換為正數
var len = o.length >>> 0;
// steps 6-8.
// >> 0 的作用(有符號右移):
// 1.能轉換為數值的先轉換為數值然後在右移
// 2.非數值型別不能轉換為數值的返回0
// 3.自然數向左取整,負數向右取整
var relativetarget = target >> 0;
//扶正target索引,負數絕對值超過len取0,正數超過len取len
var to = relativetarget < 0 ?
math.max(len + relativetarget, 0) :
math.min(relativetarget, len);
// steps 9-11.
var relativestart = start >> 0;
var from = relativestart < 0 ?
math.max(len + relativestart, 0) :
math.min(relativestart, len);
// steps 12-14.如果沒傳end取len,傳了end就按照上面的規則扶正end
var end = arguments[2];
var relativeend = end === undefined ? len : end >> 0;
var final = relativeend < 0 ?
math.max(len + relativeend, 0) :
math.min(relativeend, len);
// step 15.
var count = math.min(final - from, len - to);
// steps 16-17.
var direction = 1;
//from to final count最大為len最小為0
//from複製的開始索引, to賦值的開始索引, final複製的結束索引,count
/** * a. from === to
* 1. from === final count = 0; return o;
* 2. from < final count = final - from; 正常迴圈,return o;
* 3. from > final count < 0; return o;
* b. from > to
* 1. from === final count = 0; return o;
* 2. from < final count = final - from; 正常迴圈,return o;
* 3. from > final count < 0; return o;
* c. from < to
* 1. from === final count = 0; return o;
* 2. from < final
* i. 如果 final - from <= len - to, count = final - from,
* ii. 如果 final - from > len - to, count = len - to,
* 按i和ii這種分析方法,不適合恰當,可以畫圖來示意,就是to始終落在from和final的區間裡,
* 這種情況就需要特殊處理也就是下面的 from < to && to < (from + count)
* 3. from > final count < 0; return o;
*/if (from < to && to < (from + count))
// step 18.
while (count > 0) else
from += direction;
to += direction;
count--;
}// step 19.
return o;
};}
var obj = ;
array.prototype.copywithin.call(obj, 0, "a")
0, "c")
//
Javascript不清不楚之concat
均來自 mdn 此方法用來合併多個陣列,不會改變原有的陣列,返回乙個新的陣列 根據提供的陣列做淺拷貝生成新陣列 注意 陣列 值在連線時保持不變。此外,對於新陣列的任何操作 僅當元素不是物件引用時 都不會對原始陣列產生影響,反之亦然 var arr 1,2,3 var res arr.concat 4...
不清不楚的 Session 和 Cookie
會話 session 跟蹤是web程式中常用的技術,用來跟蹤使用者的整個會話。常用的會話跟蹤技術是cookie與session。cookie通過在客戶端記錄資訊確定使用者身份,session通過在伺服器端記錄資訊確定使用者身份。cookie機制 cookie技術是客戶端的解決方案,cookie就是由...
一些關於集合的不不清不楚的東西
1.集合分為 泛型集合 list 和 非泛型集合 arraylist 2.集合與陣列類似 但相比較於陣列 集合的好處在於 長度不固定 資料型別可以不用定義 牽扯到泛型集合最基本的判斷 事先定義資料型別的為泛型集合 否則為非泛型集合 並且集合區別於陣列的是可以動態擴容,並且它的索引會 根據程式的擴充套...