亚洲 国产精品 日韩-亚洲 激情-亚洲 欧美 91-亚洲 欧美 成人日韩-青青青草视频在线观看-青青青草影院

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > ES6新特性與重點知識總結

ES6新特性與重點知識總結

來源:千鋒教育
發布人:wjy
時間: 2022-06-01 14:07:00 1654063620

  ### 一、ES6變量聲明

  - var 聲明的變量,沒有“塊級作用域”的限制;

  - let / const 聲明的變量,具有“塊級作用域”。

  ```text

  {

  var a = 1;

  let b = 2;

  const c = 3;

  let fn = function() {

  console.log(4)

  }

  }

  console.log(a); // 1

  console.log(b); // 報錯ReferenceError,undefined

  console.log(c); // 報錯ReferenceError,undefined

  fn(); // ReferenceError: fn is not defined

  ```

  - var 聲明的變量存在“變量提升”,let / const沒有。

  ```text

  var tmp = new Date();

  function fn() {

  console.log(tmp);

  if (false) {

  // var tmp 變量提升

  var tmp = 'hello world';

  }

  }

  fn()

  ```

  - const 聲明的是常量,不能被修改。

  ```text

  const c = 1;

  c = 2; // TypeError報錯

  ```

  ### 二、解構賦值

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

  - 數組解構賦值

  ```text

  let arr = [1, 'hello', [100,200], {a:1, b:2}, true, undefined];

  let [a, b, c, d, e, f] = arr

  console.log(a,b,c,d,e,f)

  ```

  - 使用解構賦值,交換兩個變量的值

  ```text

  let x = 1, y = 2;

  [x, y] = [y, x]

  console.log(x, y)

  ```

  - 對象解構賦值

  ```text

  let obj = {

  a: 1,

  b: [1,2,3],

  c: false,

  d: {name: 'geekxia', age: 10 }

  }

  let { a, b, c, d, e } = obj

  console.log(a, b, c, d, e)

  // 別名

  let { b: bb } = obj

  console.log(bb)

  ```

  ### 三、字符串方法擴展

  ```text

  let str = 'hello world, my name is geekxia.';

  // 獲取指定索引處理字符

  console.log(str.charAt(0))

  // 查詢字符串中是否包含指定片段,如果存在返回索引號,如果不存在返回-1

  console.log(str.indexOf('name0'))

  // 判斷字符串是否包含指定片段,返回布爾值

  console.log(str.includes('geekxia'))

  // 判斷字段串是否以指定片段開頭,返回布爾值

  console.log(str.startsWith('he'))

  // 判斷字段串是否以指定片段結尾,返回布爾值

  console.log(str.endsWith('he'))

  // 對字符串重復n次,返回新的字符串

  console.log(str.repeat(2))

  // 對字符串進行頭部補全,返回新的字符串

  console.log(str.padStart(100, '01'))

  // 對字符串進行尾部補全,返回新的字符串

  console.log(str.padEnd(100, '01'))

  ```

  ### 四、Math方法擴展

  ES6 在 Math 對象上新增了 17 個與數學相關的方法。

  ```text

  // 去除小數點部分

  console.log(Math.trunc(5.5))

  // 判斷指定值是正數(1),負數(-1),還是零(0)

  console.log(Math.sign(0))

  // 計算立方根

  console.log(Math.cbrt(-8))

  // 計算兩個數的平方和的平方根

  console.log(Math.hypot(3, 4))

  // 指數運算符

  console.log(2**4)

  ```

  ### 五、函數擴展

  - 函數與解構賦值結合使用

  ```text

  function add ({ a = 0, b = 0 }) {

  console.log(a + b)

  }

  add({a:2, b:3}) // 5

  add({a:2}) // 2

  add({}) // 0

  add() // 報錯

  ```

  - 函數的 rest 參數

  ```text

  function sum(...values) {

  let total = 0;

  for (let value of values) {

  total += value

  }

  console.log(total)

  }

  sum(1,2,3)

  // 允許尾逗號

  sum(1,2,3,4,5,)

  ```

  ### 六、箭頭函數

  ```text

  let f1 = v => v;

  let f2 = () => 5;

  let f3 = (a, b) => a + b;

  console.log(f1(1))

  console.log(f2())

  console.log(f3(1,2))

  ```

  - 由于大括號被解釋為代碼塊,所以如果箭頭函數直接返回一個對象,必須在對象外面加上括號。

  ```text

  // 返回一個對象,對象要用()包裹

  let f4 = (a, b) => ({a, b})

  console.log(f4(1,2))

  ```

