前端-ES6

let 和 const

為了解決var的作用域的問題,而且var 有變量提升,會出現全局污染的問題

  1. let 塊狀作用域,并且不能重復聲明
  2. const 一般用于聲明常量,一旦被聲明無法修改,但是const 可以聲明一個對象,對象內部的屬性是可以修改的
    建議: 在默認的情況下用const, 而只有你知道變量值需要被修改的情況下才使用let

模板字符串

解決字符串拼接問題,類似Java中的占位符號

函數之默認值、剩余參數

// 默認值
function add(a, b = 20) {return a + b
}// 默認的表達式也可以可以是一個函數
function add(a, b = getVal(5)) {return a + b
}// 剩余參數:由三個點... 和一個緊跟著的具名參數指定 ...keys
function foundData(obj, ...keys){}

函數擴展運算符、箭頭函數

// 擴展運算符: 將一個數組分割,并將各個項作為分離的參數傳給函數
// 獲取數組中的最大值
const arr = [10,20,90,30]
// ES5 
Math.max.apply(null, arr)// ES6 
Math.max(...arr)// 箭頭函數
const add = (a, b) =>{return a + b
}const add val => {return a + 5
}const add val => (a + 5)

解構賦值

// 解構賦值時對賦值運算符的一種擴展
let node = {name: '張三',age: 45
}
const name = node.name
const age = node.age// 等價寫法
const {name, age } = node// 對數組解構
let arr = [1,2,3]
let[a,b] = arr// 可嵌套解構
let [a,[b],c] = [1,[2],3]

擴展對象的功能

// 對象的方法
// is() ==== 比較倆個值是否嚴格相等
Object.is(NaN, NaN)// assign() 對象合并
let newObj = Object.assign({},{a:1},{b:2})
// 重復的屬性,只會保留一個,會被覆蓋掉
Object.assign({},{a:1},{b:2},{b:2})
{a: 1, b: 2}
// 屬性名稱一樣,但是值不一樣,會回去最后的值
Object.assign({},{a:1},{b:2},{b:3})
{a: 1, b: 3}

Symbol類型

// 原始的數據類型Symbol,它表示獨一無二的值
// 最大的用途:用來定義對象的私有變量

set集合數據類型

// 可以用于去除重復元素
let set2 = new Set([1,2,3,3,3,3,4])// 也可以將set集合中的元素在轉換為數組
let arr = [...]// set中對象的引用無法被釋放,雖然可以使用WeakSet, 但是WeakSet比Set少了很多方法

Map數據類型

數組的擴展方法

數組的方法 from() of()
// from() 將偽數組轉換成真正的數組
function add(){let arr = Array.from(arguments)// 這時候的數組就具備數組的所有方法
}let lis = document.querySelectorAll('li')
console.log(Array.from(list))
// 或者可以通過擴展運算符轉換為真正的數組
console.log([...lis])// from() 還可以接受第二個參數,用來對每個元素的處理
let liContents = Array.from(lis, ele => ele.textContent)// of() 將任意的數據類型,轉換成數組
Array.of(3,11,20,[1,2,3])// find() findIndex()
// find() 找出第一個符合條件的數組成員
let num = [1,2,-10,-20,9].find(n => n<0)// findIndex() 找出第一個符合條件的數組成員的索引
let num = [1,2,-10,-20,9].findIndex(n => n<0)// entries() keys() values()
for(let index of ['a', 'b'].keys()){console.log(index)
}for(let ele of ['a', 'b'].values()){console.log(ele)
}// incluedes() 返回一個boolean 值,表示某個數組中是否包含某個元素

迭代器Interrator 的用法

// Iterator 一種遍歷機制
const items = ['one', 'two', 'three']
const ite = items[Symbol.iterator]();
// {value: "one", done: false} done 如果為false表示還有元素,如果為true 表示遍歷完成結束了
ite.next() 

Generator的應用

// 生成器一般都和迭代器一起使用
// generator函數, 可以通過yield關鍵字,將函數掛起,為了改變執行流提供了可能性
// 同時為了做異步編程提供了方案
// 它跟普通函數的區別
// 1.function 后面函數名之前有*號
// 2.只能在函數內部使用yield表達式,讓函數掛起function* func(){console.log('one')yield 2;console.log('two')yield 3;console.log('end')
}
// 返回一個遍歷器對象 可以調用next()
let fn = func();
console.log(fn.next())
console.log(fn.next())
console.log(fn.next())

Promise的基本使用

