let name =
'tom'
;let age =12;
let obj =
}//等同於...
let obj =
}
let test =
'hello'
;let obj =
console.
log(obj)
//
function
test()
console.
log(test.name)
//test
let p =
}console.
log(p.test.name)
//test
console.
log(object.is(
10,10)
)//true
console.
log(+0
===-0)
//true
console.
log(object.is(
+0,-
0))//false
console.
log(
nan===
nan)
//false
console.
log(object.is(
nan,
nan)
)//true
let obj1 =
let obj2 =
let obj3 =
}let target =
object.
assign
(target,obj1,obj2,obj3)
console.
log(target)
//
object.assign方法實行的是淺拷貝,而不是深拷貝。也就是說,如果源物件某個屬性的值是物件,那麼目標物件拷貝得到的是這個物件的引用。
我們也可以自己定義乙個myassign()方法來實現物件的合併。
let obj1 =
let obj2 =
let obj3 =
}let target =
function
myassign
(target,
...temp)})
return target
}myassign
(target,obj1,obj2,obj3)
console.
log(target)
//
let obj =
console.
log(object.
keys
(obj)
)//[ 'name', 'age', 'gender' ]
console.
log(object.
values
(obj)
)//[ 'tom', 12, '男' ]
console.
log(object.
entries
(obj)
)//[ [ 'name', 'tom' ], [ 'age', 12 ], [ 'gender', '男' ] ]
function
log(x,y=
'world'
)log()
//undefined world 1
通常情況下,定義了預設值的引數,應該是函式的尾引數。函式的length屬性,將返回沒有指定預設值的引數個數。
function
foo(
)foo()
// undefined 5
foo(
)// 1 5
foo(
)// 1 2
let
test
=(a,b)
=>console.
log(a+b)
//等價於...
lettest
=function
(a,b)
test(1
,2)//3
箭頭函式裡面沒有自己的this,而是引用外層的this。
let obj =
}//呼叫物件中的方法
obj.
sayname()
//let obj =
obj.
sayname()
//{}
箭頭函式不能用於建構函式,沒有內部屬性arguments。
let
test
=function()
test()
//[arguments] {}
lettest=(
)=>
test
()
let arr =[1
,2,3
]console.
log(
...arr)
//1 2 3
console.
log(
...'hello'
)//h e l l o
console.
log(
[...
'hello'])
//[ 'h', 'e', 'l', 'l', 'o' ]
let obj =
console.
log(array.
from
(obj)
)//[ 'hello', 'world', 'nice' ]
console.
log(array.
from
('hello'))
//[ 'h', 'e', 'l', 'l', 'o' ]
console.
log(array.of(
1,2,
3,4)
)//[ 1, 2, 3, 4 ]
console.
log(array.of(
true
,false
,true))
//[ true, false, true ]
console.
log(array.of(
'hello'
,'world'
,'nice'))
//[ 'hello', 'world', 'nice' ]
array.of()方法的主要目的,是彌補陣列建構函式array()的不足——因為引數個數的不同,會導致array()的行為有差異。
let arr =[12
,3,2
,4,56
,7]let res = arr.
find
((item,index,arr)
=>
)console.
log(res)
//3
let arr =[12
,3,2
,4,56
,7]let res = arr.
findindex
((item,index,arr)
=>
)console.
log(res)
//1
let arr =
arr.length =
5let res = arr.
fill(10
) console.
log(res)
//[10, 10, 10, 10, 10]
let arr =[12
,42,3
,43,56
,4]let keys = arr.
keys()
let values = arr.
values()
let entries = arr.
entries()
for(
let key of keys)
for(
let value of values)
for(
let[key,value]
of entries)
let arr =[1
,2,3
,4]let res = arr.
includes(5
)console.
log(res)
//false
ES6 物件擴充套件
es6 允許直接寫入變數和函式,作為物件的屬性和方法 var key1 1 var bj var bz 方法的簡寫 var ob fn2 表示式還可以用於定義方法名。var lastword last word var a a first word hello a lastword world a ...
ES6物件擴充套件
es6允許直接寫入變數和函式,作為屬性名和方法 var a b var c c 如果屬性值與屬性名一樣,我們值寫屬性名就可以 方法簡寫 add add function 定義物件屬性有兩種方法 obj.name lijixuan 2obj name lijixuan 我們原本只能用識別符號定義屬性,...
ES6 物件擴充套件
物件擴充套件主要從四個方面開展 1.簡潔表示法 2.屬性表示式 3.擴充套件運算子 4.object新增方法 let es6 console.log es5,es6 object object 在es5中,我們去定義物件,多使用鍵值對的方式來定義,在es6中,我們直接使用變數名稱來定義就可以了。是不...