es6簡單小複習

来源:https://www.cnblogs.com/ygjzs/archive/2020/01/22/12229614.html
-Advertisement-
Play Games

Ecmascript 6 ECMAScript 6.0(以下簡稱ES6)是JavaScript語言的下一代標準,已經在2015年6月正式發佈了。 Ecmascript 是 JavaScript 語言的標註規範 JavaScript 是 Ecmascript 規範的具體實現 + 具體實現取決於各大瀏覽 ...


Ecmascript 6

  • ECMAScript 6.0(以下簡稱ES6)是JavaScript語言的下一代標準,已經在2015年6月正式發佈了。
  • Ecmascript 是 JavaScript 語言的標註規範
  • JavaScript 是 Ecmascript 規範的具體實現
    • 具體實現取決於各大瀏覽器廠商的支持進度
  • Ecmascript 6 也被稱作 Ecmascript 2015
  • 各大瀏覽器廠商對於最新的 Ecmascript 6 標準支持可以參照:
  • 對於不支持 ES6 的環境,可以使用一些編譯轉碼工具做轉換處理再使用
    • 例如 babel

let 和 const

let:

  • let 類似於 var,用來聲明變數
  • 通過 let 聲明的變數不同於 var,只在 let 命令所在的代碼塊內有效(塊級作用域)
  • let 聲明的變數不存在變數提升
  • let不允許在相同作用域內,重覆聲明同一個變數

const:

  • const聲明一個只讀的常量。一旦聲明,常量的值就不能改變
  • const 聲明必須初始化
  • const的作用域與let命令相同:只在聲明所在的塊級作用域內有效
  • const命令聲明的常量也是不提升,必須先聲明後使用
  • const聲明的常量,也與let一樣不可重覆聲明

解構賦值

ES6 允許按照一定模式,從數組和對象中提取值,對變數進行賦值,這被稱為解構(Destructuring)。

數組解構:

let [a, b, c] = [123, 456, 789]
console.log(a, b, c) 123 456 789

對象解構:

let { name, age } = { name: 'Jack', age: 18 }
console.log(name, age) Jack 18

函數參數解構:

function f (p1, { p2 = 'aa', p3 = 'bb' }) {
  console.log(p1, p2, p3)
}

f('p1', { p2: 'p2' }) p1 p2 bb

字元串解構:

let [a, b, c, d, e] = 'hello'
console.log(a, b, c, d, e) h e l l o

字元串

實用方法:

includes(String):返回布爾值,表示是否找到了參數字元串。
startsWith(String):返回布爾值,表示參數字元串是否在源字元串的頭部。
endsWith(String):返回布爾值,表示參數字元串是否在源字元串的尾部。
repeat(Number):repeat方法需要指定一個數值,然後返回一個新字元串,表示將原字元串重覆Number次。

模板字元串:

