면접의 ES6
5060 단어 es6
앞으로 ES6에 대해서 저도 정리를 해볼게요.
Symbol
1.symbol은 유일무이하여 명칭 충돌을 피하기 위해 대상의 속성 이름을 사용할 수 있습니다.
이전에 for in이 원형에 널리 퍼질 수 있는 방법과 속성을 언급한 적이 있다.Object.keys(obj)가 되돌아오는 것은 원형의 방법과 속성을 포함하지 않습니다.for-in은 대상의symbol키, Object를 옮겨다니지 않습니다.keys(obj)도 그렇고, 생각해 보니 원형보다 더 까다롭다.
2.symbol은 문자열로 암시적으로 변환할 수 없습니다
var sym = Symbol("<3");// new, Symbol
console.log(sym);//Symbol(<3)
console.log("Symbol:"+sym);//Uncaught TypeError: Cannot convert a Symbol value to a string
그러나 스트링(sym) 또는 sym은 명시적으로 변환할 수 있습니다.toString()이 문자열로 변환됩니다.
객체 분해 할당 값
1. 대상 해체는 언제 기본값이 작용합니까?
속성 값이 엄격하게undefined와 같을 때 (예를 들어 쓰지 않거나undefined를 직접 부여하는 것)
var { message: msg = "You Are A Person!" } = {};
consle.log(msg); //"You Are A Person!"
var { x = 3 } = { x: undefined };
console.log(x); //3
null이면 undefined가 아니에요.
var { y = 3 } = { y: null };
console.log(y);//null
2. 이미 성명한 변수는 어떻게 할당치를 해석합니까?
가장 간단한 것은 부치를 해체할 때 성명할 수 있다.
var {x:x0,y=2}={x:1};
console.log(x0,y);//1,2
그러면 이미 성명한 변수도 이렇게 사용할 수 있습니까?
var x,y;
{x:xo,y=2}={x:1};//Uncaught SyntaxError: Unexpected token =
console.log(xo,y);
잘못 보고된 것을 발견할 수 있다!여기서 {x:xo, y=2}를 코드 블록으로 이해합니다.미리 설명된 변수입니다. 값을 풀려면 ()
var x,y;
({x:xo,y=2}={x:1});
console.log(xo,y);//1,2
지난번 신선하고 따끈따끈한 문제:
let x, { x: y = 1 } = { x }; y;
A、 undefined
B、 1
C、 { x: 1 }
D、 Error
현혹되지 마십시오. 이것은 이미 성명한 변수가 아닙니다.x를undefined로 정의한 다음에 기본값이 작용합니다. y는 1과 같습니다.
Class
1. 클래스의 유형은 함수이고 클래스가 가리키는 것은 구조 함수이다
위의 두 마디는 각각 아래의 코드로 표시할 수 있다
class Test{
}
console.log(typeof Test);//function
console.log(Test === Test.prototype.constructor);//true
너는 틀림없이 이상할 것이다. 나는 constructor를 쓰지 않았는데, 그것은 어디에서 왔지?
constructor는 기본 방법입니다. new를 사용하여 실례 대상을 정의할 때 constructor를 자동으로 호출하고 필요한 파라미터를 전송합니다. 실행이 끝나면 실례 대상을 되돌려줍니다.constructor가 정의되지 않으면 기본적으로 빈 constructor를 추가합니다.
2. 정의 클래스는 클래스 성명 & 클래스 표현식으로 나뉜다
클래스 선언
class Test{
}
클래스 표현식 (class 뒤에 있는 클래스 이름은 클래스 내부에서만 사용할 수 있고 밖에서 사용하면 오류 보고)
var prepare = class Test{
constructor(){
console.log(Test);// Test
}
}
new prepare();
new Test()//Test is not defined;
즉시 실행하는 클래스는 클래스 앞에 new를 붙여야 합니다
const p = new class {
constructor(name,age){
console.log(name,age);
}
}("job",30)
3. class 함수 성명 승급 없음
//----- -------
// , , 。
func();
function func(){}
//----- ---------------
new StdInfo(); // ,StdInfo is not defined
class StdInfo{}
4. 하위 클래스에constructor 함수가 있으면 슈퍼 키워드로this를 가져와야 합니다
class a{
constructor(cloth,cost){
this.cloth = cloth,
this.cost = cost
}
tellMe(){
console.log(this.cloth+" "+this.cost+" ");
}
}
var shirt = new a(" ",15);
shirt.tellMe();
class b extends a{
constructor(cloth,cost,pos){
super(cloth,cost);// this, this, this
this.pos = pos;
}
tellMe(){
console.log(this.pos+this.cloth+" "+this.cost+" ");
}
}
var pants = new b(" ",23," ");
pants.tellMe();
비교적 까다로운 문제를 내자. extends와 결합할 뿐만 아니라 괄호에 대한 단일/여러 표현식은 마지막 표현식의 값만 되돌려준다~
typeof (new (class F extends (String, Array) { })).substring
A、 "function"
B、 "object"
C、 "undefined"
D、 Error
괄호 안의 내용을 표현식으로 보기 (String, Array)/Array, 마지막 값 (class F extends Array) 을 되돌려줍니다.//class F가 Array로 계승됨(new(class F extends Array);//F의 인스턴스를 만듭니다.substring;//예를 들어 String을 계승하지 않았기 때문에 Array에substring 방법이 없으면 반환 값은undefined typeof (new (class F extends (String, Array)) 이다.substring;//undefined에서 typeof 가져오기
5. 사유 속성과 사유 방법을 정의하는 것을 지원하지 않습니다
화살표 함수
1.this는 상하문 환경을 영원히 가리키는this
var obj ={
a: 233,
b: function(){
console.log(this,this.a);
},
c: function(){
return ()=>{
console.log(this,this.a);
}
},
d: ()=>{
console.log(this,this.a);
}
}
var a = 666;
obj.b();//obj 233
obj.c()();//obj 233
var obj_b = obj.b;
obj_b();//Window 666
obj.d();//Window 666
obj.c 방법에서return의 화살표는function(){}이 환경의this를 포획하기 때문에obj를 가리킨다.
obj.d 방법의 화살표는 obj {} 이 대상의 환경을 포획하기 때문에 window를 가리킨다.
2. 콜과 apply는 소용없다
obj.d();//Window 666
obj.d.call(obj);//Window 666
obj.d.apply(obj);//Window 666
obj.b();//obj 233
obj.b.call(window);//Window 666
3. 화살표 함수는 Generator 함수로 사용할 수 없고 yield 키워드를 사용할 수 없습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【DOM 조작(전편)】JavaScript의 addEventListener에 대해서, 「・・하면」을 정리해 보았다이번에는 JavaScript의 DOM 조작 addEventListener 에 대해 정리해 보았습니다. DOM 조작 초보자의 참고가되면 기쁩니다. 기본 DOM 조작 (addEventListener)의 흐름 ① 우선은 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.