国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

js幾個常被忽略的基礎(chǔ)知識點

PascalXie / 2449人閱讀

摘要:參數(shù)數(shù)組片段結(jié)束處的后一個元素的數(shù)組下標。返回值一個新數(shù)組,包含從到不包括該元素指定的元素。描述方法將返回數(shù)組的一部分,或者說是一個子數(shù)組。輸出因為此方法不會在每一個元素的基礎(chǔ)上再次執(zhí)行匹配。

array.slice(start, end)

參數(shù)start
數(shù)組片段開始處的數(shù)組下標。如果是負數(shù),它聲明從數(shù)組尾部開始算起的位置。 也就是說,-1指最后一個元素,-2指倒數(shù)第二個元素,以此類推。

參數(shù)end
數(shù)組片段結(jié)束處的后一個元素的數(shù)組下標。如果沒有指定這個參數(shù) 包含從start開始到數(shù)組結(jié)束的所有元素。如果這個參數(shù)是負數(shù), 從數(shù)組尾部開始算起的元素。

返回值
一個新數(shù)組,包含從start到end(不包括該元素)指定的array元素。

描述
方法slice()將返回數(shù)組的一部分,或者說是一個子數(shù)組。返回的數(shù)組包含從start 開始到end之間的所有元素,但是不包括end所指的元素。如果沒有指定end,返回的數(shù)組包含從start開始到原數(shù)組結(jié)尾的所有元素。

var a = [1,2,3,4,5];

a.slice(0,3);    // 返回 [1,2,3]

a.slice(3);      // 返回 [4,5]

a.slice(1,-1);   // 返回 [2,3,4]

注意:該方法并不修改數(shù)組。如果想刪除數(shù)組中的一段元素,應該使用方法Array.splice。

使用 Array#slice 拷貝數(shù)組
var len = items.length;
var itemsCopy = [];
var i;

// bad
for (i = 0; i < len; i++) {
  itemsCopy[i] = items[i];
}

// good
itemsCopy = items.slice();
使用 Array#slice 將類數(shù)組對象轉(zhuǎn)換成數(shù)組。
var nodesArr = Array.prototype.slice.call(document.querySelectorAll("div"));
// "true" array of DIVs
// 得到一個由 div 元素組成的“真正的”數(shù)組
 
var argsArr = Array.prototype.slice.call(arguments);
// changes arguments to "true" array
// 把 arguments 轉(zhuǎn)換成一個“真正的”數(shù)組
Array.prototype.sort

不僅可以對簡單類型的數(shù)組項進行排序,可以通過屬性來排序?qū)ο蟆H绻奶旆?wù)器端發(fā)來一段 JSON 數(shù)據(jù),而且其中的對象需要排序

[
    { name: "Robin Van PurseStrings", age: 30 },
    { name: "Theo Walcott", age: 24 },
    { name: "Bacary Sagna", age: 28  }
].sort(function(obj1, obj2) {
    // 實現(xiàn)增序排列:前者的 age 小于后者
    return obj1.age - obj2.age;
});
    // Returns:  
    // [
    //    { name: "Theo Walcott", age: 24 },
    //    { name: "Bacary Sagna", age: 28  },
    //    { name: "Robin Van PurseStrings", age: 30 }
    // ]
    
   
用 length 屬性來截斷數(shù)組

傳對象只是傳引用,我們經(jīng)常會試圖 把一個數(shù)組清空,但實際上卻錯誤地創(chuàng)建了一個新數(shù)組。

var myArray = yourArray = [1, 2, 3];

// 囧
myArray = []; // `yourArray` 仍然是 [1, 2, 3]
 
// 正確的方法是保持引用
myArray.length = 0; // `yourArray` 和 `myArray`(以及其它所有對這個數(shù)組的引用)都變成 [] 了

使用 push 來合并數(shù)組

使用 push 方法來合并數(shù)組:

var mergeTo = [4,5,6];
var mergeFrom = [7,8,9];
 
Array.prototype.push.apply(mergeTo, mergeFrom);
 
mergeTo; // is: [4, 5, 6, 7, 8, 9]

高效探測功能特性和對象屬性

很多時候我們會像下面這樣來探測瀏覽器的某個特性:

if(navigator.geolocation) {
    // 在這里干點事情
}

當然這可以正常工作,但它并不一定有很好的效率。因為這個對象探測方法會在瀏覽器中初始化資源。在過去,上面的代碼片斷可能會在某些瀏覽器下導致內(nèi)存泄露。更好、更快的方法是檢查對象是否包含某個鍵名:

