>웹 프론트엔드 >프런트엔드 Q&A >es6은 프레임워크인가요?

es6은 프레임워크인가요?

青灯夜游
青灯夜游원래의
2022-11-16 19:03:091312검색

es6은 프레임워크가 아니라 JavaScript 언어의 표준입니다. es6은 Ecma International(정보통신표준화기구의 국제 회원제)이 ECMA-262를 통해 표준화한 스크립팅 프로그래밍 언어인 ECMAScript의 6번째 버전으로, JavaScript의 구문과 구문을 제공하는 스크립팅 언어 JavaScript의 핵심입니다. 언어.기본 개체.

es6은 프레임워크인가요?

이 튜토리얼의 운영 환경: Windows 7 시스템, ECMAScript 버전 6, Dell G3 컴퓨터.

es6은 프레임워크가 아니라 JavaScript 언어의 표준입니다.

es6, ECMAScript6(ECMAScript의 6번째 버전)의 전체 이름은 2015년 6월에 공식적으로 출시된 JavaScript 언어 표준으로, 공식 명칭은 ECMAScript 2015(ES2015)입니다. 그 목표는 JavaScript 언어를 사용하여 복잡한 대규모 애플리케이션을 작성하고 엔터프라이즈 수준의 개발 언어가 되도록 하는 것입니다.

그리고 ECMAScript는 Ecma International에서 ECMA-262를 통해 표준화한 스크립팅 프로그래밍 언어입니다. 이 언어는 World Wide Web에서 널리 사용됩니다. JavaScript 또는 JScript라고 부르기도 하므로 JavaScript의 표준으로 이해하면 되지만, 사실 후자의 두 언어는 ECMA-262 표준을 구현하고 확장한 것입니다.

JavaScript와 ECMAScript의 관계

때때로 사람들은 JavaScript와 ECMAScript를 동일하다고 생각하지만, 그렇지 않습니다. JavaScript에는 ECMA-262에 지정된 것보다 훨씬 많은 내용이 포함되어 있습니다. 다음 세 부분으로 구성됩니다.

  • Core(ECMAScript): 언어의 구문과 기본 개체를 제공합니다.

  • Document Object Model(DOM): 웹 콘텐츠 처리를 위한 메서드와 인터페이스를 제공합니다. BOM(브라우저 개체 모델): 브라우저와 상호 작용하기 위한 메서드와 인터페이스를 제공합니다.

  • ECMAScript는 JavaScript의 핵심으로, 언어의 기본 구문(var, for, if, array 등)과 데이터 유형(숫자, 문자열, 부울, 함수, 객체(obj, [], {))을 설명합니다. }) , null, 정의되지 않음) ECMAScript는 JS와 같은 언어의 모양을 정의하는 표준 집합입니다.

  • ECMAScript는 ECMA-262에 의해 정의됩니다. ECMAScript는 웹 브라우저에 종속되지 않는 국제적으로 인정되는 표준 스크립팅 언어 사양입니다. ECMA-262 표준은 주로 이 언어가 다음 구성 요소로 구성된다고 규정합니다.

문법

  • 변수 및 데이터 유형

  • 키워드 및 예약어

  • 연산자

  • 제어문

  • Objects

  • ECMAScript 6은 기본적으로 ES5보다 인기가 훨씬 빠릅니다. 특히, 이미 대부분의 ES6를 지원하는 Chrome 및 Firefox 브라우저가 ES6를 매우 빠르게 지원하기 때문입니다. 특징. [추천 학습:

    고급 JavaScript 튜토리얼
  • ]

ES6를 왜 배워야 할까요? ES6는 어떤 용도로 사용되나요?

ES5는 프론트엔드가 점점 복잡해지고 거대해지는 현 상황을 감당할 수 없습니다. ES6는 ES5의 개선이자 업그레이드라고 할 수 있습니다. 1. 주류 브라우저는 ES6를 완벽하게 지원합니다

2. 업계의 최신 프런트 엔드 프레임워크는 ES6 구문을 완전히 사용했습니다

3. WeChat 애플릿, uni-app 등은 모두 ES6 구문을 기반으로 합니다

4. 취업부터 시작해서 중소기업, 풀스택, 이력서에 스킬 하나 더 추가하고, 체험기간 동안 더 빠르게 시작하실 수 있습니다.

Variables

let

    한 범위에 하나의 let 변수만 선언할 수 있습니다. 자식 범위에서도 let 변수를 선언하면 부모 범위의 let 변수에 영향을 주지 않습니다.
  • var
  • 하나의 범위에서 여러 var 변수를 선언할 수 있습니다. var 변수가 하위 범위에서도 선언되면 상위 범위의 var 변수에도 영향을 미칩니다.
  • const
  • final과 동일한 상수는 수정할 수 없습니다.
  • global
  • 변수 유형을 선언하지 않은 변수는 기본적으로 전역 변수(창 속성)를 사용합니다.

  • 객체 지향

