搜尋
首頁web前端js教程es6之各種資料類型的擴充實例詳解
es6之各種資料類型的擴充實例詳解Jun 26, 2017 am 10:24 AM
擴充數據類型

一. 字串的擴充

  1. 為字串新增了Iterator,可以被for...of遍歷

  2. includes、 startsWith、endsWith都會傳回布林值,並且支援第二個參數(開始搜尋的位置),endsWith針對前n個字符,其他兩個都是從第n個到結束

  3. repeat回傳一個新字串,參數為重複的次數(小數會向下取整,負數或Infnity會報錯,0到-1等同於0,字串會轉為數字)

  4. padStart、padEnd在頭部或尾部補全,第一個參數是字串最小長度,第二個參數是用來補齊的字串

  5. 模板字串`${...}`

二. 數值的延伸

  1. Number.isFinite檢查一個值是否是有限的,對非數值一律回傳false

  2. Number.isNaN檢查一個值是否是NaN,只有NaN才會回傳true;
    傳統方法isFinite isNaN都會先呼叫Number()將非數值轉為數值

  3. Number.parseInt(),Number.parseFloat()與傳統方法一樣,目的是減少全域方法是語言模組化

  4. #Number.isInteger()判斷是否為整數

  5. Number.EPSILON是一個極小的常數,浮點數計算的誤差小於這個值就ok

  6. #JS的準確整數範圍:-2^53~2^53(不含兩端),
    Number.MAX_SAFE_INTEGER = Math.pow(2, 53) - 1;
    Number.MIN_SAFE_INTEGER = -Number.MAX_SAFE_INTEGER;
    Number.isSafeInteger()是用來判斷一個整數是否落在這個範圍之內;

  7. Math.trunc() 移除小數部分回傳整數部分;
    Math.sign() 判斷是整數負數還是0;
    Math.cbrt() 計算一個數的立方根;還有一些對數方法、三角函數方法;
    指數運算子2 * * 3 === 8,與Math.pow實作不同,對於特別大的運算,運算結果最後一位有不同;

三. 陣列的擴充

  1. Array.from可以將類別數組物件和可遍歷的物件轉為數組,擴展運算子也可以將某些物件轉數組;
    可以接受第二個參數,類似於map方法,將處理的值傳回數組;

  2. Array.of將一組值轉為數組;

  3. copyWithin將指定位置的成員複製到其他位置;
    Array.prototype.copyWithin(target, start = 0, end = this.length)

  4. find找到第一個符合條件的成員,參數是一個回呼函數;
    findIndex傳回第一個符合條件的陣列成員的位置

  5. #fill使用給定值填入數組,二三參數可以指定開始結束位置;

  6. keys、values、entries

  7. includes,indexOf一是不夠語意化,二是內部使用===判斷,
    [NaN] .indexOf(NaN) // -1  ,   [NaN].includes(NaN) // true 
    Map的has是用來找出鍵名的,Set的has是用來找出值的

  8. #陣列的空位是沒有任何值,0 in [,,] // false,es6中會將空位轉為undefined,應當避免出現空位

四.函數的擴展

  1. 允許為函數設定預設值,如果非尾部的參數設定預設值,實際上這個參數是沒法省略的;
    定了預設值以後,函數的length屬性,將傳回沒有指定預設值的參數個數;
    如果設定了預設值的參數不是尾參數,那麼length屬性也不再計入後面的參數了;

  2. 一旦設定了參數的預設值,當函數進行宣告初始化時,參數就會形成一個單獨的作用域(context)。等到初始化結束,這個作用域就會消失。這種語法行為,在不設定參數預設值時,是不會出現的。

  3. Rest參數(...變數名稱)

  4. #擴充運算子(...),將一個陣列轉為用逗號分隔的參數序列。

    /* 替代数组的apply方法 */// ES5的写法function f(x, y, z) {  // ...}var args = [0, 1, 2];
    f.apply(null, args);// ES6的写法function f(x, y, z) {  // ...}var args = [0, 1, 2];
    f(...args);/* --------------------------------- */// ES5的写法Math.max.apply(null, [14, 3, 77])// ES6的写法Math.max(...[14, 3, 77])// 等同于Math.max(14, 3, 77);/* --------------------------------- */// ES5的写法var arr1 = [0, 1, 2];var arr2 = [3, 4, 5];
    Array.prototype.push.apply(arr1, arr2);// ES6的写法var arr1 = [0, 1, 2];var arr2 = [3, 4, 5];
    arr1.push(...arr2);
  5. 箭頭函數使用注意:

    (1)函數體內的this對象,就是定義時所在的對象,而不是使用時所在的對象。

    (2)不可以當作建構函數,也就是說,不可以使用new指令,否則會拋出一個錯誤。

    (3)不可以使用arguments對象,該對像在函數體內不存在。如果要用,可以用 rest 參數代替。

    (4)不可以使用yield指令,因此箭頭函數不能用作 Generator 函數。

 

