自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ES6新增語法—函數(shù)和參數(shù)

開發(fā) 前端
箭頭函數(shù):將原來函數(shù)的function關(guān)鍵字和函數(shù)名都刪掉,并使用”=>”連接參數(shù)列表和函數(shù)體。參數(shù)只有一個(gè)時(shí),省略掉括號(hào)。函數(shù)體只有一個(gè)表達(dá)式,花括號(hào)也省略。

[[414274]]

 箭頭函數(shù)

箭頭函數(shù):將原來函數(shù)的function關(guān)鍵字和函數(shù)名都刪掉,并使用”=>”連接參數(shù)列表和函數(shù)體。

箭頭函數(shù)語法:

(參數(shù)1,參數(shù)2)=>{

函數(shù)體

}

注意點(diǎn):

  • 當(dāng)參數(shù)有且只有一個(gè),括號(hào)可以省略。沒有參數(shù)或多個(gè)參數(shù)時(shí),括號(hào)不能省略。
  • 如果函數(shù)體有且只有一個(gè)表達(dá)式時(shí),可以省略花括號(hào)。

箭頭函數(shù)使用實(shí)例:

  1. window.onload = ()=>{ 
  2.  console.log('網(wǎng)頁加載完成'

參數(shù)只有一個(gè)時(shí),省略掉括號(hào)。函數(shù)體只有一個(gè)表達(dá)式,花括號(hào)也省略。如:

  1. let arr=[1,2,3,4] 
  2. arr.forEach((item)=> 
  3.  console.log('item',item) 

This指向問題

1、在全局環(huán)境下,this始終指向全局對(duì)象,無論是否嚴(yán)格模式。

2、普通函數(shù)內(nèi)部的this分嚴(yán)格模式和非嚴(yán)格模式。

  • 嚴(yán)格模式下this為undefined。
  • 非嚴(yán)格模式下,this指向全局對(duì)象window。

3、箭頭函數(shù)的 this 是上下文的this。

箭頭函數(shù)相當(dāng)于匿名函數(shù),并且簡化了函數(shù)定義,但箭頭函數(shù)和匿名函數(shù)有個(gè)明顯的差異,箭頭函數(shù)內(nèi)部的this是詞法作用域,上下文的this值作為自己的this值。

  • Call()、apply()、bind()方法對(duì)于箭頭函數(shù)只是傳入?yún)?shù),對(duì)它的this毫無影響。
  • 考慮到this是詞法層面上的,嚴(yán)格模式中與this相關(guān)的規(guī)則都將被忽略。

放在setTimeout中的兩個(gè)箭頭函數(shù)返回的this舉例。

  1. function Person(name,age){ 
  2.  this.name = name
  3.  this.age = age; 
  4.  setTimeout(()=>{ 
  5.   console.log('this',this) //Person {name"倩倩", age: 18} 
  6.  },100) 
  7. let p = new Person('倩倩',18) 
  8. setTimeout(()=>{ 
  9.  console.log("this",this)//Window {window: Window, self: Window, document: document, name"", location: Location, …} 
  10. },1000) 

函數(shù)參數(shù)的默認(rèn)值

在ES6之前,不能直接為函數(shù)的參數(shù)指定默認(rèn)值,只能采取變通措施。

實(shí)例:普通函數(shù)給參數(shù)設(shè)置默認(rèn)值

  1. function sum(a,b){ 
  2.  a = a | 12; 
  3.  b = b | 5; 
  4.  return a+b 
  5. console.log('相加等于',sum()) 

ES6允許函數(shù)參數(shù)設(shè)置默認(rèn)值,即直接寫在參數(shù)定義的后面。如

  1. function sum(a=12,b=5){ 
  2.  return a+b 
  3. console.log('相加等于',sum()) 

ES6默認(rèn)參數(shù)優(yōu)點(diǎn):

  • 簡潔,適用于參數(shù)多的時(shí)候,方便設(shè)置默認(rèn)值。
  • 閱讀代碼的人可以看出哪些參數(shù)是可以省略的,不用查看函數(shù)體或文檔。
  • 有利于代碼的優(yōu)化,即使未來版本拿掉這個(gè)參數(shù),以前代碼也可以運(yùn)行,還有參數(shù)變量是默認(rèn)聲明的,不能在函數(shù)體內(nèi)部再進(jìn)行聲明。

與結(jié)構(gòu)賦值結(jié)合使用

  1. function add({x=1,y=2}={}){ 
  2.  return x+y 
  3. console.log('相加等于',add({x:2})) // 相加等于 4 

ES6函數(shù)不定參數(shù)和展開運(yùn)算符

不定參數(shù):

語法:...

類型:數(shù)組

作用:指定多個(gè)各自獨(dú)立的參數(shù),通過整合后的數(shù)組來訪問。

限制:

  • 最多只能聲明一個(gè)
  • 只能放在參數(shù)末尾

實(shí)例:簡單應(yīng)用

  1. function show( a, ...args){ 
  2.  console.log('a',a) 
  3.  console.log('args',...args) 
  4. show(1,2,3) 

展開運(yùn)算符:

語法:...

作用:指定數(shù)組或?qū)ο?,將他們打散后作為各自?dú)立的參數(shù)。

實(shí)例:使用展開運(yùn)算符展開數(shù)組。

  1. let arr = ['a','b','c'
  2. let arr2 = [] 
  3. arr2.push(...arr) 
  4. console.log('arr2',arr2) 

實(shí)例:使用展開運(yùn)算符展開對(duì)象。

  1. let person = { 
  2.  name :'倩倩'
  3.  age:18 
  4. let worker = { 
  5.  ...person, 
  6.  job:"打雜" 
  7. console.log('worker',worker) 

 

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2021-08-16 07:05:58

ES6Promise開發(fā)語言

2021-08-18 07:05:57

ES6Asyncawait

2021-07-16 07:26:48

ES6javascript開發(fā)語言

2021-08-02 05:51:29

foreachES6數(shù)組

2022-01-26 07:18:57

ES6WeakSetMap

2022-06-01 09:06:58

ES6數(shù)組函數(shù)

2021-04-25 13:18:51

Wine 6.7LinuxWindows

2023-05-10 08:21:42

Es6Set

2024-06-26 08:18:08

ES6模板字符串

2023-11-23 10:21:11

ECMAScriptJavaScript

2016-08-01 16:26:34

ES6集合

2017-10-09 18:21:20

JavaScriptES6ES8

2017-08-31 14:25:34

前端JavascriptES6

2020-07-01 07:58:20

ES6JavaScript開發(fā)

2021-06-23 10:32:24

前端ES6代碼

2022-07-26 09:02:15

ES6ES13ECMAScript

2020-11-16 08:10:04

ES6迭代器JavaScript

2023-03-01 15:39:50

JavaScrip對(duì)象屬性ES6

2023-05-28 23:49:38

JavaScrip開發(fā)

2024-01-08 16:27:59

ES6函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)