es5&&es6
1.塊級作用域, let定義的變數只在**塊中有效
2.let宣告的變數不會提前(前置)(意味著必須先定義後使用)
3.不能重複定義 ,在同乙個作用域中不能宣告同名的變數
4.暫時性死區(當內部變數與外部變數同名時,內部變數會遮蔽外部變數)
注:let和var的區別
1)let宣告的變數是塊級作用域(所在一對花括號裡),var是函式作用域和全域性作用域
注意:let是可以定義全域性變數,區域性變數,塊級作用域的變數。(和寫**的位置有關)
2)let宣告的變數不會宣告提公升,var會宣告提公升
3)從**的寫法上,let不能宣告同名的變數,var可以。
用const來修飾的變數只是唯讀變數也叫常量,就意味著該變數裡的資料只能被訪問,而不能被修改,也就是意味著const「唯讀」(readonly)
const所修飾的變數必須賦初始值
const修飾的是直接指向(修飾)的記憶體
引用型別有兩塊記憶體區域
引用型別代表的是儲存位址的記憶體區域,陣列元素表示的是資料
json字串和物件的直接的轉換
字串轉換成json物件:json.parse
json物件轉換成字串:json. stringify
var str = 『』;
let obj = json.parse(str);
console.log(obj.id);
console.log(obj.name);
let str1 = json.stringfy(obj);
console.log(str1.id);
console.log(str1.name);
let strarr = ;
for(let index in strarr)
for(let t of strarr)箭頭函式相當於匿名函式,省略了return和花括號
2.有名函式 let 函式名=引數=>函式體
eg:let num=(x=>x*5)(8) //傳入引數x=6,自執行
console.log(num) //30
let num=function(x)
3.函式需要多個引數,引數需要花括號括起來
(x,y)=>x>y?x:y;
4.返回值是個物件
var f=(id,name)=>();
//等價於:
返回的是物件
var f=(id,name)=>(
});紅色括起來的圓括號不能省略,因為物件的花括號和函式的花括號衝突了
箭頭函式的優點:
對this轉移的處理,箭頭函式內部的this是詞法作用域,由上下文確定
優點:1. 可以讓乙個函式返回乙個的值
2. 可以實現兩個數的交換
3.可以將多個變數進行初始化
eg: let a=1;b=22;t;
a=a+b;
b=a-b;
a= a-b;
console.log(a,b);
eg: let [v1,[v2,v3],[v4,v5]] = [12,[23,34],[56,67],[5,6]];
console.log(v1);
console.log(v2);
console.log(v3);
console.log(v4);
console.log(v5);
let = ;
console.log(name,age);
set特點:自動去重,無下標
let set = set([2,3,5,6,2,3,2,1]);
console.log(set.size); //5
for(let t of set)
set集合的方法:
add(引數) 向集合中新增乙個元素
delete(引數) 刪除集合中某個數
has(引數) 判斷集合中是否含有某個值
clear(引數) 清空集合中的元素
from(引數) 將集合轉為陣列
map : 鍵值對
set() 向集合中新增乙個元素
get(鍵) 根據鍵去取值
delete( 鍵) 刪除集合中的某個數
has(鍵) clear(引數) 清空集合中的元素
from(引數) 將集合轉為陣列
map的遍歷
for(let t of map)
1.表示獨一無二的值,它是基本型別中的一種。
2.它是內建基本物件,不能使用new關鍵字來使用。let symbol = symbol();
let symbol1 = symbol(「heihei」);
let symbol2 = symbol(「heihei」);
console.log(symbol1 === symbol2); //false
let age =symbol();
var a = ;
for(let i in a)
console.log(a[age]); //18
es5 es6 繼承總結
一 原型鏈繼承 原型鏈繼承的原理 直接讓子類的原型物件指向父類例項,當子類例項找不到對應的屬性和方法時,就會往它的原型物件,也就是父類例項上找,從而實現對父類的屬性和方法的繼承。父類 function fat 父類上的原型方法 fat.prototype.getname function 子類 fu...
ES5 ES6 實現繼承
function parent value parent.prototype.getvalue function function child value child.prototype new parent const child new child 1 child.getvalue 1我們來研究...
ES5,ES6中的繼承
es5中的繼承 1,借助建構函式實現繼承 只能實現部分繼承 原理 通過call 函式改變this指向,將父類屬性掛載到子類例項中 function parent function child console.log new child 總結 優點 只呼叫一次父類的建構函式,避免了在子類原型中建立不必...