ES6新特性與重點知識總結

  ### 七、擴展運算符

  擴展運算符(spread)是三個點(...)。它好比 rest 參數的逆運算,將一個數組轉為用逗號分隔的參數序列。

  - 數組的操作、合并

  ```text

  let arr1 = [1, 2, 3];

  let arr2 = [4, 5, 6];

  let arr = [...arr1, ...arr2, 7, 8, 9, 10];

  console.log(arr)

  ```

  - 與解構賦值配合,實現數組的截取

  ```text

  let arr = [1, 2, 3, 4, 5, 6]

  let [a, b, ...arr1] = arr

  console.log(arr1)

  ```

  - 對象的操作、合并:

  ```text

  let obj1 = { a:1, b:2 }

  let obj2 = { c:3, d:4 }

  let obj = { ...obj1, ...obj2, e:5, a:6 }

  console.log(obj)

  ```

  - 與解構賦值配合,操作對象:

  ```text

  let obj = { a:1, b:2, c:3, d:4, e:5 }

  let { a, b, ...obj1 } = obj

  console.log(obj1)

  ```

  ### 八、Array擴展

  - 把類數組轉化成真正的數組:

  ```text

  let arrayLike = {

  '0': 'a',

  '1': 'b',

  '2': 'c',

  length: 3

  }

  var arr = Array.from(arrayLike);

  console.log(arr) // ['a', 'b', 'c']

  ```

  - 把一組值,轉換為數組。Array.of總是返回參數值組成的數組。如果沒有參數,就返回一個空數組。

  ```text

  let a = Array.of(1,2); // [1, 2]

  let b = Array.of(); // []

  let c = Array.of(undefined); // [undefined]

  console.log(a)

  console.log(b)

  console.log(c)

  ```

  - 數組實例的find方法,用于找出第一個符合條件的數組成員。它的參數是一個回調函數,所有數組成員依次執行該回調函數,直到找出第一個返回值為true的成員,然后返回該成員。如果沒有符合條件的成員,則返回undefined。

  ```text

  let res1 = [1,2,-5,10].find((ele,index,arr) => ele < 0);

  console.log(res1)

  ```

  - 數組實例的findIndex方法的用法與find方法非常類似,返回第一個符合條件的數組成員的位置,如果所有成員都不符合條件,則返回-1。

  ```text

  let res2 = [1,5,10,15].findIndex((ele,index,arr) => ele > 9);

  console.log(res2)

  ```

  - 數組填充

  ```text

  let res3 = new Array(4).fill(7);

  console.log(res3)

  ```

  - 判斷指定數組中是否包含某個值

  ```text

  let arr = [1, 2, 3]

  console.log([1,2,3].includes(2))

  console.log([1,2,3].includes(0,1)) // 第二參數表示索引號

  ```

  ### 九、對象擴展

  ES6 允許直接寫入變量和函數,作為對象的屬性和方法。這樣的書寫更加簡潔。

  ```text

  let foo = 'geekxia'

  function fn1() {

  console.log(1)

  }

  const obj = {

  foo,

  bar: 'hello',

  fn1,

  fn2() {

  console.log(2)

  },

  fn3: function() {

  console.log(3)

  }

  }

  obj.fn1()

  obj.fn2()

  obj.fn3()

  ```

  ### 十、Symbol類型

  ES6 引入了一種新的原始數據類型Symbol,表示獨一無二的值。它是 JavaScript 語言的第七種數據類型,前六種是:undefined、null、布爾值(Boolean)、字符串(String)、數值(Number)、對象(Object)。

  ### 十一、Set結構

  ES6 提供了新的數據結構 Set。它類似于數組,但是成員的值都是唯一的,沒有重復的值。Set 本身是一個構造函數,用來生成 Set 數據結構。

  - 使用Set結構,實現數組去重

  ```text

  let arr1 = [1,2,2,2,3,4]

  let arr2 = [...new Set(arr1)]

  console.log(arr2)

  ```

  ### 十二、Map結構

  ES6 提供了 Map 數據結構。它類似于對象,也是鍵值對的集合,但是“鍵”的范圍不限于字符串,各種類型的值(包括對象)都可以當作鍵。也就是說,Object 結構提供了“字符串—值”的對應,Map 結構提供了“值—值”的對應,是一種更完善的 Hash 結構實現。如果你需要“鍵值對”的數據結構,Map 比 Object 更合適。

  ```text

  const map = new Map();

  map.set({ p: 'hello world'}, 1)

  map.set('hello', [1,2,3])

  console.log(map.size)

  ```

  ### 十三、Promise

  Promise 是異步編程的一種解決方案,比傳統的解決方案——回調函數和事件——更合理和更強大。

  ```text

  let promise = new Promise(function(resolve, reject) {

  setTimeout(()=>{

  if(false) {

  resolve('ok')

  } else {

  reject({err: -1, msg: '錯誤發生了'})

  }

  }, 1000)

  })

  promise.then(res=>{

  console.log(res)

  }).catch(err=>{

  console.log(err)

  }).finally(()=>{

  console.log('總會執行')

  })

  ```

  ### 十四、循環遍歷

  - ES6 借鑒 C++、Java、C# 和 Python 語言,引入了for...of循環,作為遍歷所有數據結構的統一方法。

  - for...of循環可以使用的范圍包括數組、Set 和 Map 結構、某些類似數組的對象(比如arguments對象、DOM NodeList 對象)、Generator對象,以及字符串。

  - for...of 可以與 break / continue / return 配合使用。

  ```text

  let arr = [1, 2, 3, 4, 5]

  for(let ele of arr) {

  if (ele > 2) {

  break

  }

  console.log(ele)

  }

  ```

  - 對于普通的對象,for...of結構不能直接使用,會報錯。使用 for...in 來遍歷普通對象。

  ```text

  let obj = {

  a: 1,

  b: 2,

  c: 3

  }

  for(let k in obj) {

  console.log(obj[k])

  }

  ```

  ### 十五、async / await

  ```text

  function add(a,b) {

  // 返回一個promise對象

  return new Promise((resolve, reject)=>{

  setTimeout(()=>{

  resolve(a+b)

  }, 2000)

  })

  }

  // await is only valid in async function

  // await 只在 async函數中有效

  async function testAdd() {

  let num = await add(2,3)

  console.log(num)

  }

  testAdd()

  ```

  ### 十六、class類與繼承

  ```text

  class Point {};

  class ColorPoint extends Point {

  constructor(x, y, color) {

  super(x, y); // 調用父類的 constructor(x, y)

  this.color = color;

  }

  toString() {

  return this.color + ' ' + super.toString(); // 調用父類的toString()方法

  }

  }

  ```

  ### 十七、ES6模塊化

  - 使用`export default`拋出模塊

  ```text

  export default xxx; // 拋出模塊

  import xxx from './xxx' // 引入模塊

  ```

  - 使用 `export` 拋出模塊

  ```js

  export const a = 1;

  export function foo() {} // 拋出

  import { a, foo } from './xxx' // 引入

  ```

  ### 十八、裝飾器

  許多面向對象的語言都有修飾器(Decorator)函數,用來修改類的行為。

  - 裝飾器用于修飾一個類:

  ```text

  @decorator

  class A {};

  ```

  - 裝飾器用于修飾一個類的方法:

  ```text

  class Person {

  @readonly

  name() { return `${this.name}` }

  }

  ```

  更多關于“html5培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓經驗,課程大綱更科學更專業,有針對零基礎的就業班,有針對想提升技術的提升班,高品質課程助理你實現夢想。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