Principle

    JavaScript의 객체 지향 기능은 클래스 기반의 일반적인 기능과 다른 프로토타입 및 생성자를 기반으로 합니다. JavaScript는 객체 상속의 언어 수준 기능을 제공하지 않지만 프로토타입 복사를 통해 이를 제공합니다.
  • 객체를 생성하는 세 가지 방법
  •   1. {pojo}(实例变量、实例方法、get、set) 
      2. function(实例变量、实例方法、prototype、apply、call) 
      3. class(实例变量、实例方法、prototype、extends、super)
  • prototype

함수와 클래스에만 프로토타입이 있습니다. 이는 인스턴스 변수와 인스턴스 메서드를 동적으로 추가하고 상속을 구현한다는 의미입니다.

상속

  • call/apply
          应用在继承关系中,子类向父类传参时应用此关键字
  • extends
          继承关系中使用,A extends B,则A是B的父类
  • super
          在子类中调用父类的方法时应用次关键字
  • ES5继承方式
          接下来我们手写一套组合继承(原型链继承(继承原型) + 构造继承(继承属性))。这种方式即可避免原型链继承中无法实现多继承,创建子类实例时,无法向父类构造函数传参的弊端,也可避免构造继承中不能继承原型属性/方法的弊端。
function Person(name,age){                                             /* 父类 */
    this.name = name || 'father';                            //实例变量
    this.namesonF = this.nameson;
    this.age = age;
    this.talk = function(){alert("talk");};                 //实例方法
};
function Son(name){                                                     /* 子类 */
    this.nameson = name || 'son';
    // Person.call(this,'name',18);                          //继承:构造继承,复制父类的实例属性给子类,不能继承原型属性/方法
    Person.apply(this,['name',18]);                          //继承:构造继承,复制父类的实例属性给子类,不能继承原型属性/方法
}
// Son.prototype = new Person("zhangsan",19);                   //继承:原型链继承,父类的实例作为子类的原型,拷贝属性两次,不合理
Son.prototype = Person.prototype;                            //继承:原型链继承,父类的实例作为子类的原型

Person.prototype.publicParam="param1";                       //动态添加实例变量
Person.prototype.talk=function(){alert("talk");}            //动态添加实例方法

var son = new Son();                                         //实例化对象,调用构造函数(constructor)
  • ES6继承方式
          ES6的继承创造了一种新的写法,与Java、Scala等语言非常类似,默认使用组合继承(原型链继承(继承原型) + 构造继承(继承属性))的方式。
class Point {
    constructor(x, y) {
        this.x = x;                                           //实例变量
        this.y = y;
    }
}
class Son extends Point {
    constructor(z, w) {
        super(z,w);
        this.z = z;                                           //实例变量
        this.w = w;
    }
}
var son = new Son(1,2);

arrow functions

      箭头函数,是ES6中新加入的语法,于Java的lambda,scala的函数式语法非常相似

  • 代码
var single = a => console.log(a);
var single = (a) => (console.log(a));
var single = (a, b) => {console.log(a + b)};
var single = (a, b) => {return a + b};

template string

      模版字符串,字符串拼接的新语法

  • 代码
var templateStr = () => {
    var str1 = "adsf\nsdfa";

    var template1 = `<ul><li>first</li> <li>second</li></ul>`;

    var x = 1;
    var y = 2;
    var template2 = `${x} + ${y} = ${x + y}`;

    var template3 = `${lettest4()}`;
    console.log(str1)
    console.log(template1)
    console.log(template2)
    console.log(template3)
}

destructuring

      重构/解构,变量交互的语法

  • 代码
var destructuring = () => {
    var [a,b,...c]=[1,2,3,4,5,6,7,8,9,10];
    let [temp="replaceString"] = ["tempString"];
    let [age2, [{name: fname},{age: fname2="replaceString"}]] = [20, [{name: &#39;qc&#39;},{}]];
    const [aa,bb,cc,dd,ee,ff]="hello";

    let {name="replaceName",age,id}={name:&#39;cursor&#39;,age:19,id:&#39;vc6dfuoc91vpdfoi87s&#39;};
    let {type:tipType,min:minNumber}={type:&#39;message&#39;,min:20};
    let {sin,cos,tan,log}=Math;

    var fun = function({x,y}={}){return [x,y];}
    fun({x:100,y:2});

    [a,b]=[b,a];                                        //交换

    var map = [1,2,3]
    var map=new Map();
    map.set("id","007");
    map.set("name","cursor");
    for(let [key,value] of map){}
    for(let [key] of map){}
    for(let [,value] of map){}

    var arr = [1,2,3,4]
    for(let val of arr){val}

}

arguments

      实参,ES6中加入的直接读取参数的变量

  • 代码
function argumentsTest(a,b) { 
	for(let val of arguments)
		{console.log(val)
	}
}

【相关推荐:javascript视频教程编程视频

위 내용은 es6은 프레임워크인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.