> 웹 프론트엔드 > 프런트엔드 Q&A > es6에서 변수를 선언하는 방법은 무엇입니까?

es6에서 변수를 선언하는 방법은 무엇입니까?

青灯夜游
풀어 주다: 2023-01-11 09:19:21
원래의
2203명이 탐색했습니다.

변수 선언 방법: 1. "var 변수 이름;" 구문을 사용합니다. 2. 함수 명령을 사용합니다. 3. "const 변수 이름;" 구문을 사용합니다. let 명령, "let "변수 이름" 구문; 5. import 명령을 사용하십시오. 6. class 명령을 사용하십시오.

es6에서 변수를 선언하는 방법은 무엇입니까?

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

ES5에는 변수를 선언하는 방법이 var 명령과 function 명령 두 가지뿐입니다. var命令和function命令。

ES6 除了添加letconst命令,还有两种声明变量的方法:import命令和class

ES6 letconst 명령을 추가하는 것 외에도 변수를 선언하는 두 가지 방법이 있습니다. import 명령과 클래스명령.

그래서 ES6에는 변수를 선언하는 방법이 총 6가지가 있습니다.

(1) var 명령
  • var a ;  //undefined
    var b = 1;
    로그인 후 복사
  • var로 정의된 변수를 수정할 수 있습니다. 초기화하지 않으면
  • undefine
  • 이 출력되고 오류가 보고되지 않습니다.
  • var로 선언된 변수는 다음과 같습니다. 창에서 let 또는 const를 사용하여 변수를 선언합니다. 이 변수는 창에 배치되지 않습니다. 많은 언어에는 블록 수준 범위가 있지만 JS는 var를 사용하여 변수를 선언합니다. 중괄호 "{}"는 범위를 제한할 수 없으므로 var로 선언된 변수는 변수 승격
  • var로 선언된 변수의 범위는 전역 또는 함수 수준
입니다.

(2) 함수 명령

function add(a) {
  var sum = a + 1;
  return sum;
}
로그인 후 복사
  • add라는 새 변수가 선언되고 여기에 함수 정의가 할당됩니다.
  • {} 사이의 내용은 add에 할당됩니다.
  • 함수 내부의 코드는 그렇지 않습니다.

(3) cosnt 명령

const a;     //报错,必须初始化
const b = 1;
로그인 후 복사
  • const를 사용하여 정의한 변수는 수정할 수 없으며 초기화해야 합니다.
  • 변수는 전역 변수이거나 모듈 내 전역 변수
  • 변수가 선언될 때 한 번만 할당되고 다른 코드 줄에서는 다시 할당되지 않습니다. 그러면 const를 사용해야 하지만 변수의 초기 값은 모듈에서 조정될 수 있습니다. future(상수 변수)
  • 읽기 전용 상수를 만듭니다. 다른 브라우저에서는 수정할 수 없는 것으로 보입니다. 선언 후에는 수정하지 않는 것이 좋습니다. 블록 수준 범위가 있습니다.
  • const는 상수index를 나타냅니다. 즉, 메모리에 있는 변수 이름의 포인터는 변경할 수 없지만 이 변수를 가리키는 값은 변경될 수 있습니다.
  • const 정의 변수는 일반적으로 사용할 수 있습니다. 또는 모듈이 필요할 때 일부 전역 상수를 정의하세요.
  • 전역 범위나 함수 내에서 상수를 선언할 수 있습니다. 하지만 초기화되어야 합니다상수

  • 상수는 다른 변수나 함수와 같은 이름을 가질 수 없습니다. 해당 범위에서

(4) let command

let a;  //undefined
let b = 1; 
function add(b) {
  let sum = b + 1;
  return sum;
}
let c = add(b);
로그인 후 복사
  • 에는 "javascript strict 모드"가 필요합니다. ' use strict';
  • 변수 승격이 없습니다
  • 반복 선언은 허용되지 않습니다
  • let으로 선언된 변수 범위는 블록 수준 범위에 있습니다. let 정의가 함수 내부에서 사용된 후에는 함수 외부에 영향을 미치지 않습니다(블록 수준 범위 )
  • 에 값을 할당할 수 있습니다. 변수를 선언할 때 기본값은 정의되지 않거나 나중에 스크립트에서 변수에 값을 할당할 수 있습니다. 이 값은 수명 이전에는 사용할 수 없습니다(임시 데드존)

(5) import command

1. ES6에는 자체 모듈 시스템이 도입되었습니다. 수출을 통한 수출, 수입을 통한 수입.

2. CommonJS와 달리 모듈의 참조를 가져오며, 사용되기 전까지는 실제로 값을 가져오지 않습니다.

3 달성할 수도 있습니다.

  let student = [
    {
      name: 'xiaoming',
      age: 21,
    },
    {
      name: 'xiaohong',
      age: 18
    }
  ]
  export default student; // 这种导出方式,你可以在import时指定它的名称。
로그인 후 복사
  import StudentList from './student.js'; //指定名称
  console.log(StudentList[0].name); //xiaoming
로그인 후 복사

메소드 간에 쉼표 구분이 필요하지 않습니다.

toString () {}은 toString: function () {}

Point.prototype을 계속 사용할 수 있습니다
  • Object를 사용할 수 있습니다. 할당()은 한 번에 여러 메서드를 확장합니다
  • 클래스 내부에 정의된 대부분의 메서드는 열거할 수 없습니다.
  • constructor(){}가 기본 메서드입니다. 추가되지 않으면 빈 메서드가 자동으로 생성됩니다. 추가되었습니다.
  • constructor默认返回实例对象(this),完全可以指定返回其他的对象。

  • 必须用new调用

  • 不存在变量提升

  • 当用一个变量去接受class时,可以省略classname

  • es6不提供私有方法。

2:使用extends继承

class ThreeDPoint extends Point {
    constructor (x, y, z) {
      console.log(new.target); //ThreeDPoint
      super(x, y);
      this.z = z;
}
    toString () {
      return super.toString() + ',' + this.z;
    }
    static getInfo() {
      console.log('static method');
    }
    get z() {
      return 4;
    }
    set z(value) {
      console.log(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
로그인 후 복사
  • constructor中必须调用super,因为子类中没有this,必须从父类中继承。

  • 子类的__proto__属性总是指向父类

  • 子类的prototype属性的__proto__总是指向父类的prototype

  • Object.getPrototypeOf()获取父类

  • super作为方法只能在constructor中

  • super作为属性指向父类的prototype.

  • 在constructor中使用super.x = 2,实际上this.x = 2;但是读取super.x时,又变成了父类.prototype.x。

  • 原生构造函数是无法继承的。

  • get set 方法可以对属性的赋值和读取进行拦截

  • (静态方法不能被实例继承。通过static声明

  • 静态属性只能 ThreeDPoint.name = “123” 声明 (与static没什么关系)

【推荐学习:javascript高级教程

위 내용은 es6에서 변수를 선언하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