Apa yang baharu dalam es6

Apr 13, 2022 pm 02:27 PM
es6 Ciri-ciri baru

Ciri baharu es6: 1. Gunakan const dan biarkan untuk mengisytiharkan pembolehubah, kedua-dua pembolehubah adalah skop peringkat blok 2. Rentetan templat, sintaks "`rentetan`" membenarkan penggabungan rentetan Lebih ringkas; fungsi, yang boleh menyelesaikan masalah penunjuk ini;

Apa yang baharu dalam es6

Persekitaran pengendalian tutorial ini: sistem Windows 7, ECMAScript versi 6, komputer Dell G3.

ECMAScript 6 (ES6) pada asasnya telah menjadi standard industri Popularitinya jauh lebih pantas daripada ES5 Sebab utama ialah penyemak imbas moden menyokong ES6 dengan sangat cepat, terutamanya pelayar Chrome dan Firefox, yang sudah menyokong Kebanyakan ciri ES6.

Berikut ialah penjelasan terperinci tentang ciri ES6 baharu yang biasa digunakan:

1 Pengisytiharan pembolehubah yang berbeza: const dan let

Sebelum ini, JS tidak mempunyai skop tahap blok dan biarkan mengisi jurang yang mudah ini.

ES6 mengesyorkan menggunakan let untuk mengisytiharkan pembolehubah tempatan, berbanding dengan var sebelumnya (tidak kira di mana ia diisytiharkan, ia akan dianggap sebagai diisytiharkan di bahagian atas fungsi) Perbezaan antara pengisytiharan let dan var:

var x = '全局变量';
{
  let x = '局部变量';
  console.log(x); // 局部变量
}
console.log(x); // 全局变量
Salin selepas log masuk

let bermaksud mengisytiharkan pembolehubah, manakala const bermaksud mengisytiharkan pemalar kedua-duanya adalah skop peringkat blok yang diisytiharkan oleh const akan dianggap pemalar, yang bermaksud bahawa Sekali nilai ditetapkan, ia tidak boleh diubah suai:

const a = 1
a = 0 //报错
Salin selepas log masuk

Jika const ialah objek, nilai yang terkandung dalam objek boleh diubah suai. Untuk meletakkannya secara lebih abstrak, cukuplah alamat yang ditunjukkan oleh objek tidak berubah:

const student = { name: 'cc' }

student.name = 'yy';// 不报错
student  = { name: 'yy' };// 报错
Salin selepas log masuk

Ada beberapa perkara yang perlu diperhatikan:

  • Pembolehubah yang diisytiharkan oleh kata kunci let tidak Dengan ciri angkat pembolehubah
  • pengisytiharan let dan const hanya sah dalam blok terdekat (dalam pendakap kerinting)
  • Apabila menggunakan pengisytiharan const malar, sila gunakan huruf besar pembolehubah, seperti : CAPITAL_CASING
  • const mesti diberikan pada masa pengisytiharan

rentetan templat

Sebelum ES6, kami sering mengendalikan rentetan templat seperti ini: Gunakan "" dan " " untuk membina templat

$("body").html("This demonstrates the output of HTML \
content to the page, including student's\
" + name + ", " + seatNumber + ", " + sex + " and so on.");
Salin selepas log masuk

dan untuk ES6

  • pemformatan rentetan asas. Benamkan ungkapan dalam rentetan untuk penyatuan. Gunakan ${} untuk mentakrifkan;

  • ES6 backtick (``) boleh dilakukan secara terus; penyambungan adalah lebih ringkas dan intuitif.

3. Fungsi Anak Panah
$("body").html(`This demonstrates the output of HTML content to the page, 
including student's ${name}, ${seatNumber}, ${sex} and so on.`);
Salin selepas log masuk

Ini adalah salah satu ciri yang paling menarik dalam ES6. bukan sekadar singkatan untuk fungsi kata kunci, ia juga membawa faedah lain. Fungsi anak panah berkongsi perkara yang sama dengan kod yang mengelilinginya, yang boleh membantu anda menyelesaikan masalah penunjuk ini. Pembangun JavaScript yang berpengalaman biasa dengan corak seperti atau

