從零開始學 Web 之 ES6(六)ES6基礎文法四

來源:互聯網
上載者:User

標籤:OLE   undefined   item   進入   也會   介紹   ref   repeat   ==   

大家好,這裡是「 從零開始學 Web 系列教程 」,並在下列地址同步更新......

  • github:https://github.com/Daotin/Web
  • 公眾號:Web前端之巔
  • 部落格園:http://www.cnblogs.com/lvonve/
  • CSDN:https://blog.csdn.net/lvonve/

在這裡我會從 Web 前端零基礎開始,一步步學習 Web 相關的知識點,期間也會分享一些好玩的項目。現在就讓我們一起進入 Web 前端學習的冒險之旅吧!

一、字串的擴充
  • includes(str) : 判斷是否包含指定的字串

  • startsWith(str): 判斷是否以指定字串開頭

  • endsWith(str): 判斷是否以指定字串結尾
  • repeat(count): 重複指定次數

    let str = 'abcdefg';    console.log(str.includes('a')); //true    console.log(str.includes('h')); //false    //startsWith(str) : 判斷是否以指定字串開頭    console.log(str.startsWith('ab')); //true    console.log(str.startsWith('ac')); //false    //endsWith(str) : 判斷是否以指定字串結尾    console.log(str.endsWith('fg')); //true    console.log(str.endsWith('d')); //false    //repeat(count) : 重複指定次數a    console.log(str.repeat(3)); // abcdefgabcdefgabcdefg
二、數值的擴充

二進位與八位元值標記法: 二進位用0b開頭, 八進位用0o開頭。

  • Number.isFinite(i): 判斷是否是有限大的數

  • Number.isNaN(i) : 判斷是否是NaN

  • Number.isInteger(i) : 判斷是否是整數

  • Number.parseInt(str): 將字串轉換為對應的數值
  • Math.trunc(i): 直接去除小數部分

    console.log(0b1010); //10    console.log(0o56); //46    console.log('--------------------');    //Number.isFinite(i) : 判斷是否是有限大的數    console.log(Number.isFinite(NaN)); //false    console.log(Number.isFinite(5)); //true    console.log(Number.isFinite(Infinity)); //false    console.log('--------------------');    //Number.isNaN(i) : 判斷是否是NaN    console.log(Number.isNaN(NaN)); //true    console.log(Number.isNaN(5)); //false    console.log(Number.isNaN(undefined)); //false    console.log('--------------------');    //Number.isInteger(i) : 判斷是否是整數    console.log(Number.isInteger(5.23)); //false    console.log(Number.isInteger(5.0)); //true    console.log(Number.isInteger(5)); //true    console.log('--------------------');    //Number.parseInt(str) : 將字串轉換為對應的數值    console.log(Number.parseInt('123abc')); //123    console.log(Number.parseInt('a123abc')); //NaN    console.log('--------------------');    // Math.trunc(i) : 直接去除小數部分    console.log(Math.trunc(13.123)); //13
三、數組擴充
  • Array.from(v): 將偽數組對象或可遍曆對象轉換為真數組
  • Array.of(v1, v2, v3) : 將一系列值轉換成數組

  • find(function(value, index, arr){return true}) : 找出第一個滿足條件返回true的元素
  • findIndex(function(value, index, arr){return true}): 找出第一個滿足條件返回true的元素下標

<body>    <button>測試1</button>    <br>    <button>測試2</button>    <br>    <button>測試3</button>    <br>    <!--1. Array.from(v) : 將偽數組對象或可遍曆對象轉換為真數組2. Array.of(v1, v2, v3) : 將一系列值轉換成數組3. find(function(value, index, arr){return true}) : 找出第一個滿足條件返回true的元素4. findIndex(function(value, index, arr){return true}) : 找出第一個滿足條件返回true的元素下標-->    <script type="text/javascript">        //Array.from(v) : 將偽數組對象或可遍曆對象轉換為真數組,傳回值即為真數組        // 使用 DOM操縱擷取的元素集合是偽數組。        let btns = document.getElementsByTagName('button');        console.log(btns.length); //3        Array.from(btns).forEach(function (item, index) {            console.log(item, index);        });        //Array.of(v1, v2, v3) : 將一系列單獨的值轉換成數組        let arr = Array.of(1, 'abc', true);        console.log(arr);        //find(function(value, index, arr){return true}) : 找出第一個滿足條件返回true的元素        let arr1 = [1, 3, 5, 2, 6, 7, 3];        let result = arr1.find(function (item, index) {            // 尋找arr1數組中第一個大於3的元素            return item > 3;        });        console.log(result); //5        //findIndex(function(value, index, arr){return true}) : 找出第一個滿足條件返回true的元素下標        let result1 = arr1.findIndex(function (item, index) {            // 尋找arr1數組中第一個大於3的元素下標值            return item > 3;        });        console.log(result1); //2    </script></body>
四、對象擴充
  • Object.is(v1, v2) :判斷2個資料是否完全相等。(內部是的實現原理是比較字串是否完全相等)
console.log(Object.is('abc', 'abc'));//trueconsole.log(NaN == NaN);//falseconsole.log(Object.is(NaN, NaN));//trueconsole.log(0 == -0);//trueconsole.log(Object.is(0, -0));//false
  • Object.assign(target, source1, source2..): 將來源物件的屬性複製到目標對象上
let obj = {name : 'Daotin', age : 18, c: {d: 2}};let obj1 = {};Object.assign(obj1, obj);console.log(obj1, obj1.name);
  • 直接操作__proto__屬性
let obj3 = {name : 'Daotin', age : 18};let obj4 = {};// obj4的隱式原型指向obj3obj4.__proto__ = obj3;console.log(obj4, obj4.name, obj4.age);// {name : 'Daotin', age : 18}  Daotin 18
五、set容器和map容器

Set容器 : 無序不可重複的多個value的集合體。

Set容器需要通過new 來建立一個Set容器物件,參數即為多個value值。

let set = new Set([1,2,3,4,3,2,1,6]);

set容器物件的方法和屬性:

  • Set():set容器的建構函式(不帶參數value集合)
  • Set(array):set容器的建構函式(帶參數value集合)
  • add(value):向set容器物件添加值value
  • delete(value):刪除set容器物件的value值
  • has(value):判斷set容器是否有value值
  • clear():清空set容器
  • size:相當於數組的length

Map容器 : 無序的 key不重複的多個key-value的集合體。

注意:Map的參數數組的集合,每一個數組都是key-value的形式。整個數組集合的外面用[]包圍,而不是{}

let map = new Map([['name', 'Daorin'],['age', 18]]);
  • Map()
  • Map(array)

  • set(key, value) // 類似於set容器的add方法
  • get(key)
  • delete(key)
  • has(key)
  • clear()
  • size

Set和Map的作用:

1、Set容器可以為數組去重。

let arr = [1, 2, 3, 4, 5, 2, 4, 5];    let set = new Set(arr);    arr = [];    for (let i of set) {      arr.push(i);    }    console.log(arr); // 1,2,3,4,5

2、Set和Map容器可以使用for ..of.. 來遍曆。

六、ES7 方法介紹

1、指數運算子:**

console.log(3**2); // 9

2、Array.prototype.includes(value); :判斷數組中是否包含指定value。(在ES6中有,str.includes(str1) : 判斷str中是否包含指定的字串str1)

let arr = [1,2,3,4, 'abc'];console.log(arr.includes(2));//trueconsole.log(arr.includes('a'));//false

從零開始學 Web 之 ES6(六)ES6基礎文法四

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.