// 相當于一個容器,保存這未來才會結束的事件(異步操作)的一個結果
// 各種異步的操作都可以用同樣的方法進行處理// 對象的狀態不受外界的影響 處理異步操作三個狀態 Pending Resolved Rejected
// 一旦狀態改變,就不會在變,任何時候都可以得到這個結果// then() 第一個參數是resolve 回調函數,第二個參數是可選的 是reject 狀態的回調函數
// then() 返回的是一個新的Promise示例,所以可采用鏈式編程// catch() 用于捕獲異常信息// 1.resolve() 可以直接將一個對象轉換為Promise對象
// 2.all() 同時執行多個promise 對象
// 3.race() 某個異步請求設置超時時間,并且在超時后執行響應的操作 

async 的用法

// 異步操作更加方便
// 基本操作 async 它會返回一個Promise對象
async function f(){let s = await 'hello'let data = s.split('')return data;
}
// 如果async 函數中有多個await 那么 then 函數會等待所有的await指令,運行完成,知道遇到return
f().then(v => {console.log(v)})

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/42890.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/42890.shtml
英文地址,請注明出處:http://en.pswp.cn/news/42890.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

工作時使用redis,kafka查閱的資料鏈接

不分先后 一 、redis查閱地址 一篇文章講清楚RedisRedis原理介紹一篇詳文帶你入門 Redis內存耗盡后Redis會發生什么Redis 深入了解鍵的過期時間redis持久化機制Redis延遲問題全面排障指南一文搞定Redis高級特性與性能調優Redis 在 Linux 系統的配置優化Redis 的延遲問題&…

SpringBoot-lombok

為什么要使用lombok? Lombok是一個通過注解以達到減少代碼的Java庫,如通過注解的方式減少getter,setter方法,構造方法等。通過注解的形式自動生成構造器、getter/setter、equals、hashcode、toString等方法&#xff0c;并可以自動化生成日志變量&#xff0c;簡化java開發、提高…

NLP文本匹配任務Text Matching [有監督訓練]:PointWise(單塔)、DSSM(雙塔)、Sentence BERT(雙塔)項目實踐

NLP文本匹配任務Text Matching [有監督訓練]&#xff1a;PointWise&#xff08;單塔&#xff09;、DSSM&#xff08;雙塔&#xff09;、Sentence BERT&#xff08;雙塔&#xff09;項目實踐 0 背景介紹以及相關概念 本項目對3種常用的文本匹配的方法進行實現&#xff1a;Poin…

pyqt5 如何修改QplainTextEdit 背景色和主窗口的一樣顏色

如果您希望將 QPlainTextEdit 的背景顏色設置為與窗口背景相似的灰色&#xff0c;您可以使用窗口的背景顏色作為基準來設置 QPlainTextEdit 的背景顏色。以下是一個示例代碼&#xff0c;展示如何實現這一點&#xff1a; from PyQt5.QtWidgets import QApplication, QMainWindo…

模型預測筆記(一):數據清洗分析及可視化、模型搭建、模型訓練和預測代碼一體化和對應結果展示(可作為baseline)

模型預測 一、導入關鍵包二、如何載入、分析和保存文件三、修改缺失值3.1 眾數3.2 平均值3.3 中位數3.4 0填充 四、修改異常值4.1 刪除4.2 替換 五、數據繪圖分析5.1 餅狀圖5.1.1 繪制某一特征的數值情況&#xff08;二分類&#xff09; 5.2 柱狀圖5.2.1 單特征與目標特征之間的…

Mysql性能優化:什么是索引下推?

導讀 索引下推&#xff08;index condition pushdown &#xff09;簡稱ICP&#xff0c;在Mysql5.6的版本上推出&#xff0c;用于優化查詢。 在不使用ICP的情況下&#xff0c;在使用非主鍵索引&#xff08;又叫普通索引或者二級索引&#xff09;進行查詢時&#xff0c;存儲引擎…

容斥原理 博弈論(多種Nim游戲解法)

目錄 容斥原理容斥原理的簡介能被整除的數&#xff08;典型例題&#xff09;實現思路代碼實現擴展&#xff1a;用DPS實現 博弈論博弈論中的相關性質博弈論的相關結論先手必敗必勝的證明Nim游戲&#xff08;典型例題&#xff09;代碼實現 臺階-Nim游戲&#xff08;典型例題&…

什么叫做云計算

什么叫做云計算 相信大多數人對云計算或者是云服務的認識還停留在僅僅聽過這個名詞&#xff0c;但是對其真正的定義或者意義還不甚了解的層面。甚至有些技術人員&#xff0c;如果日常的業務不涉及到云服務&#xff0c;可能對其也只是一知半解的程度。首先云計算準確的講只是云服…

Java多態詳解(1)

多態 多態的概念 所謂多態&#xff0c;通俗地講&#xff0c;就是多種形態&#xff0c;具體點就是去完成某個行為&#xff0c;當不同的對象去完成時會產生出不同的狀態。 比如&#xff1a; 這一時間爆火的“現代紀錄片”中&#xff0c;麥克阿瑟總是對各種“名人”有不同的評價&…

