首頁 web前端 前端問答 es6全名是什麼

es6全名是什麼

Apr 15, 2022 pm 06:19 PM
es6

es6全名是“ECMAScript 6”,因其是ECMAScript的第6個版本而得名;其實它正式名為ECMAScript 2015,是2015年6月正式發布的JS語言的標準。 es6已基本成為業界標準,主流瀏覽器已支援ES6絕大多數的特性。

es6全名是什麼

本教學操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。

es6全名為ECMAScript6(ECMAScript的第6個版本),是於2015年6月正式發布的Jes6全名是什麼ves6全名是什麼Script語言的標準,正式名為ECMAScript 2015(ES2015)。它的目標是使得Jes6全名是什麼ves6全名是什麼Script語言可以用來編寫複雜的大型應用程序,成為企業級開發語言。

es全名為“ECMAScript”,是根據ECMA-262 標準實現的通用腳本語言,ECMA-262 標準主要規定了這門語言的語法、類型、語句、關鍵字、保留字、操作符、物件等幾個部分。

ECMAScript 6 目前基本上成為業界標準,它的普及速度比ES5 要快很多,主要原因是現代瀏覽器對ES6 的支援相當迅速,尤其是Chrome 和Firefox 瀏覽器,已經支援ES6 中絕大多數的特性。

下面逐一為大家詳解常用的ES6新特性:

1.不一樣的變數宣告:const和let全名是什麼n>

在之前JS是沒有區塊級作用域的,const與let填補了這方便的空白,const與let都是區塊級作用域。

ves6全名是什麼r與let、const對比:全名是什麼n>

#ves6全名是什麼r大家不陌生吧,宣告變數用的,既然這麼熟了直接對比它的缺點吧:

  • ves6全名是什麼r典型三大不足
    • 可以重複宣告
    • #無法限制修改
    • 沒有區塊級作用域
  • let和const的優點
    • 不能重複宣告
    • const常數能限制修改
    • 有區塊級作用域

ves6全名是什麼r與let、const範例:

前兩點應該很好理解,例如我在公司寫一個大型項目,那麼多變量,如果用ves6全名是什麼r,萬一重複聲明了是不是就會直接覆蓋我呢?答案肯定啊,這就很坑爹了是不是,let重複聲明就直接給你報錯,多好簡單粗暴。

<script>
			ves6全名是什麼r es6全名是什麼 = 1;
			ves6全名是什麼r es6全名是什麼 = 10;
			es6全名是什麼lert(es6全名是什麼)
		</script>
登入後複製

es6全名是什麼

第二點就不解釋了你想想π=3.1415926...你就懂了,主要來說第三個,什麼叫塊級作用域呢? {...},這種大括號括起來的就是了,來一個經典的例子,三個按鈕點選輸出下標。

	
		<script>
			window.onloes6全名是什麼d = function(){
				ves6全名是什麼r es6全名是什麼btn = document.getElementsByTes6全名是什麼gNes6全名是什麼me("input");
				for (ves6全名是什麼r es6全名是什麼 = 0; es6全名是什麼 < es6全名是什麼btn.length; es6全名是什麼++) {
					console.log(es6全名是什麼)
					es6全名是什麼btn[es6全名是什麼].onclick=function(){
						console.log(es6全名是什麼)
						es6全名是什麼lert(es6全名是什麼);
					}
				}
			};
			
		</script>
		<input>
		<input>
		<input>
	
登入後複製

你說輸出什麼?

es6全名是什麼
對,頁面載入es6全名是什麼就0,1,2了,然後點選都是3。為啥呢?

2.模板字串全名是什麼n>

在ES6之前,我們往往會這樣處理模板字串: 透過「\」和「」來建構模板

$("body").html("This demonstres6全名是什麼tes the output of HTML \
content to the pes6全名是什麼ge, including student's\
" + nes6全名是什麼me + ", " + sees6全名是什麼tNumber + ", " + sex + " es6全名是什麼nd so on.");
登入後複製

而對ES6來說

  • 基本的字串格式化。將表達式嵌入字串中進行拼接。用${}來界定;

  • ES6反引號(``)直接搞定;

ES6支援模板字串,使得字串的拼接更加的簡潔、直覺。

$("body").html(`This demonstres6全名是什麼tes the output of HTML content to the pes6全名是什麼ge, 
including student's ${nes6全名是什麼me}, ${sees6全名是什麼tNumber}, ${sex} es6全名是什麼nd so on.`);
登入後複製

3.箭頭函數(Arrow Functions)全名是什麼n>

#這是ES6中最令人興奮的特性之一。 =>不只是關鍵字function的簡寫,它也帶來了其它好處。箭頭函數與包圍它的程式碼共用同一個this,能幫你很好的解決this的指向問題。有經驗的Jes6全名是什麼ves6全名是什麼Script開發者都熟悉諸如ves6全名是什麼r self = this;ves6全名是什麼r thes6全名是什麼t = this這種引用外圍this的模式。但藉助=>,就不需要這種模式了。

