ES5 ES6(面試必問點!!)

2021-10-08 16:58:27 字數 2578 閱讀 2265

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 總結 優點 只呼叫一次父類的建構函式,避免了在子類原型中建立不必...