if("geolocation" in navigator) {
    // 在這里干點事情
}

鍵名檢查十分簡單,而且可以避免內(nèi)存泄露。

數(shù)組的 indexOf
let arr = ["orange", "2016", "2016"];

arr.indexOf("orange"); //0
arr.indexOf("o"); //-1

arr.indexOf("2016"); //1
arr.indexOf(2016); //-1

arr.indexOf(‘orange") 輸出 0 因為 ‘orange" 是數(shù)組的第 0 個元素,匹配到并返回下標。
arr.indexOf(‘o") 輸出 -1 因為此方法不會在每一個元素的基礎(chǔ)上再次執(zhí)行 indexOf 匹配。
arr.indexOf(‘2016") 輸出 1 因為此方法從頭匹配直到匹配到時返回第一個數(shù)組元素的下表,而不是返回全部匹配的下標。
arr.indexOf(2016) 輸出 -1 注意:這里不會做隱式類型轉(zhuǎn)換。

MDN上面的說明:

indexOf() compares searchElement to elements of the Array using
strict equality (the same method used by the === or triple-equals operator).

這里用的是嚴格等于(===)。做類似判斷的時候多留意,數(shù)字不會轉(zhuǎn)成字符串,同理字符串也不會轉(zhuǎn)換成數(shù)字。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/81453.html

相關(guān)文章

  • 可變對象與不可變對象

    摘要:不可變對象不允許對自身內(nèi)容進行修改。因為他們說到不可變對象時用的是賦值,而說到可變對象又用了的索引等方法,這根本是兩碼事。基于這一設(shè)定,兩者在功能上的最大區(qū)別就是不可變對象可以作為字典的鍵,而可變對象不行。 前陣子我們聊了下函數(shù)的參數(shù)傳遞以及變量賦值的一些內(nèi)容:關(guān)于函數(shù)參數(shù)傳遞,80%人都錯了 簡單回顧下要點: 1. Python 中的變量不是裝有對象的 容器 ,而是貼在對象上的 標簽...

    jay_tian 評論0 收藏0
  • 代碼失控與狀態(tài)機(上)

    摘要:代碼只是狀態(tài)機圖的相關(guān)元素的一種表現(xiàn)形式,它與節(jié)點式或表格式的狀態(tài)機圖并無本質(zhì)不同。如上,狀態(tài)機是防止代碼失控的一劑良藥,制備完善的狀態(tài)機圖就是防止代碼失控的一種有效手段。 前言 前幾天和某某同學吃飯席間,他聊到每當要修改老項目中自己寫的代碼時就痛苦不堪,問我是不是也有同感。我覺得這應該是不少程序猿的心聲,之所以會這樣,大致有兩個主因: 項目的整體設(shè)計很糟糕,只管往上堆砌各種功能、補...

    cucumber 評論0 收藏0
  • 前端面試 - 收藏集 - 掘金

    摘要:一基礎(chǔ)接口的意義百度規(guī)范擴展回調(diào)抽象類的意義我的前端面試經(jīng)歷百度前端掘金博主就讀于電子科技大學,大三狗一枚面試是個漫長的過程,從海投到收獲電話面試,一面二面三面,一個步驟出錯那么后面就宣告終結(jié)。 一道常被人輕視的前端 JS 面試題 - 前端 - 掘金 目錄前言第一問第二問變量聲明提升函數(shù)表達式第三問第四問第五問第六問構(gòu)造函數(shù)的返回值第七問最后前言 年前剛剛離職了,分享下我曾經(jīng)出過的一道...

    lpjustdoit 評論0 收藏0
  • 有關(guān)form表單常被問到識點

    摘要:限制表單的數(shù)據(jù)集的值必須為字符而支持整個字符集通用字符集。因此對于提交時,傳輸數(shù)據(jù)就會受到長度的限制。但實際各個服務(wù)器會規(guī)定對提交數(shù)據(jù)大小進行限制,都有各自的配置。這一般用于識別該用戶是否擁有合法的操作權(quán)限,提高了數(shù)據(jù)的安全性。 這里排版可能不是太好,詳情看我的簡書 form表單有什么作用? 表單的作用是搜集用戶的輸入,用戶提交表單時向服務(wù)器傳輸數(shù)據(jù),從而實現(xiàn)用戶與web服務(wù)器的交互。...

    kohoh_ 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<