let basket = { count: 5, onSale: true }
$('#result').append(`
  There are <b>${basket.count}</b> items
   in your basket, <em>${basket.onSale}</em>
  are on sale!
`);
  • 模板字元串(template string)是增強版的字元串,用反引號(`)標識
  • 它可以當作普通字元串使用,也可以用來定義多行字元串,或者在字元串中嵌入變數
  • 如果使用模板字元串表示多行字元串,所有的空格和縮進都會被保留在輸出之中
  • 模板字元串中嵌入變數,需要將變數名寫在 ${} 之中
    • 大括弧內部可以放入任意的JavaScript表達式,可以進行運算,以及引用對象屬性
    • 大括弧內部還可以調用函數

數組

方法:

Array.from() 將一個偽數組轉為一個真正的數組
              實際應用中,常見的類似數組的對象是DOM操作返回的NodeList集合,
              以及函數內部的arguments對象。Array.from都可以將它們轉為真正的數組。
Array.of() Array.of方法用於將一組值,轉換為數組
           這個方法的主要目的,是彌補數組構造函數Array()的不足。
           因為參數個數的不同,會導致Array()的行為有差異。
find() 查找數組中某個元素
findIndex() 查找數組中某個元素的索引下標
includes() 返回一個布爾值,表示某個數組是否包含給定的值,與字元串的includes方法類似

實例方法:

ES6提供三個新的方法——entries(),keys()和values()——用於遍曆數組.
可以用 for...of 迴圈進行遍歷,唯一的區別是 keys() 是對鍵名的遍歷、
values() 是對鍵值的遍歷,entries() 是對鍵值對的遍歷。

entries() 
keys()
values()

函數的擴展

函數參數的預設值:

ES6 允許為函數的參數設置預設值,即直接寫在參數定義的後面。

function log(x, y = 'World') {
  console.log(x, y);
}

log('Hello') Hello World
log('Hello', 'China') Hello China
log('Hello', '') Hello
  • 通常情況下,定義了預設值的參數,應該是函數的尾參數
    • 因為這樣比較容易看出來,到底省略了哪些參數
    • 如果非尾部的參數設置預設值,實際上這個參數是沒法省略的。
  • 指定了預設值以後,函數的length屬性,將返回沒有指定預設值的參數個數
    • 也就是說,指定了預設值後,length屬性將失真

rest 參數:

function add(...values) {
  let sum = 0;

  for (var val of values) {
    sum += val;
  }

  return sum;
}

add(2, 5, 3) 10

擴展運算符:

console.log(...[1, 2, 3]) 1 2 3
console.log(1, ...[2, 3, 4], 5) 1 2 3 4 5

箭頭函數:

var f = v => v

上面的箭頭函數等同於:

var f = function(v) {
  return v
}
  • 箭頭函數體內的this對象,就是定義時所在的對象,而不是使用時所在的對象
  • 箭頭函數不可以當作構造函數,也就是說,不可以使用new命令,否則會拋出一個錯誤
  • 箭頭函數內部不可以使用arguments對象,該對象在函數體內不存在
    • 如果要用,可以用Rest參數代替

對象

屬性的簡潔表示法:

var foo = 'bar';
var baz = {foo};
baz {foo: "bar"}

等同於
var baz = {foo: foo}

除了屬性簡寫,方法也可以簡寫:
var o = {
  method() {
    return "Hello!"
  }
}

等同於

var o = {
  method: function() {
    return "Hello!"
  }
}

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本文介紹調用Spire.Cloud.Word.SDK提供的介面shapesApi來操作Word形狀,包括添加形狀AddShape(),添加形狀時,可設置形狀類型、顏色、大小、位置、傾斜、輪廓、文本環繞方式、順序);刪除形狀DeleteShape()和讀取形狀屬性GetShapeProperties( ...
  • NuGet微軟官方中國鏡像地址: https://nuget.cdn.azure.cn/v3/index.json 打開Visual Studio => 工具 => NuGet包管理器 => 程式包管理器設置 找到“Net包管理器” => “程式包源”,點擊“+”新建項,將地址https://nug ...
  • 要點 導出特性 如何導出Excel表頭 如何導出數據、如何進行數據的切割、如何使用篩選器 導出特性 ExporterAttribute + Name : 名稱(當前Sheet 名稱) + HeaderFontSize :頭部字體大小 + FontSize :正文字體大小 + MaxRowNumber ...
  • 首先在左下角輸入cmd搜索->命令提示符->以管理員身份運行->然後複製下麵一段命令: dism /online /norestart /add-package:%SystemRoot%\servicing\Packages\Microsoft-Windows-IIS-WebServer-AddOn ...
  • https://sqlserver.code.blog/2020/01/22/failed-to-restart-polybase-data-movement-after-running-sp_polybase_join_group/ ...
  • 函數 與其他大多數電腦語言一樣,SQL支持利用函數來處理數據。函數 一般是在數據上執行的,它給數據的轉換和處理提供了方便。 在前一章中用來去掉串尾空格的 RTrim() 就是一個函數的例子 函數沒有SQL的可移植性強 能運行在多個系統上的代碼稱 為可移植的(portable)。相對來說,多數SQL ...
  • 計算欄位 存儲在資料庫表中的數據一般不是應用程式所需要的格式。下麵舉 幾個例子。 * 如果想在一個欄位中既顯示公司名,又顯示公司的地址,但這兩 個信息一般包含在不同的表列中。 * 城市、州和郵政編碼存儲在不同的列中(應該這樣),但郵件標簽 列印程式卻需要把它們作為一個恰當格式的欄位檢索出來。 * 列 ...
  • 1.首先我們可以用管理員用戶以sysdba的身份登錄oracle sqlplus username/password as sysdba 2.然後我就可以來創建用戶了. create user username identified by password; 3.創建好用戶我們接著就可以修改用戶的密 ...
一周排行
    -Advertisement-
    Play Games
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...