變量
let PI = 3.1415926;
常量
const PI = 3.1415926蝎困;
作用域(使用花括號)
{
function foo() {
????????return 1
}
console.log("foo() === 1", foo() === 1)
? ? {
? ? ? ? function foo() {
? ? ? ? ? ? ? ? return 2
?????????? }
? ? ? ? ? ? console.log('foo() === 2', foo() === 2)
? ? }
}
箭頭函數(shù)(this的指向马僻,有新的意義)
()=>{
}
只有一個參數(shù)的時候可以省略小括號庄拇,花括號中表達式直接作為返回值的話,也可以省略花括號韭邓。
例如:
{
? ? let evens = [1, 2, 3, 4, 5];
? ? let odds = evens.map(v => v + 1);
? ? console.log(evens, odd);
}
this的指向措近,es5和es6的區(qū)別
es5中this指向的是調用了這個函數(shù)的對象
es6中this指向的是定義時this的指向,即是構造函數(shù)的實例女淑。
默認參數(shù)
{
? ? ? ? function f(x,y = 7, z = 42){
? ? ? ? ? ? ? ? return x + y + z
? ? }
? ? ? ? console.log(f(1,3));
}
可變參數(shù)
{
? ? function f(...a){
? ? ? ? var sum=0;
? ? ? ? a.forEach(item=>{
? ? ? ? ? ? ? ? sum+=item*1
????????});
? ? ? ? return sum
????}
? ? console.log(f(1,2,3,6));
}
合并數(shù)組
{
var params=['hello', true, 7];
var other=[1,2,...params];
console.log(other);
}
對象代理
{
? ? let person = new Proxy(Person,{
? ? ? ? ? ? get(target,key){
? ? ? ? ? ? ? ? ? ? return target[key]
},
? ? ? ? ? ? set(target,key,value){
? ? ? ? ? ? ? ? ? ? if(key!=='sex'){
? ? ? ? ? ? ? ? ? ? ? ? target[key]=value;
}
}
});
? ? ? ? console.table({
? ? ? ? ? ? ? ? name;person.name,
? ??????????????sex:person.sex,
? ??????????????age:person.age
});
? ? ? ? try {
? ? ? ? ? ? person.sex='female';
} catch (e) {
? ? ? ? ? ? console.log(e)
} finally{
}
}