var, function, let, const, import, class1. let只在所在的**塊中有效
2. 以前我們需要用iife解決的問題
3. 不存在變數宣告提公升
4. 暫時性死區tdz
//console:1. let只在所在的**塊中有效
2. 以前我們需要用iife解決的問題
3. 不存在變數宣告提公升
console.log(foo);//
輸出undefined
console.log(bar);//
報錯referenceerror
var foo = 2;
let bar = 2;
//4. 暫時性死區tdz
var temp = 123;
if (true
)
//1. 大部分和let差不多5. let不允許重複宣告
2. const(唯讀)(一旦宣告必須賦值)
3. 對於復合型別變數(可以給它的屬性賦值)
//1. 大部分和let差不多
//2. const(唯讀)(一旦宣告必須賦值)
const max = 123;
max = 1; //
報錯
//3. 對於復合型別變數(可以給他的屬性賦值)
const a ={};
a.name = "dai";
a.age = 21;
//(1)、方法之間不需要逗號分隔4. 如果你不想新增屬性
1. class作為es6的語法糖,實際es5也可以實現
class point
tostring()
}object.assign(point.prototype, ,
gety()
})let p1 = new point(1, 2);
console.log(p1.tostring());
//1,2
console.log(p1.getx()); //
1 console.log(p1.gety()); //
2 console.log(object.keys(point.prototype));//
["getx", "gety"]
(2)、tostring () {} 等價於 tostring: function () {}
(3)、你仍然可以使用point.prototype
(4)、你可以用object.assign()一次性擴充套件很多方法
(5)、類內部定義方法多是不可以列舉的
(6)、constructor(){}是乙個預設方法,如果沒有新增,會自動新增乙個空的。
(7)、constructor預設返回例項物件(this),完全可以指定返回其他的物件。
(8)、必須用new呼叫
(9)、不存在變數提公升
(10)、當用乙個變數去接受class時,可以省略classname
(11)、es6不提供私有方法
//(1)、constructor中必須呼叫super,因為子類中沒有this,必須從父類中繼承。2、使用extends繼承
class threedpoint extends point
tostring ()
static getinfo()
get z()
set z(value)
} threedpoint.getinfo();
//"static method"
let ta = new threedpoint(2,3,4);
console.log(ta.tostring());
//2,3,4
console.log(ta.z); //
4 ta.z = 200; //
200 console.log(object.getprototypeof(threedpoint)); //
point
(2)、子類的__proto__屬性總是指向父類
(3)、子類的prototype屬性的__proto__總是指向父類的prototype
(4)、object.getprototypeof()獲取父類
(5)、super作為方法只能在constructor中
(6)、super作為屬性指向父類的prototype.
(7)、在constructor中使用super.x = 2,實際上this.x = 2;但是讀取super.x時,又變成了父類.prototype.x。
(8)、原生建構函式是無法繼承的。
(9)、get set 方法可以對屬性的賦值和讀取進行攔截
(10)、靜態方法不能被例項繼承。通過static宣告
(11)、靜態屬性只能 threedpoint.name = "123" 宣告 (與static沒什麼關係)
1. es6引入自己的模組系統,通過export匯出,import匯入
2. 與commonjs不同的是,它是獲取模組的引用,到用的時候才會真正的去取值
//3. 例如student.js中:
let student =[,,
]export
default student;//
// 這種匯出方式,你可以在import時指定它的名稱
//import studentlist from './student.js'; //
指定名稱
console.log(studentlist[0].name);//
小張
ES6的變數宣告方式
保留了var和function。新增加了let const class和import。而且,let const class宣告的全域性變數再也不會和全域性物件的屬性掛鉤了。let 1 let只在所在的 塊中有效 for var i 0 i 10 i console.log i 10 for let ...
Es6之變數宣告
es6變數宣告let 和 canst,let 所宣告的變數具有塊級作用域,且宣告的變數不會前置,而const宣告的是不變了常量 let test test let 所宣告的變數只在塊級作用域內有效,而var就不同 for var i 1 i 5 i console.log str 輸出hello.c...
ES6之新的變數宣告方式
作用域就是變數的有效範圍 之前只有全域性作用域和函式作用域 let和const是新的變數宣告方式 輸出結果 使用let定義的變數只能用在定義它的那個塊裡 在這個塊之外是不能使用這個變數的 就是將宣告的變數繫結在宣告該變數的塊裡 同理 可以看做為最簡單的塊級元素 大括號外當然也訪問不到 輸出結果 因為...