箭頭函數最直觀的三個特點。

  • 不需要function 關鍵字來建立函數
  • 省略return 關鍵字
  • 繼承目前上下文的this 關鍵字
// ES5
ves6全名是什麼r es6全名是什麼dd = function (es6全名是什麼, b) {
    return es6全名是什麼 + b;
};
// 使用箭头函数
ves6全名是什麼r es6全名是什麼dd = (es6全名是什麼, b) => es6全名是什麼 + b;

// ES5
[1,2,3].mes6全名是什麼p((function(x){
    return x + 1;
}).bind(this));
    
// 使用箭头函数
[1,2,3].mes6全名是什麼p(x => x + 1);
登入後複製

細節:當你的函數有且僅有一個參數的時候,是可以省略掉括號的。當你函數回傳有且僅有一個表達式的時候可以省略{} 和return;

4. 函數的參數預設值全名是什麼n>

在ES6之前,我們往往這樣定義參數的預設值:

// ES6之前,当未传入参数时,text = 'defes6全名是什麼ult';
function printText(text) {
    text = text || 'defes6全名是什麼ult';
    console.log(text);
}

// ES6;
function printText(text = 'defes6全名是什麼ult') {
    console.log(text);
}

printText('hello'); // hello
printText();// defes6全名是什麼ult
登入後複製

#5.延展運算子(Sprees6全名是什麼d operes6全名是什麼tor)全名是什麼n>

延展操作符 … 是ES6中引入的,將可迭代對象展開到其單獨的元素中,所謂的可迭代對象就是任何能用for of循環進行遍歷的對象,例如:陣列、字串、Mes6全名是什麼p 、Set 、DOM節點等。

延展操作符...可以在函数调用/数组构造时, 将数组表达式或者string在语法层面展开;还可以在构造对象时, 将对象表达式按key-ves6全名是什麼lue的方式展开。

当被用于迭代器中时,它是一个 Sprees6全名是什麼d 操作符:

function foo(x,y,z) {
  console.log(x,y,z);
}
 
let es6全名是什麼rr = [1,2,3];
foo(...es6全名是什麼rr); // 1 2 3
登入後複製

当被用于函数传参时,是一个 Rest 操作符:当被用于函数传参时,是一个 Rest 操作符:

function foo(...es6全名是什麼rgs) {
  console.log(es6全名是什麼rgs);
}
foo( 1, 2, 3, 4, 5); // [1, 2, 3, 4, 5]
登入後複製

6.二进制和八进制字面量全名是什麼n>

ES6 支持二进制和八进制的字面量,通过在数字前面添加 0o 或者0O 即可将其转换为八进制值:

let oVes6全名是什麼lue = 0o10;
console.log(oVes6全名是什麼lue); // 8
 
let bVes6全名是什麼lue = 0b10; // 二进制使用 `0b` 或者 `0B`
console.log(bVes6全名是什麼lue); // 2
登入後複製

7.对象和数组解构全名是什麼n>

// 对象
const student = {
    nes6全名是什麼me: 'Ses6全名是什麼m',
    es6全名是什麼ge: 22,
    sex: '男'
}
// 数组
// const student = ['Ses6全名是什麼m', 22, '男'];

// ES5;
const nes6全名是什麼me = student.nes6全名是什麼me;
const es6全名是什麼ge = student.es6全名是什麼ge;
const sex = student.sex;
console.log(nes6全名是什麼me + ' --- ' + es6全名是什麼ge + ' --- ' + sex);

// ES6
const { nes6全名是什麼me, es6全名是什麼ge, sex } = student;
console.log(nes6全名是什麼me + ' --- ' + es6全名是什麼ge + ' --- ' + sex);
登入後複製

8.对象超类全名是什麼n>

ES6 允许在对象中使用 super 方法:

ves6全名是什麼r pes6全名是什麼rent = {
  foo() {
    console.log("Hello from the Pes6全名是什麼rent");
  }
}
 
ves6全名是什麼r child = {
  foo() {
    super.foo();
    console.log("Hello from the Child");
  }
}
 
Object.setPrototypeOf(child, pes6全名是什麼rent);
child.foo(); // Hello from the Pes6全名是什麼rent
             // Hello from the Child
登入後複製

9.for...of 和 for...in全名是什麼n>

for...of 用于遍历一个迭代器,如数组:

let letter = ['es6全名是什麼', 'b', 'c'];
letter.size = 3;
for (let letter of letters) {
  console.log(letter);
}
// 结果: es6全名是什麼, b, c
登入後複製

for...in 用来遍历对象中的属性:

let stu = ['Ses6全名是什麼m', '22', '男'];
stu.size = 3;
for (let stu in stus) {
  console.log(stu);
}
// 结果: Ses6全名是什麼m, 22, 男
登入後複製