算法通關村第十關 | 歸并排序

1. 歸并排序原理 歸并排序&#xff08;MERARE-SORT&#xff09;簡單來說就是將大的序列先視為若干個比較小的數組&#xff0c;分成比較小的結構&#xff0c;然后是利用歸并的思想實現的排序方法&#xff0c;該算法采用經典的分治策略&#xff08;分就是將問題分成一些小的問題分…

【Axure模板】APP幫助中心原型,在線客服意見反饋模塊高保真原型

作品概況 頁面數量&#xff1a;共 10 頁 兼容軟件&#xff1a;Axure RP 9/10&#xff0c;不支持低版本 應用領域&#xff1a;原型設計模板 作品申明&#xff1a;頁面內容僅用于功能演示&#xff0c;無實際功能 作品特色 該模板作品為APP幫助與客服的通用模塊&#xff0c;…

golang操作excel的高性能庫——excelize/v2

目錄 介紹文檔與源碼安裝快速開始創建 Excel 文檔讀取 Excel 文檔打開數據流流式寫入 [相關 Excel 開源類庫性能對比](https://xuri.me/excelize/zh-hans/performance.html) 介紹 Excelize是一個純Go編寫的庫&#xff0c;提供了一組功能&#xff0c;允許你向XLAM / XLSM / XLS…

【Kubernetes】Kubernetes的Pod控制器

Pod控制器 一、Pod 控制器的概念1. Pod 控制器及其功用2. Pod 控制器有多種類型2.1 ReplicaSet2.2 Deployment2.3 DaemonSet2.4 StatefulSet2.5 Job2.6 Cronjob 3. Pod 與控制器之間的關系 二、Pod 控制器的使用1. Deployment2. SatefulSet2.1 為什么要有headless&#xff1f;2…

CF113A Grammar Lessons 題解

一道模擬題。 題目傳送門 題目意思&#xff1a; 給你一個句子&#xff0c;讓你檢查這個句子的語法是否正確。&#xff08;語法請自行在題目中查看&#xff09; 思路&#xff1a; 就是模擬。依次判斷這個句子是否符合每一條語法即可。但是細節很多就因為細節我錯了好多次&…

數據挖掘 | 零代碼采集房源數據,支持自動翻頁、數據排重等

1 前言 城市規劃、商業選址等應用場景中經常會對地區房價、地域價值進行數據分析&#xff0c;其中地區樓盤房價是分析數據中重要的信息參考點&#xff0c;一些互聯網網站上匯聚了大量房源信息&#xff0c;通過收集此類數據&#xff0c;能夠對地區房價的分析提供參考依據。 如何…

216、仿真-基于51單片機溫度煙霧人體感應布防報警Proteus仿真設計(程序+Proteus仿真+原理圖+配套資料等)

畢設幫助、開題指導、技術解答(有償)見文未 目錄 一、硬件設計 二、設計功能 三、Proteus仿真圖 四、原理圖 五、程序源碼 資料包括&#xff1a; 需要完整的資料可以點擊下面的名片加下我&#xff0c;找我要資源壓縮包的百度網盤下載地址及提取碼。 方案選擇 單片機的選…

SpringBoot 讀取配置文件

Spring Boot 中讀取配置文件有以下 5 種方法&#xff1a; 使用 Value 讀取配置文件。使用 ConfigurationProperties 讀取配置文件。使用 Environment 讀取配置文件。 Autowired private Environment environment; 實現EnvironmentAware接口 使用 PropertySource 讀取配置文件…

Python學習筆記_進階篇(一)_淺析tornado web框架

tornado簡介 1、tornado概述 Tornado就是我們在 FriendFeed 的 Web 服務器及其常用工具的開源版本。Tornado 和現在的主流 Web 服務器框架&#xff08;包括大多數 Python 的框架&#xff09;有著明顯的區別&#xff1a;它是非阻塞式服務器&#xff0c;而且速度相當快。得利于…

2023國賽數學建模思路 - 復盤:人力資源安排的最優化模型

文章目錄 0 賽題思路1 描述2 問題概括3 建模過程3.1 邊界說明3.2 符號約定3.3 分析3.4 模型建立3.5 模型求解 4 模型評價與推廣5 實現代碼 建模資料 0 賽題思路 &#xff08;賽題出來以后第一時間在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 描述 …

衣服材質等整理(時常更新)

參考文章&圖片來源 https://zhuanlan.zhihu.com/p/390341736 00. 天然纖維 01. 化學纖維 02. 聚酯纖維&#xff08;即&#xff0c;滌綸&#xff09; 一種由有機二元酸和二元醇通過化學縮聚制成的合成纖維。具有出色的抗皺性和保形性&#xff0c;所制衣物在穿著過程中不容…