yang merujuk kepada perkara ini. Tetapi dengan =>, corak ini tidak diperlukan lagi.

=>Tiga ciri paling intuitif bagi fungsi anak panah. var self = this;var that = this

Kata kunci fungsi tidak diperlukan untuk mencipta fungsi

Abaikan kata kunci kembali
  • Warisi kata kunci ini dalam konteks semasa
Butiran: Apabila fungsi anda mempunyai satu dan hanya satu parameter, anda boleh meninggalkan kurungan. Apabila fungsi anda mengembalikan satu dan hanya satu ungkapan, anda boleh meninggalkan {} dan mengembalikan; >Sebelum ES6, kami sering mentakrifkan nilai lalai parameter seperti ini:
// ES5
var add = function (a, b) {
    return a + b;
};
// 使用箭头函数
var add = (a, b) => a + b;

// ES5
[1,2,3].map((function(x){
    return x + 1;
}).bind(this));
    
// 使用箭头函数
[1,2,3].map(x => x + 1);
Salin selepas log masuk

5 Operator spread (Pengendali spread)

< . , Set, nod DOM, dsb. Anda boleh mengembangkan ungkapan tatasusunan atau rentetan pada peringkat sintaks semasa panggilan fungsi/pembinaan tatasusunan anda juga boleh mengembangkan ungkapan objek dalam istilah nilai kunci semasa membina objek.

Apabila digunakan dalam iterator, ia ialah operator Spread:
// ES6之前,当未传入参数时,text = &#39;default&#39;;
function printText(text) {
    text = text || &#39;default&#39;;
    console.log(text);
}

// ES6;
function printText(text = &#39;default&#39;) {
    console.log(text);
}

