es6簡易教程(for react)

2021-09-17 05:03:24 字數 4447 閱讀 6568

課間題1 請建立乙個js檔案,並寫入如下**執行輸出。回家記得在自己電腦上安裝nodejs並執行下面的**

console.

log(

"hello world!"

)//螢幕輸出

課間題
>

// es6

let x =

10const y =

20x =

25// ok

y =30

// typeerror: assignment to constant variable.

script

>

>

//es5

var thenumber =10;

document.

write

(thenumber)

;//注意這兩段**同時放入網頁是可以的。

//es6 - 可以去掉分號

let thenumber1 =

10document.

write

(thenumber1)

script

>

在es5語法中,如果宣告乙個函式,需要這樣寫:

// es5

function

c1(a, b)

var sum =c1(

2,4)

// es5

varsum

=function

(a, b)

在es6中,你可以通過箭頭函式快速宣告函式:

// es6

const

sum=

(a, b)

=>

並且,如果你只需要簡單的一行函式,甚至可以去掉return關鍵字

// es6

const

sum=

(a, b)

=> a + b // 一行箭頭函式會自動返回結果

還有非常重要的一點,就是箭頭函式的this是繫結了父級作用域的上下文:

function

dogworldcontext()

,1000)}

var worldwithstandardfunction =

newdogworldcontext()

// 將會每秒列印nan,因為growup是普通函式,它有自己this關鍵字的指向

function

dogworldcontext()

,1000)}

var worldwitharrowfunction =

newdogworldcontext()

// 將會每隔1s列印出1,2,3...

箭頭函式沒有自己的this繫結。該this上下文就是父級作用域的上下文,本例子中,就是dogworldcontext。

// es5; this.props.user = 

var name =

this

.props.user.name;

var age =

this

.props.user.age;

alert

(name +

" "+ age)

;

// es6; this.props.user = 

const

=this

.props.user

const

=this

.props.user

alert

(name +

" "+ age)

// es5

str =

"hello"

number =

20obj =

// es6

str =

"hello"

number =

20obj =

// obj =

const numbers =[5

,1,20

,90,8

,22,33

,9]//es6

const notdigits = numbers.

filter

(function

(value)

)console.

log(notdigits)

// 列印出 [20,90,22,33]

// 或者使用箭頭函式:

const notdigits1 = numbers.

filter

((value)

=>

)// 或者使用箭頭函式預設返回的形式去掉return關鍵字:

const notdigits2 = numbers.

filter

((value)

=> value >

9)

const numbers =[5

,1,20

,90,8

,22,33

,9]numbers.

map(

(n)=> console.

log(n)

)// 還可以加第二個引數, index

numbers.

map(

(n, index)

=> console.

log(n +

' is the '

+ index +

' value from the array '))

// 或者我們想建立新的陣列

const double= numbers.

map(

(n)=> n*

2)

**

菜鳥:

class

demo

print()

};const demo =

newdemo

('hello'

,'world').

print()

;console.

log(

typeof demo)

;

super

super([arguments]); // 訪問父物件上的建構函式

super.functiononparent([arguments]); // 訪問物件上的方法

class

person

getname()

}class

student

extends

person

getclass()

getc()

}let p=

newperson

("luoqiang",26

)let s=

newstudent

("aa"

,"bb",30

)p.getname()

s.getclass()

s.getname()

s.getc

()

課間題

1,建立一家餐廳類,餐廳有如下屬性:

餐廳類屬性:金錢,座位數量、職員列表

方法:招聘職員(往職員列表中新增一項),解雇職員(列表中刪除一項)

並例項化此類,假設餐廳金錢有100000,座位有30個,職員為空

2,完成職員類

屬性:id,姓名,工資

方法:完成一次工作(直接螢幕輸出乙個「word done」即可)

3,請例項化乙個員工,並讓餐廳招聘此位員工,並輸出餐廳此時的員工列表

4,請開除上面員工,並輸出員工列表

5,請完成服務類與廚師類

服務員類,繼承自職員

完成一次工作:如果引數是個陣列,則記錄客人點菜,如果引數不是陣列則是上菜行為(輸出dishes done)

廚師類,繼承自職員

完成一次工作:烹飪出菜品(輸出「cook done」)

例項化一位服務員與一位廚師,並招聘入餐廳,並輸出餐廳員工列表

6,完成餐廳其他類:

廚師類,繼承自職員

完成一次工作:烹飪出菜品

顧客類方法:點菜,吃

菜品類屬性:名字、烹飪成本、**

7,我們假設只有乙個廚師,乙個服務員,乙個座位。而且餐廳永遠只有乙個廚師,乙個服務員和乙個座位。

整個餐廳的運作流程是這樣的,顧客入座,服務員招待顧客點菜,點完菜後告訴廚師,廚師做好菜後服務員上菜,顧客用餐,然後換下乙個顧客

你需要設計乙個選單,然後設計乙個顧客隨機點菜的方法

成品案例:

ES6系列 ES6簡介

2015年6月17日,ecmascript的第六個版本正式發布,該版本正式名稱為ecmascript 2015,但通常被稱為ecmascript 6或者es6。瀏覽器對es6的支援情況 es6主要應用於node.js,如果想用在瀏覽器中,就需要使用轉碼器 將es6 轉成es5 這意味著,可以用es6...

ES6 基礎教程(一)

用法 塊級作用域 不可重複宣告。用法 定義常量 一旦定義,你只能去讀取它,不要進行其他操作。預設引數function fn a,b fn undefiend undefined function fn a 5,b 6 fn 5 6restfunction fn re fn 1,2,3,4 1,2,3...

ES6新特性教程(Symbol)

symbol資料型別 表示獨一無二的值 七種資料型別 undefined null 布林值 boolean 字串 string 數值 number 物件 object symbol 物件的屬性名現在可以有兩種型別,一種是原來就有的字串,另一種就是新增的 symbol 型別,性名屬於 symbol 型...