iT邦幫忙

2024 iThome 鐵人賽

DAY 18
0

時隔 6 年在 2015 年推出的 ES6 出現了許多影響現代 Coding 的功能,這邊來慢慢介紹吧

  1. let 和 const:在 ES6 時添加了兩個宣告變數的方式,其中 let 的聲明的變數可以做修改,而 const 不行,並且兩者的作用域都為塊級,也就是被包在同一組大括號內才能夠呼叫到他,兩者也都無法在同樣的作用域內重複宣告,並且有別於 var 的 hosting,let 和 const 在同樣的作用域內還沒初始化時就呼叫會吃到 ReferenceError
if (true) {
  let x = 10; // x 只在這個 if 塊內有效
  var y = 20; // y 在整個函數或全局範圍內有效
}
console.log(x); // ReferenceError: x is not defined
console.log(y); // 輸出: 20
  1. 模板字符串:在 ES6 之前若要連結字串和變數需要透過 + 號來拼接,現在我們可以簡單透過反引號來撰寫了,並且也支持多行字串
const name = "john";
const greeting = `Heelo, ${name}!`;
const templateString = `
Hello,
Emma
` // '\nHello,\nEmma\n'
  1. 箭頭函數:箭頭函數提供一個更簡潔的寫法,並且有別於一般函式,他的 this 是靜態綁定的,與外部上下文保持一致
const add = (a, b) => a + b
// 同等於
const addOldFunc = function(a, b){
  return a + b
}
  1. 模組:在 ES6 推出了模組的概念後,我們可以透過 export 將變數導出,在其他檔案透過 import 拉進來
// math.js
export const add = (a, b) => a + b;

// main.js
import { add } from './math';
console.log(add(2, 3));
  1. 解構賦值:解構賦值可以輕鬆地從對象或數組中提取值,並賦值給變量
const obj = { a: 1, b: 2 };
const { a, b } = obj;

const arr = [1, 2, 3];
const [x, y] = arr;
  1. 函式默認參數:在函式定義時可以為參數指定默認值,當調用函式時未傳遞該參數,會使用默認值
function greet(name = "Guest") {
  return `Hello, ${name}!`;
}
  1. 展開運算符:展開運算符用於展開數組或對象,並且可以在不確定原先的內容有多少的時候直接全部拉進來
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5];

const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, c: 3 };
  1. Promise:Promise 主要用來處理非同步的操作,他提供了更加清晰的方式來處理操作的成功或失敗
const fetchData = () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve("Data fetched");
    }, 1000);
  });
};

fetchData().then(data => console.log(data));
  1. class 操作:前幾篇提到的 class 同樣也是一個影響深遠的功能,透過 class 的操作可以讓我們更加清晰的操作屬性。

上一篇
Day17:ES5(下)
下一篇
Day19:ES2016、ES2017
系列文
重新認識 FrontEnd30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言