printText(&#39;hello&#39;); // hello
printText();// default
Salin selepas log masuk

Apabila digunakan dalam parameter fungsi, ia ialah operator Rehat: Apabila Apabila digunakan untuk menghantar parameter kepada fungsi , ia ialah operator Rehat:

6. Literal binari dan oktal

延展操作符 …

延展操作符...ES6 menyokong literal binari dan oktal, yang boleh ditukar kepada nilai perlapanan dengan menambah 0o atau 0O di hadapan nombor:

function foo(x,y,z) {
  console.log(x,y,z);
}
 
let arr = [1,2,3];
foo(...arr); // 1 2 3
Salin selepas log masuk

7. Pemusnahan Objek dan tatasusunan

function foo(...args) {
  console.log(args);
}
foo( 1, 2, 3, 4, 5); // [1, 2, 3, 4, 5]
Salin selepas log masuk

8 Kelas super objek

ES6 membenarkan penggunaan kaedah super dalam objek:
let oValue = 0o10;
console.log(oValue); // 8
 
let bValue = 0b10; // 二进制使用 `0b` 或者 `0B`
console.log(bValue); // 2
Salin selepas log masuk
<. 🎜>

9.untuk...daripada dan untuk...dalam

untuk...daripada digunakan untuk melintasi iterator, Seperti tatasusunan:
// 对象
const student = {
    name: &#39;Sam&#39;,
    age: 22,
    sex: &#39;男&#39;
}
// 数组
// const student = [&#39;Sam&#39;, 22, &#39;男&#39;];

// ES5;
const name = student.name;
const age = student.age;
const sex = student.sex;
console.log(name + &#39; --- &#39; + age + &#39; --- &#39; + sex);

// ES6
const { name, age, sex } = student;
console.log(name + &#39; --- &#39; + age + &#39; --- &#39; + sex);
Salin selepas log masuk
let letter = [&#39;a&#39;, &#39;b&#39;, &#39;c&#39;];
letter.size = 3;
for (let letter of letters) {
  console.log(letter);
}
// 结果: a, b, c
Salin selepas log masuk

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

let stu = [&#39;Sam&#39;, &#39;22&#39;, &#39;男&#39;];
stu.size = 3;
for (let stu in stus) {
  console.log(stu);
}
// 结果: Sam, 22, 男
Salin selepas log masuk

10.ES6中的类

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

函数中使用 static 关键词定义构造函数的的方法和属性:

class Student {
  constructor() {
    console.log("I&#39;m a student.");
  }
 
  study() {
    console.log(&#39;study!&#39;);
  }
 
  static read() {
    console.log("Reading Now.");
  }
}
 
console.log(typeof Student); // function
let stu = new Student(); // "I&#39;m a student."
stu.study(); // "study!"
stu.read(); // "Reading Now."
Salin selepas log masuk

类中的继承和超集:

class Phone {
  constructor() {
    console.log("I&#39;m a phone.");
  }
}
 
class MI extends Phone {
  constructor() {
    super();
    console.log("I&#39;m a phone designed by xiaomi");
  }
}
 
let mi8 = new MI();
Salin selepas log masuk

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

有几点值得注意的是:

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

11、模块化(Module)

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

导出(export)

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

导出变量

//test.js
export var name = &#39;Rainbow&#39;
Salin selepas log masuk

心得:ES6不仅支持变量的导出,也支持常量的导出。 export const sqrt = Math.sqrt;//导出常量

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

 //test.js
 var name = &#39;Rainbow&#39;;
 var age = &#39;24&#39;;
 export {name, age};
Salin selepas log masuk

导出函数

// myModule.js
export function myModule(someArg) {
  return someArg;
}
Salin selepas log masuk

导入(import)

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

import {myModule} from &#39;myModule&#39;;// main.js
import {name,age} from &#39;test&#39;;// test.js
Salin selepas log masuk

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

【相关推荐:javascript视频教程web前端

Atas ialah kandungan terperinci Apa yang baharu dalam es6. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Adakah async untuk es6 atau es7? Adakah async untuk es6 atau es7? Jan 29, 2023 pm 05:36 PM

async ialah es7. async dan await ialah penambahan baharu kepada ES7 dan merupakan penyelesaian untuk operasi asynchronous/wait boleh dikatakan sebagai gula sintaktik untuk modul bersama dan fungsi penjana, menyelesaikan kod tak segerak dengan semantik yang lebih jelas. Seperti namanya, async bermaksud "tak segerak".

Bagaimana untuk melaksanakan deduplikasi tatasusunan dalam es5 dan es6 Bagaimana untuk melaksanakan deduplikasi tatasusunan dalam es5 dan es6 Jan 16, 2023 pm 05:09 PM

Dalam es5, anda boleh menggunakan fungsi for dan indexOf() untuk mencapai deduplikasi tatasusunan Sintaks "for(i=0;i<array length;i++){a=newArr.indexOf(arr[i]);if(. a== -1){...}}". Dalam es6, anda boleh menggunakan operator spread, Array.from() dan Set untuk mengalih keluar penduaan anda perlu terlebih dahulu menukar tatasusunan menjadi objek Set untuk mengalih keluar pendua, dan kemudian menggunakan fungsi spread atau Array.from() untuk tukar objek Set kembali kepada kumpulan Just.

PHP 8.3 dikeluarkan: ciri baharu sepintas lalu PHP 8.3 dikeluarkan: ciri baharu sepintas lalu Nov 27, 2023 pm 12:52 PM

PHP8.3 dikeluarkan: Gambaran keseluruhan ciri baharu Memandangkan teknologi terus berkembang dan memerlukan perubahan, bahasa pengaturcaraan sentiasa dikemas kini dan dipertingkatkan. Sebagai bahasa skrip yang digunakan secara meluas dalam pembangunan web, PHP sentiasa bertambah baik untuk menyediakan pembangun alat yang lebih berkuasa dan cekap. Versi PHP 8.3 yang dikeluarkan baru-baru ini membawakan banyak ciri dan penambahbaikan baharu yang telah lama ditunggu-tunggu Mari kita lihat gambaran keseluruhan ciri baharu ini. Permulaan sifat bukan nol Dalam versi PHP yang lalu, jika harta kelas tidak diberikan nilai secara eksplisit, nilainya

Adakah import es6 akan menggalakkan pembolehubah? Adakah import es6 akan menggalakkan pembolehubah? Jan 18, 2023 pm 07:44 PM

Import ES6 akan menyebabkan promosi berubah-ubah. Pengangkat boleh ubah ialah promosi pengisytiharan berubah-ubah ke awal skopnya. js perlu melalui fasa kompilasi dan pelaksanaan Semasa fasa kompilasi, semua pengisytiharan pembolehubah akan dikumpul dan pembolehubah diisytiharkan terlebih dahulu, manakala penyataan lain tidak akan mengubah susunannya, semasa fasa penyusunan, langkah pertama sudah dilaksanakan, dan bahagian kedua dilaksanakan hanya apabila pernyataan dilaksanakan dalam fasa pelaksanaan.

Panduan untuk mempelajari ciri baharu PHP8 dan mendapatkan pemahaman yang mendalam tentang teknologi terkini Panduan untuk mempelajari ciri baharu PHP8 dan mendapatkan pemahaman yang mendalam tentang teknologi terkini Dec 23, 2023 pm 01:16 PM

Analisis mendalam tentang ciri baharu PHP8 untuk membantu anda menguasai teknologi terkini Seiring berjalannya waktu, bahasa pengaturcaraan PHP sentiasa berkembang dan bertambah baik. Versi PHP8 yang dikeluarkan baru-baru ini menyediakan pembangun dengan banyak ciri dan penambahbaikan baharu yang menarik, membawa lebih banyak kemudahan dan kecekapan kepada kerja pembangunan kami. Dalam artikel ini, kami akan menganalisis ciri baharu PHP8 secara mendalam dan memberikan contoh kod khusus untuk membantu anda menguasai teknologi terkini ini dengan lebih baik. Pengkompil JIT PHP8 memperkenalkan kompilasi JIT (Just-In-Time).

Bagaimana untuk menentukan bilangan item yang terdapat dalam tatasusunan dalam es6 Bagaimana untuk menentukan bilangan item yang terdapat dalam tatasusunan dalam es6 Jan 18, 2023 pm 07:22 PM

Dalam es6, anda boleh menggunakan atribut panjang objek tatasusunan untuk menentukan bilangan item yang terdapat dalam tatasusunan, iaitu, untuk mendapatkan bilangan elemen dalam tatasusunan ini boleh mengembalikan bilangan elemen dalam tatasusunan, hanya gunakan pernyataan "array.length" Mengembalikan nilai yang mewakili bilangan elemen objek tatasusunan, iaitu nilai panjang.

Apakah neraka panggilan balik es6? Apakah neraka panggilan balik es6? Feb 14, 2023 pm 02:58 PM

Dalam es6, panggilan balik adalah fungsi panggil balik berbilang lapisan yang bersarang di antara satu sama lain, iaitu, fungsi panggil balik bersarang dalam fungsi panggil balik, ia adalah operasi yang berlaku untuk mencapai pelaksanaan kod berurutan, yang akan menjadikan kod kami sangat mudah dibaca untuk dikekalkan nanti. Janji digunakan dalam es6 untuk menyelesaikan masalah neraka panggilan balik.

Bagaimana untuk menukar rentetan kepada huruf besar dalam es6 Bagaimana untuk menukar rentetan kepada huruf besar dalam es6 Feb 15, 2023 am 11:56 AM

Kaedah penukaran: 1. Gunakan fungsi toUpperCase() untuk menukar rentetan kepada huruf besar, sintaksnya ialah "string.toUpperCase()" 2. Gunakan fungsi toLocaleUpperCase() untuk menukar rentetan kepada huruf besar, sintaksnya ialah "rentetan. toLocaleUpperCase()"; 3. , gunakan fungsi slice(), toUpperCase(), toLowerCase() dan aksara penyambung rentetan "+" untuk menetapkan huruf pertama menjadi huruf besar.

See all articles