開班信息
北京校區
  • 北京校區
  • 大連校區
  • 廣州校區
  • 成都校區
  • 杭州校區
  • 長沙校區
  • 合肥校區
  • 南京校區
  • 上海校區
  • 深圳校區
  • 武漢校區
  • 鄭州校區
  • 西安校區
  • 青島校區
  • 重慶校區
  • 太原校區
  • 沈陽校區
  • 南昌校區
  • 哈爾濱校區
国产成人综合五月天久久| 公侵犯玩弄熟睡人妻电影| 穿越后每天都在PIAPIA打脸| 国产精品特级毛片一区二区三区| 黄网站色视频免费观看| 麻豆传播媒体免费版官网| 人妻体内射精一区二区三区| 无码人妻AⅤ一区二区三区用会员| 亚洲精品TY久久久久久久久久| 中文字幕视频在线观看| 厨房里挺进岳丰满大屁股| 国内精品久久久人妻中文字幕| 老司机精品成免费视频| 日韩熟妇αv无码激情视频| 亚洲AV成人片色在线观看蜜臀| 樱桃空空人妻无码内射| 成人3D动漫一区二区三区| 国产在线精品一区二区| 免费无码高H视频在线观看h| 试看A级看一毛片二十分钟| 亚洲麻豆AV成本人无码网站| AV优选天堂污污污成人亚洲 | 被黑人的大JJ干得很舒服吗| 国精产品一品二品国精| 欧美黑人巨大VIDEOS极品| 无码午夜福利视频一区| 中国BGMBGMBGM老妇网站| 父债子偿BY画崖海棠| 久久精品国产亚洲AV麻豆长发| 秋霞鲁丝片AⅤ无码入口| 亚洲AV成人永久网站www在线| √天堂中文官网在线| 人人爽人人爽人人片AV| 无码任你躁久久久久久| 中文日本字幕MV在现线观看 | 日韩AV片无码一区二区三区不卡| 亚洲AV中文无码字幕色最| chinese人妻无码人妻| 国产真实乱对白精彩| 欧美久久高潮久久高潮| 亚洲AV无码一区二区二三区入口| AAAA级少妇高潮大片在线观看| 国产三级精品三级在线观看| 女BBBB槡BBBB槡BBBB| 亚洲AⅤ中文无码字幕色 | 欧美日韩精品一区二区在线播放| 性高朝久久久久久久| BBBBB毛茸茸BBBBBBB| 激情内射亚州一区二区三区爱妻 | 无套内谢孕妇毛片免费看看| 51久久精品人人搡人人玩| 国产欧美另类久久久精品图片| 女子初尝黑人巨嗷嗷叫| 亚洲成AV人无码| 粗大的内捧猛烈进出视频| 久久人妻无码一区二区| 无遮挡又黄又刺激又爽的视频 | 男朋友一晚弄了我5次正常吗 | 人妻无码久久中文字幕专区| 亚洲熟女乱综合一区二区| 国产成人AV男人的天堂| 年轻的小婊孑4中文字幕电影| 亚洲爆乳少妇无码激情| 成人午夜男女爽爽视频| 免费国精产品一品二品| 亚洲AV无码成人专区| 吃了继兄给我开的药我做的梦| 麻花豆传媒剧国产MV在线| 亚洲AV永久无码精品尤物在线| 成人无码H动漫在线播放| 美女扒开内裤无遮挡| 亚洲AV成人永久网站www在线| 差差差30分钟视频轮滑免费| 蜜桃AV秘 无码一区二区三区| 亚洲AV无码专区在线观看下载| 丰满老熟妇好大BBBBB| 欧美大波少妇在厨房被| 艳妇乳肉豪妇荡乳XXX| 国产新婚夫妇叫床声不断| 日日噜噜夜夜狠狠视频免费| 99国内精品久久久久久久| 久久国产劲爆∧V内射| 午夜精品影视国产一区在线麻豆| 成年免费A级毛片| 欧美成人AⅤ高清免费观看| 野花おっさんとわたし| 韩漫无羞遮无删减漫免费 | 亚洲国产成人五月综合网 | 舔高中女生奶头内射视频| 八戒八戒在线资源网| 免费人成在线观看网站免费观看| 亚洲色大成网站WWW永久| 好紧好爽太大了视频| 天天想你在线观看完整版电影| 边做边爱免费视频| 欧美日本精品一区二区三区| 中文人妻无码一区二区三区在线| 久久国产精品一国产精品金尊| 亚洲AV无码一区二区三区乱码4| 国产精品爱久久久久久久小说 | 羞羞影院午夜男女爽爽免费视频 | 精品久久久中文字幕人妻| 亚洲AV色噜噜男人的天堂| 国产精品亚洲А∨无码播放不卡 | 亚洲人成自拍网站在线观看| 黑人粗大猛烈XXⅩXXBB| 亚洲 日韩 另类 制服 无码| 国产精品国产三级国AV| 婷婷久久综合九色综合绿巨人| 成人欧美一区二区三区在线观看| 欧洲熟妇色XXXXX老妇| av在线一区二区三区| 女儿男朋友是妈妈的爱豆的电视剧| 再深点灬舒服灬太大了添A| 久久无码高潮喷水免费看| 亚洲综合日韩AV无码毛片| 精品久久久久久久久久久AⅤ| 亚洲国产精品无码久久久秋霞1| 黑人粗大猛烈进出高潮视频| 亚洲AV无码无在线观看| 韩国青草自慰喷水无码直播间 | 色欲AV永久无码精品无码蜜桃| 成熟丰满的人妻中文字幕电影| 日韩人妻无码专区精品| 成人无码区免费A∨电影| 搡老女人老妇老熟女hd| 丰满妇女强高潮ⅩXXX| 婷婷五月18永久免费网站| 国产精品成人影院久久久| 无人区一码二码乱码区别在哪| 国产精品亚洲专区无码蜜芽| 亚洲AⅤ无码成人网站国产APP| 国内精品久久久久久久影视麻豆| 亚洲AV永久无码精品天堂动漫| 精品久久久久久成人AV| 夜夜爱夜夜做夜夜爽| 免费能直接看黄的视频| AV极品无码专区亚洲AV| 日本H纯肉无遮掩3D动漫在线观| 丁香五月天天综合亚洲| 无码人妻久久一区二区三区不卡| 国产熟妇XXXXXⅩ性Ⅹ交| 亚洲精品高清国产一线久久| 久久久久久亚洲精品中文字幕| 在线播放国产不卡免费视频| 欧美富婆性猛交XXXX| 成人A级毛片免费观看AV不卡| 太深太粗太爽太猛了视频| 国产在线无码一区二区三区| 亚洲午夜无码久久久久软件| 免费无码一区二区三区蜜桃大 | 亚洲熟妇无码乱子AV| 男女后进式猛烈XX00动态图| 成年片色大黄全免费网站久久| 铜铜铜铜铜铜铜铜好大好硬| 狠狠色噜噜狠狠狠狠色综合网 | 超鹏97国语在线| 无码人妻精品一区二区蜜桃不卡| 好男人资源在线观看好| 伊人久久无码大香线蕉综合| 欧洲成人一区二区三区| 国产AV成人无码精品网站| 亚洲AV无码精品色午夜| 老师你的兔子好软水好多的图片| AⅤ一区二区三区无卡无码| 少妇私密会所按摩到高潮呻吟| 韩国三级丰满少妇高潮| 自拍偷自拍亚洲精品10P| 日日摸夜夜添夜夜添AV| 国产做出在线 | 传媒麻豆| 又湿又紧又大又爽A视频男| 日本狂喷奶水在线播放212| 国产女人高潮抽搐喷水视频| 永久黄网站色视频免费直播| 日韩AⅤ无码AV一区二区三区| 国产午夜影视大全免费观看| 中国少妇嫖妓BBWBBW| 色噜噜狠狠狠狠色综合久一| 激情欧美成人久久综合| AV无码人妻一区二区三区牛牛 | 欧洲人激情毛片无码视频| 国产精品久久久久精品麻豆| 亚洲伊人成无码综合网| 日本XXXX裸体XXXX自慰| 国内极度色诱视频网站| 18禁成年无码免费网站| 天天躁日日躁狠狠躁视频2021| 久久99热狠狠色精品一区| 边做饭边被躁欧美三级| 亚洲成亚洲乱码一二三四区软件 | 久久99精品久久久久久9| YY8090福利午夜理论片| 亚洲AV无码成人精品区在线h| 捏胸亲嘴床震娇喘视频在线播放| 国产白浆喷水在线视频| 一区二区三区国产精华护肤品 | 国产粉嫩馒头无套内在线观看免费 | 亚洲欧美日韩综合久久久| 日本高清WWW色视频总站| 精品九九人人做人人爱|