let宣告的變數不存在預解析
例如,使用var呼叫如下**,不會出錯
alert
(inum)
;var inum =10;
// 預解析 預編譯 不報錯
但是使用let會報錯
// let不能預解析 下面的寫法會報錯
alert
(inum)
;let inum =
10;
let宣告的變數不允許重複(同乙個作用域)
下面方式不會報錯
// 如下方式不會出報錯
var flag =
123;
var flag =
456console.
log(flag)
let宣告的變數不允許重複,下面的**會報錯
// let宣告的變數不允許重複,下面的**會報錯
let flag =
123;
let flag=
456console.
log(flag)
塊級作用域
以下**不會報錯:
if
(true
)console.
log(flag)
以下**會報錯
if
(true
)console.
log(flag)
const宣告的常量不允許重新賦值,必須初始化
以下**會報錯
//常量不能修改
const i =10;
i=5;
變數的結構賦值
正常我們給三個變數a,b,c賦值是
var a =1;
var b =2;
var c =3;
var a =
1,b =
2, c =
3;
es6我們而可以這樣
// 陣列的結構賦值
var[a,b,c]=[
1,2,
3];let
[a,b,c]=[
1,2,
3];let
[a,b,c]=[
,2,]
;// 給a乙個預設值
let[a=
2,b,c]=[
,2,3
];
物件的結構賦值
如下根據物件內的名稱進行賦值
// 物件的結構賦值
let=
console.
log(name,age)
輸出:zhangsan 20
物件屬性別名
如果有了別名,那麼原來的名稱就不能用了。
如下,給name起了別名xm, 則name不能再用。
let
=console.
log(xm,age)
字串的結構賦值let
[a,b,c,d]
='hello'
;console.
log(a,b,c,d,e)
;輸出:
h e l l o
把hello拆開 分別賦值給a,b,c,d,e
includes
1.判斷乙個字串當中是否包含指定字串例如:判斷hello world字串是否包含world字串
console.
log(
'hello world'
.includes
('world'))
;輸出結果:
true
2.判斷字串指定位置是否包含指定字串例如:判斷hello world字串從索引5開始,是否包含world字串
// 判斷hello world字串從索引5開始,是否包含world字串
console.
log(
'hello world'
.includes
('world',5))
;
startswith判斷字串是否以指定子符串開頭例如:判斷hello world字串是否以sta字串開頭
console.
log(
'hello world'
.startswith
('sta'))
;輸出:
true
endswith判斷字串是否以指定子符串結束例如:判斷hello world字串是否以world字串結尾
console.
log(
'hello world'
.endswith
('world'))
;輸出:
true
模板字串
沒有模板字串之前:
let obj =
let tag =
'姓名:'
+ obj.name +
'; 年齡'
+ obj.age;
console.
log(tag)
;
使用了模板字串後:
反引號標識模板,模板中通過 $ 方式填充資料
// 反引號標識模板,模板中通過 $ 方式填充資料
let temp =
`姓名:
$; 年齡
$;使用表示式$`
;console.
log(temp)
;
引數預設值
es6之前我們使用引數預設值的方式
function
foo(param)
// 列印haha
foo();
// 列印hehe
foo(
'hehe'
)
es6使用引數預設值
function
foo(param =
'haha'
)// 列印haha
foo();
// 列印hehe
foo(
'hehe'
引數結構賦值// name的預設值為lisi,age的預設值為13
function
foo(
)foo()
;
rest引數 (剩餘引數的處理)function
foo(a,
...param)
foo(1,
2,3,
4);輸出結果:
a [2,3
,4]
多餘的引數通過乙個集合[ ] 來裝
擴充套件運算子
function
foo(a,b,c,d,e)
foo(1,
2,3,
4,5)
;輸出結果:
15
如果我們要傳遞乙個陣列怎麼辦?
function
foo(a,b,c,d,e)
let arr =[1
,2,3
,4,5
];foo(
...arr)
;輸出結果:
15
擴張運算子的具體應用
合併陣列
let arr1 =[1
,2,3
];let arr2 =[4
,5,6
];let arr3 =
[...arr1,
...arr2]
;console.
log(arr3)
;輸出結果:[1
,2,3
,4,5
,6]
箭頭函式
正常我們定義乙個函式:
function
foo(
)foo()
;
使用箭頭函式定義:
let
foo=()
=> conlole.
log(
'hahaha');
foo(
);
箭頭函式的注意事項: ES6常用語法
var var name woniu console.log name imooc let 塊級作用域 console.log name imooc let是塊級作用域,只有在括號內部才可以獲取到,外部是獲取不到的 const 塊級作用域 用處當我們很多人協作開發乙個專案的時候,希望乙個變數不會被修...
ES6常用語法
宣告變數let和const let宣告的變數不存在預解析 console.log flag var flag 123 let flag 456 let宣告的變數不允許重複 在同乙個作用域內 let flag 123 let flag 456 console.log flag es6引入了塊級作用域 ...
es6常用語法
es6常用語法 1.let const 塊級作用域,不能重複宣告,沒有提公升 const常量,引用型別 暫時性死區 2.字串拼接 兩個單引號 反的單引號 拼接字串 3.解構賦值 對稱賦值,更容易理解,乙個陣列 另外乙個陣列,乙個物件 另外乙個物件 4.展開運算子 複製陣列方便 var arr1 1,...