課間題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 型...