五.物件的擴充

  1. #屬性簡寫表示法

  2. #屬性名稱表達式,[變數名稱]方法的
    name

    屬性傳回函數名稱(即方法名稱)
    #### ##Object.is,與===基本上一致,不同在於一是###+0###不等於###-0###,二是###NaN###等於自身### ######
    // es5实现Object.isObject.defineProperty(Object, 'is', {
      value: function(x, y) {if (x === y) {      // 针对+0 不等于 -0的情况  return x !== 0 || 1 / x === 1 / y;
        }// 针对NaN的情况return x !== x && y !== y;
      },
      configurable: true,
      enumerable: false,
      writable: true});
    ###
  3. Object.assign(target, o1, o2)用於物件的合併,若果有同名屬性,後面會覆蓋前面的;實行的淺拷貝
    由於undefined和null無法轉成對象,所以如果它們作為參數,就會報錯;

  4. Object.getOwnPropertyDescriptor方法可以取得該屬性的描述對象。

  5. 屬性的遍歷:
    for...in、Object.keys、Object.getOwnPropertyNames(obj)、Object.getOwnPropertySymbols(obj)、Reflect.ownKeys(obj)

  6. __proto__與Object.setPrototypeOf()作用相同,用來設定一個物件的prototype對象,Object.getPrototypeOf() 

  7. #Object. keys(),Object.values(),Object.entries() 

  8. #Object.getOwnPropertyDescriptors傳回指定物件所有自身屬性(非繼承屬性)的描述物件;

以上是es6之各種資料類型的擴充實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
php如何使用PHP的SNMP扩展?php如何使用PHP的SNMP扩展?Jun 02, 2023 am 10:22 AM

PHP的SNMP扩展是一种使PHP能够通过SNMP协议与网络设备进行通信的扩展程序。使用该扩展可以方便地获取和修改网络设备的配置信息,例如路由器、交换机等设备的CPU、内存、网络接口等信息,也可以进行诸如开关设备端口等控制操作。本文将介绍SNMP协议的基础知识、PHP的SNMP扩展的安装方法以及如何在PHP中使用SNMP扩展进行网络设备的监控和控制。一、SN

如何使用极光推送扩展,在PHP应用中实现批量消息推送功能如何使用极光推送扩展,在PHP应用中实现批量消息推送功能Jul 25, 2023 pm 08:07 PM

如何使用极光推送扩展,在PHP应用中实现批量消息推送功能在移动应用的开发中,消息推送是一项非常重要的功能。极光推送是一种常用的消息推送服务,提供了丰富的功能和接口。本文将介绍如何使用极光推送扩展在PHP应用中实现批量消息推送功能。第一步:注册极光推送账号并获取API密钥首先,我们需要在极光推送官网(https://www.jiguang.cn/push)注册

php如何使用PHP的ZipArchive扩展?php如何使用PHP的ZipArchive扩展?Jun 02, 2023 am 08:13 AM

PHP是一种流行的服务器端语言,可以用来开发Web应用程序和处理文件。PHP的ZipArchive扩展是一个强大的工具,可以在PHP中操作zip文件。在这篇文章中,我们将介绍如何使用PHP的ZipArchive扩展来创建、读取和修改zip文件。一、安装ZipArchive扩展在使用ZipArchive扩展之前,需要确保已经安装了这个扩展。安装方法如下:1.安

php如何使用PHP的POSIX扩展?php如何使用PHP的POSIX扩展?Jun 03, 2023 am 08:01 AM

PHP的POSIX扩展是一组允许PHP与POSIX兼容操作系统进行交互的函数和常量。POSIX(PortableOperatingSystemInterface)是一组操作系统接口标准,旨在允许软件开发人员编写可在各种UNIX或UNIX类操作系统上运行的应用程序。本文将介绍如何使用PHP的POSIX扩展,包括安装和使用。一、安装PHP的POSIX扩展在

php如何使用PHP的Phar扩展?php如何使用PHP的Phar扩展?May 31, 2023 pm 11:31 PM

随着PHP的发展和应用场景的不断扩大,Phar扩展已经成为PHP编程中的重要一环。Phar是PHPArchive的缩写,它可以将多个PHP文件和资源打包成单个文件,方便进行分发和管理。本文将介绍如何使用PHP的Phar扩展来进行打包和管理。安装Phar扩展首先,我们需要检查PHP是否已经安装Phar扩展。在Linux下,通过终端输入以下命令:php-m

教程:使用百度云推送(Baidu Push)扩展在PHP应用中实现消息推送功能教程:使用百度云推送(Baidu Push)扩展在PHP应用中实现消息推送功能Jul 26, 2023 am 09:25 AM

教程:使用百度云推送(BaiduPush)扩展在PHP应用中实现消息推送功能引言:随着移动应用的迅猛发展,消息推送功能在应用程序中变得越来越重要。为了实现即时通知和消息推送功能,百度提供了一种强大的云推送服务,即百度云推送(BaiduPush)。在本教程中,我们将学习如何使用百度云推送扩展(PHPSDK)在PHP应用中实现消息推送功能。我们将使用百度云

PHP和WebDriver扩展:如何模拟用户点击和输入操作PHP和WebDriver扩展:如何模拟用户点击和输入操作Jul 07, 2023 pm 05:10 PM

PHP和WebDriver扩展:如何模拟用户点击和输入操作近年来,随着Web应用程序的快速发展,自动化测试变得越来越重要。在自动化测试中,模拟用户操作是一个关键的环节,它可以使我们更准确地测试和验证我们的应用程序。在PHP开发中,我们通常使用SeleniumWebDriver来实现自动化测试。SeleniumWebDriver是一种强大的工具,它可以模拟

php如何使用PHP的Tokenizer扩展?php如何使用PHP的Tokenizer扩展?Jun 02, 2023 am 08:25 AM

PHP是一种流行的服务器端脚本语言,因其易用性和灵活性而备受欢迎。PHP的Tokenizer扩展是一种强大的工具,它允许你将PHP代码分解为令牌,以便进行语法分析和其他操作。在本文中,我们将介绍如何使用PHP的Tokenizer扩展,以及它的一些基本概念和用法。令牌(Token)是指代码中的最小单位。Token被解析器(Parser)用于生成抽象语法树(AS

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用