站長資訊網
        最全最豐富的資訊網站

        es6新增的聲明方法有什么

        新增聲明方法:1、let,用于聲明變量,語法“let 變量名=值”;2、const,用于聲明常量,語法“const 常量名=值”;3、class,用于聲明類,語法“class 類名{…}”;4、import,用于聲明靜態加載的輸入變量。

        es6新增的聲明方法有什么

        本文操作環境:windows10系統、Vue2.9.6版,DELL G3電腦。

        es6新增的聲明方法有什么

        聲明變量在ES5之前有兩種:第一種是聲明變量和常量的 “ var ”。第二種是聲明函數的 “ function ”。在ES6中,聲明變量的方法一下子擴充了到了 6 種,總結如下:

        聲明變量或常量:var 、let(ES6新增) 、const (ES6新增);

        聲明函數變量:function ;

        聲明類:class(ES6新增);

        聲明 ‘ 靜態加載 ’ 輸入變量:import (ES6新增);

        在我們學習這幾個新增的方法之前,還需要知道幾個ES6新定義的概念:

        1,let和const

        定義:

        let: ES6 新增了let命令,用來聲明變量。它的用法類似于var,但是所聲明的變量,只在let命令所在的塊級作用域內有效。

        const:ES6新增了const命令,聲明一個只讀的常量。一旦聲明,常量的值就不能改變。同let一樣聲明的變量只在塊級作用域內有效;

        特點差異:

        相同:都不存在變量提升,所以只能聲明后再使用,不聲明使用會報錯;

        都有暫時性死區(TDZ),這也解釋了為什么不聲明變量就使用會報錯;

        都不允許重復聲明;

        不同:const聲明的變量是 “ 不可改變 ” 的變量,所以在聲明變量時必須直接賦值,常量賦值后不能改變值,否則報錯;

        注意:上邊我們說的const聲明的變量不可改變是針對 “常量” 我理解是“ 基本數據類型 ”,比如字符串,數值,布爾值等等。并不是指的所有數據類型,當我們用const聲明的變量是引用數據類型時,是可以改變值的。

        這里就說到了const保存的內容的真正含義:const實際上保證的,并不是變量的值不得改動,而是變量指向的那個內存地址所保存的數據不得改動。對于簡單類型的數據(數值、字符串、布爾值),值就保存在變量指向的那個內存地址,因此等同于常量。

        但對于復合類型的數據(主要是對象和數組),變量指向的內存地址,保存的只是一個指向實際數據的指針,const只能保證這個指針是固定的(即總是指向另一個固定的地址),至于它指向的數據結構是不是可變的,就完全不能控制了。因此,將一個對象聲明為常量必須非常小心。

        用法:

        // let 用法 let a = '123';   // const 用法 const b = '456'

        2,class

        定義:ES6 的class可以看作只是一個語法糖,它的絕大部分功能,ES5 都可以做到,新的class寫法只是讓對象原型的寫法更加清晰、更像面向對象編程的語法而已。

        (class定義類,其實是很重要的一個知識,這里只是簡單的學習一下它的最最最基本的用法,也是作為一個引子。深入的學習我們會在后續記錄)

        用法:

        // 基本方法定義一個類 class Point{     constructor(x,y){         this.x = x;         this.y = y;     }       toString(){         return '( '+ this.x +','+ this.y +')';     } }   var point = new Point(2,3) point.toString(); // (2,3)     // 表達式的方法定義一個類 let person = new class {   constructor(name) {     this.name = name;   }     sayName() {     console.log(this.name);   } }('張三');   person.sayName(); // "張三"

        3,import

        用法:

        使用export命令定義了模塊的對外接口以后,其他 JS 文件就可以通過import命令加載這個模塊。

        // main.js import { firstName, lastName, year } from './profile.js';   function setName(element) {   element.textContent = firstName + ' ' + lastName; }

        上面代碼的import命令,用于加載profile.js文件,并從中輸入變量。import命令接受一對大括號,里面指定要從其他模塊導入的變量名。大括號里面的變量名,必須與被導入模塊(profile.js)對外接口的名稱相同。如果想為輸入的變量重新取一個名字,import命令要使用as關鍵字,將輸入的變量重命名。

        import { lastName as surname } from './profile.js';

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 精品熟女少妇a∨免费久久| 亚洲精品乱码久久久久久按摩 | 国内精品伊人久久久久| 午夜福利麻豆国产精品| 99久久国产主播综合精品| 99久久99久久久精品齐齐| 亚洲精品无码午夜福利中文字幕| 精品欧美一区二区在线看片| 色综合久久综精品| 99久久国产热无码精品免费 | 国产精品99久久精品爆乳| 东京热TOKYO综合久久精品| 久久er99热精品一区二区| 中文字幕无码精品三级在线电影 | 日韩精品无码AV成人观看| 午夜精品久久久久9999高清| 久久精品成人| 精品一区二区三区色花堂| 99久久精品九九亚洲精品| 日韩精品一区二区三区四区| 欧美精品香蕉在线观看网| 国产成人精品男人的天堂538| 500av大全导航精品| 999国内精品永久免费观看| 国产亚洲精品自在久久| 国产综合色在线精品| 精品三级AV无码一区| 久久精品国产亚洲精品2020 | 精品欧美一区二区在线观看| 精品国产欧美一区二区三区成人 | 亚洲欧美日韩国产精品一区二区| 免费看污污的网站欧美国产精品不卡在线观看| 国产精品久久久久一区二区三区| 国产精品福利电影一区二区三区四区欧美白嫩精品 | 国产亚洲精品不卡在线| 国产一区二区三区欧美精品 | 国产精品国产三级国产AV主播| 国产亚洲精品a在线无码| 91麻豆精品国产| 精品一区二区在线观看| 久久亚洲国产精品一区二区|