es6宣告變數有幾種方法
es6宣告變數有6種方法:1、用關鍵字var宣告變數;2、用關鍵字function宣告變數;3、用關鍵字const宣告變數;4、用關鍵字let宣告變數; 5.用關鍵字class宣告變數;6、用關鍵字import宣告變數。
本教學操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。
ES5 只有兩種宣告變數的方法:var指令和function指令。
ES6 除了加入let和const指令,還有兩種宣告變數的方法:import指令和class指令。
所以,ES6 一共有 6 種宣告變數的方法。
1、用關鍵字var宣告變數
var a ; //undefined var b = 1;
- var定義的變數可以修改,如果不初始化會輸出undefined,不會報錯
- var 宣告的變數在window上,用let或const去宣告變量,這個變數不會放到window上
- 很多語言都有區塊級作用域,但JS沒有,它使用var宣告變量,以function來分割作用域,大括號「{}」 卻限定不了var的作用域,因此用var宣告的變數具有變數提升的效果
- var 宣告的變數作用域是全域的或是函數級的
2、用關鍵字function宣告變數
function add(a) { var sum = a + 1; return sum; }
- 聲明了一個名為add的新變量,並為其分配了一個函數定義
- {}之間的內容被分配給了add
- 函數內部的程式碼不會被執行,只是儲存在變數中以備將來使用
3、用關鍵字const宣告變數
#const a; //报错,必须初始化 const b = 1;
- const定義的變數不可以修改,而且必須初始化
- 該變數是個全域變量,或是模組內的全域變數
- 如果一個變數只有在宣告時才被賦值一次,永遠不會在其它的程式碼行裡被重新賦值,那麼應該使用const,但是該變數的初始值有可能在未來會被調整(常變數)
- 建立一個唯讀常數,在不同瀏覽器上表現為不可修改;建議申明後不修改;擁有區塊級作用域
- const 代表一個值的常數索引 ,也就是說,變數名字在記憶體中的指標不能夠改變,但是指向這個變數的值可能會改變 ##const定義的變數不可修改,一般在require一個模組的時候用或定義一些
- 全域常數
- #可以在全域作用域或是函數內宣告常數,但是
必須初始化常數
- 常數不能和它所在作用域內其它變數或函數擁有相同名稱
4、用關鍵字let宣告變數
let a; //undefined let b = 1; function add(b) { let sum = b + 1; return sum; } let c = add(b);
- 需要」javascript 嚴格模式」:
- 'use strict'; 不存在變數提升
- 不允許重複宣告
- let宣告的變數作用域是在區塊層級域中,函數內部使用let定義後,對函數外部無影響(
- 區塊層級作用域) 可以在宣告變數時為變數賦值,預設值為undefined,也可以在腳本中給變數賦值,在生命前無法使用(暫時死區)
5、用關鍵字class宣告變數
#關於class,後期我會單獨寫一篇文章,詳細的介紹一下,這裡就簡單說一下: 首先透過看ES5中的建構函數,然後再用ES6的class去實作:
// ES5写法 : function fun ( x, y ){ this.x = x; this.y = y; }; fun.prototype.GetHair = function(){ return `${this.x}掉了两根头发,${this.y}说俺也一样!`; }; let setHair = new fun('小明','老王'); console.log(setHair.GetHair()); // 小明掉了两根头发,老王说俺也一样!
class Interest { constructor( x, y, e, z ){ this.x = x; this.y = y; this.e = e; this.z = z; } MyInterest(){ let arr = []; console.log(`我会${[...arr,this.x,this.y,this.e,this.z]}!`); } } let GetInterest = new Interest('唱','跳','rap','篮球'); console.log(GetInterest.MyInterest()); //我会唱,跳,rap,篮球!
6、用關鍵字import宣告變數
#import用於載入文件,在大括號接收的是一個或多個變數名,這些變數名需要與你想要匯入的變數名相同。
举个栗子:你想要导入action.js文件中的某一个变量,这个变量里保存了一段代码块,所以你要写成:import { Button } from 'action'
,这个时候,你就从action.js中获取到了一个叫 Button 的变量,既然获取到了,你就可以对Button里的代码猥琐欲为了
如果想为输入的变量重新取一个名字,import
命令要使用as关键字,将输入的变量重命名,比如:
import { NewButton as Button } from 'action.js';
上面的代码表示从action.js文件中,获取一个变量名称叫做Button的代码段,然后你又声明了一个变量 NewButton ,将 Button 保存在 NewButton
【相关推荐:javascript视频教程、web前端】
以上是es6宣告變數有幾種方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在ES6中,可以利用數組物件的reverse()方法來實現數組反轉,該方法用於顛倒數組中元素的順序,將最後一個元素放在第一位,而第一個元素放在最後,語法「array.reverse()」。 reverse()方法會修改原始數組,如果不想修改需要配合擴充運算子「...」使用,語法「[...array].reverse()」。

async是es7的。 async和await是ES7中新增內容,是對於非同步操作的解決方案;async/await可以說是co模組和生成器函數的語法糖,用更清晰的語意解決js非同步程式碼。 async顧名思義是「非同步」的意思,async用於聲明一個函數是異步的;async和await有一個嚴格規定,兩者都離不開對方,且await只能寫在async函數中。

為了瀏覽器相容。 ES6作為JS的新規範,加入了許多新的語法和API,但現代瀏覽器對ES6新特性支援不高,所以需將ES6程式碼轉換為ES5程式碼。在微信web開發者工具中,會預設使用babel將開發者ES6語法程式碼轉換為三端都能很好支援的ES5的程式碼,幫助開發者解決環境不同所帶來的開發問題;只需要在專案中配置勾選好「ES6轉ES5」選項即可。

步驟:1、將兩個陣列分別轉換為set類型,語法「newA=new Set(a);newB=new Set(b);」;2、利用has()和filter()求差集,語法“ new Set([...newA].filter(x =>!newB.has(x)))”,差集元素會被包含在一個set集合中返回;3、利用Array.from將集合轉為數組類型,語法“Array.from(集合)”。

es5中可以利用for語句和indexOf()函數來實現數組去重,語法“for(i=0;i<數組長度;i++){a=newArr.indexOf(arr[i]);if(a== -1){...}}」。在es6中可以利用擴充運算子、Array.from()和Set來去重;需要先將陣列轉為Set物件來去重,然後利用擴充運算子或Array.from()函數來將Set物件轉回數組即可。

在es6中,暫時性死區是語法錯誤,是指let和const命令使區塊形成封閉的作用域。在程式碼區塊內,使用let/const指令宣告變數之前,變數都是不可用的,在變數宣告之前屬於該變數的「死區」;這在語法上,稱為「暫時性死區」。 ES6規定暫時性死區和let、const語句不出現變量提升,主要是為了減少運行時錯誤,防止在變量聲明前就使用這個變量,從而導致意料之外的行為。

不是,require是CommonJS規範的模組化語法;而es6規範的模組化語法是import。 require是運行時加載,import是編譯時加載;require可以寫在程式碼的任意位置,import只能寫在文件的最頂端且不可在條件語句或函數作用域中使用;require運行時才引入模組的屬性所以效能相對較低,import編譯時引入模組的屬性所所以效能稍高。

在es6中,可以利用array物件的length屬性來判斷數組裡總共有多少項,即取得數組中元素的個數;該屬性可傳回數組中元素的數組,只需要使用「array.length」語句即可傳回表示數組物件的元素個數的數值,也就是長度值。