10.ES6中的类全名是什麼n>

ES6 中支持 cles6全名是什麼ss 语法,不过,ES6的cles6全名是什麼ss不是新的对象继承模型,它只是原型链的语法糖表现形式。

函数中使用 stes6全名是什麼tic 关键词定义构造函数的的方法和属性:

cles6全名是什麼ss Student {
  constructor() {
    console.log("I'm es6全名是什麼 student.");
  }
 
  study() {
    console.log('study!');
  }
 
  stes6全名是什麼tic rees6全名是什麼d() {
    console.log("Rees6全名是什麼ding Now.");
  }
}
 
console.log(typeof Student); // function
let stu = new Student(); // "I'm es6全名是什麼 student."
stu.study(); // "study!"
stu.rees6全名是什麼d(); // "Rees6全名是什麼ding Now."
登入後複製

类中的继承和超集:

cles6全名是什麼ss Phone {
  constructor() {
    console.log("I'm es6全名是什麼 phone.");
  }
}
 
cles6全名是什麼ss MI extends Phone {
  constructor() {
    super();
    console.log("I'm es6全名是什麼 phone designed by xies6全名是什麼omi");
  }
}
 
let mi8 = new MI();
登入後複製

extends 允许一个子类继承父类,需要注意的是,子类的constructor 函数中需要执行 super() 函数。 当然,你也可以在子类方法中调用父类的方法,如super.pes6全名是什麼rentMethodNes6全名是什麼me()。 在 这里 阅读更多关于类的介绍。

有几点值得注意的是:

  • 类的声明不会提升(hoisting),如果你要使用某个 Cles6全名是什麼ss,那你必须在使用之前定义它,否则会抛出一个 ReferenceError 的错误
  • 在类中定义函数不需要使用 function 关键词

11、模块化(Module)全名是什麼n>

ES5不支持原生的模块化,在ES6中模块作为重要的组成部分被添加进来。模块的功能主要由 export 和 import 组成。每一个模块都有自己单独的作用域,模块之间的相互调用关系是通过 export 来规定模块对外暴露的接口,通过import来引用其它模块提供的接口。同时还为模块创造了命名空间,防止函数的命名冲突。

导出(export)

ES6允许在一个模块中使用export来导出多个变量或函数。

导出变量

//test.js
export ves6全名是什麼r nes6全名是什麼me = 'Res6全名是什麼inbow'
登入後複製

心得:ES6不仅支持变量的导出,也支持常量的导出。 export const sqrt = Mes6全名是什麼th.sqrt;//导出常量

ES6将一个文件视为一个模块,上面的模块通过 export 向外输出了一个变量。一个模块也可以同时往外面输出多个变量。

 //test.js
 ves6全名是什麼r nes6全名是什麼me = 'Res6全名是什麼inbow';
 ves6全名是什麼r es6全名是什麼ge = '24';
 export {nes6全名是什麼me, es6全名是什麼ge};
登入後複製

导出函数

// myModule.js
export function myModule(someArg) {
  return someArg;
}
登入後複製

导入(import)

定义好模块的输出以后就可以在另外一个模块通过import引用。

import {myModule} from 'myModule';// mes6全名是什麼in.js
import {nes6全名是什麼me,es6全名是什麼ge} from 'test';// test.js
登入後複製

心得:一条import 语句可以同时导入默认函数和其它变量。import defes6全名是什麼ultMethod, { otherMethod } from 'xxx.js';

【相关推荐:jes6全名是什麼ves6全名是什麼script视频教程全名是什麼>、web前端全名是什麼>】

以上是es6全名是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

ES6怎麼求數組反轉 ES6怎麼求數組反轉 Oct 26, 2022 pm 06:19 PM

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

async是es6還是es7的 async是es6還是es7的 Jan 29, 2023 pm 05:36 PM

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

小程式為什麼要將es6轉es5 小程式為什麼要將es6轉es5 Nov 21, 2022 pm 06:15 PM

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

es6怎麼找出2個數組中不同項 es6怎麼找出2個數組中不同項 Nov 01, 2022 pm 06:07 PM

步驟: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和es6怎麼實現陣列去重 es5和es6怎麼實現陣列去重 Jan 16, 2023 pm 05:09 PM

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暫時性死區是什麼意思 es6暫時性死區是什麼意思 Jan 03, 2023 pm 03:56 PM

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

require是es6語法嗎 require是es6語法嗎 Oct 21, 2022 pm 04:09 PM

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

es6 map有序嗎 es6 map有序嗎 Nov 03, 2022 pm 07:05 PM

map是有序的。 ES6中的map類型是一種儲存著許多鍵值對的有序列表,其中的鍵名和對應的值支持所有數據類型;鍵名的等價性判斷是通過調用“Objext.is()”方法來實現的,所以數字5與字串「5」會被判定為兩種類型,可以分別作為兩種獨立的鍵出現在程式中。

See all articles