js版本ES6、ES7、ES8、ES9、ES10、ES11、ES12、ES13、ES14[2023]新特性

ES全稱ECMAScript,ECMAScript是ECMA制定的標準化腳本語言,本文講述Javascript[ECMAScript]版本ES6、ES7、ES8、ES9、ES10、ES11、ES12、ES13、ES14[2023]的新特性,幫助朋友們更好的熟悉和使用Javascript

ES5

1.嚴格模式

use strict

2.Object

   getPrototypeOf,返回一個對象的原型getOwnPropertyDescriptor,返回某個對象自有屬性的屬性描述符getOwnPropertyNames,返回一個數組,包括對象所有自由屬性名稱集合(包括不可枚舉的屬性)hasOwnProperty,給定屬性存在于對象實例中,返回 trueisPrototypeOf,在原型鏈中出現過的原型,返回 truecreate,創建一個擁有指定原型和若干指定屬性的對象defineProperty,為對象定義一個新屬性,或者修改已有的屬性,并對屬性重新設置 getter 和 setter,這里可以被用作數據綁定的對象劫持用途defineProperties,在一個對象上添加或修改一個或者多個自有屬性,與 defineProperty 類似seal,鎖定對象,阻止修改現有屬性的特性,并阻止添加新屬性,但是可以修改已有屬性的值freeze,凍結對象,阻止對對象的一切操作和更改,凍結對象將變成只讀preventExtensions,讓一個對象變得不可以擴展,也就是不能再添加新的屬性isSealed,判斷對象是否被鎖定isFrozen,判斷對象是否被凍結isExtensible,判斷對象是否可以被擴展keys,返回一個由給定對象的所有可以枚舉自身屬性的屬性名組成的數組

3.Array

Array.isArray,確定某個值到底是不是數組,不管它在哪個全局執行環境中創建push,接收任意數量的參數,把它們逐個添加到數組末尾,并返回修改后數組的長度pop,在數組尾部移除最后一項,減少數組的 length 值,然后返回移除的項shift,移除數組中的第一項并返回該項,同時將數組長度減 1unshift,在數組前端添加任意個項,并返回新數組的長度reverse,反轉數組項的順序,返回排序后的數組sort,默認情況下,按升序排序數組項,返回排序后的數組concat,創建當前數組的一個副本,將接收到的參數添加到這個副本的末尾,返回新構建的數組join,用指定的字符拼接數組,返回拼接好的字符串slice,基于當前數組中的一個或多個創建一個新數組,不影響原始數組splice,根據傳入參數不同,可以刪除、插入、替換數組元素,返回一個數組,該數組中包含從原始數組中刪除的項,如果沒有刪除任何項,則返回空數組indexOf,返回根據給定元素找到的第一個索引值,如果不存在則返回 -1lastIndexOf,返回指定元素在數組中的最后一個索引值,如果不存在則返回 -1every ,對數組中的每一項運行給定函數 ,如果該函數對每一項都返回 true,則返回 truefilter,對數組中的每一項運行給定函數 ,返回該函數會返回 true 的項組成的數組forEach,對數組中的每一項運行給定函數,沒有返回值map,對數組中的每一項運行給定函數,返回每次函數調用的結果組成的數組some,對數組中的每一項運行給定函數,如果函數對任一項返回 true,則返回 truereduce,接收一個函數作為累加器,數組中的每個值(從左到右)開始縮減,最終縮減為一個值reduceRight,接收一個函數作為累加器,數組中的每個值(從右到左)開始縮減,最終縮減為一個值

4.String

charAt,訪問字符串中特定字符,返回給定位置的字符charCodeAt,訪問字符串中特定字符,返回給定位置的字符的字符編碼concat,將一個或多個字符串拼接起來,返回拼接得到的新字符串match,查找匹配的字符串,返回一個數組search,查找匹配的字符串,返回匹配項的索引,沒有找到,返回 -1replace,替換字符串split,基于指定的分隔符將一個字符串分割成多個字符串,將結果放在一個數組中,并返回trim,創建一個字符串的副本,刪除前置及后綴的所有空格,然后返回結果localeCompare,比較兩個字符串slice,返回被操作字符串的一個子字符串substr,返回被操作字符串的一個子字符串substring,返回被操作字符串的一個子字符串

注意:slice、substr、substring 都接受一個或兩個參數,第一個參數指定字符串的開始位置,第二個參數表示子字符串到哪里結束,slice 和 substring 的第二個參數指定的是子字符串的最后一個字符后面的位置,substr 第二個參數指定的是返回的字符個數,如果沒有傳遞第二個參數,則將字符串的末尾作為結束位置。

5.Function

 	arguments.callee,該屬性是一個指針,指向擁有這個 arguments 對象的函數arguments.caller,該屬性保存著調用當前函數的函數的引用apply,在特定的作用域中調用函數,第一個參數是在其中運行函數的作用域,第二個是參數數組call,在特定的作用域中調用函數,第一個參數是在其中運行函數的作用域,其余參數直接傳遞給函數bind,創建一個函數的實例,其 this 值會被綁定到傳給 bind 函數的值

6.JSON

	JSON.parse,解析字符串為 JSON 對象JSON.stringify,解析 JSON 對象為字符串JSON.valueOf,獲取某個JSON 對象中的值JSON.toString,被調用時,會調用 Object 原型上的 toString 方法,會獲的 JSON 對象的值并轉為字符串,如果沒有具體的值,則返回原型數組JSON.toLocaleString,也是Object 原型上的方法,經常會返回與 toString 相同內容,但是對于 Date 對象,則會返回格式化的時間字符串

7.其他

  Date.now,返回當前時間戳Date.toJSON,將 Date 對象轉換為字符串,格式為 JSON 日期Math.min,確定一組數值中的最小值Math.max,確定一組數值中的最大值Math.random,返回大于 0 小于 1 的一個隨機數Number.prototype.toFixed,按照指定的小數位返回數值的字符串表示

ES6(2015)

1.類

class Man {constructor(name) {this.name = '你好世界';}console() {console.log(this.name);}
}
const man = new Man('你好世界');
man.console(); // 你好世界
創建類的幾種方法:在 JavaScript 中,創建類有幾種不同的方式。以下是幾種常見的方法:
1. 使用 class 關鍵字(ES6+)這是 ES6 引入的一種標準語法來創建類,語法簡潔易懂。javascript
class Person {constructor(name, age) {this.name = name;this.age = age;}greet() {console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);}
}const person = new Person('Alice', 30);
person.greet();  // 輸出: Hello, my name is Alice and I am 30 years old.2. 使用函數構造器(傳統方式)在 ES6 之前,使用函數構造器來模擬類。函數構造器通過 new 關鍵字來創建實例,并通過原型鏈定義方法。javascript
function Person(name, age) {this.name = name;this.age = age;
}Person.prototype.greet = function() {console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
};const person = new Person('Bob', 25);
person.greet();  // 輸出: Hello, my name is Bob and I am 25 years old.3. 使用 Object.create() 和構造函數通過 Object.create() 可以創建一個對象并設置它的原型,進而模擬類的行為。javascript
const PersonPrototype = {greet: function() {console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);}
};function Person(name, age) {const obj = Object.create(PersonPrototype);obj.name = name;obj.age = age;return obj;
}const person = Person('Charlie', 40);
person.greet();  // 輸出: Hello, my name is Charlie and I am 40 years old.4. 使用 class 和繼承(ES6+)ES6 的 class 語法支持繼承,可以通過 extends 關鍵字來實現。javascript
class Animal {constructor(name) {this.name = name;}speak() {console.log(`${this.name} makes a noise.`);}
}class Dog extends Animal {constructor(name) {super(name);  // 調用父類的構造函數}speak() {console.log(`${this.name} barks.`);}
}const dog = new Dog('Rex');
dog.speak();  // 輸出: Rex barks.5. 使用 ES6 class 和靜態方法class 還支持靜態方法,這些方法不會被實例化,而是直接在類本身上調用。javascript
class Calculator {static add(a, b) {return a + b;}static subtract(a, b) {return a - b;}
}console.log(Calculator.add(5, 3));  // 輸出: 8
console.log(Calculator.subtract(5, 3));  // 輸出: 26. 使用 ES5 構造函數結合原型鏈和靜態方法在傳統的 ES5 中,也可以通過原型鏈結合靜態方法來模擬類的功能。function Car(make, model) {this.make = make;this.model = model;
}Car.prototype.drive = function() {console.log(`${this.make} ${this.model} is driving.`);
};Car.getBrand = function() {return 'Generic Car Brand';
};const car = new Car('Toyota', 'Camry');
car.drive();  // 輸出: Toyota Camry is driving.
console.log(Car.getBrand());  // 輸出: Generic Car Brand

2.模塊化(ES Module)

// 模塊 A 導出一個方法
export const sub = (a, b) => a + b;
// 模塊 B 導入使用
import { sub } from './A';
console.log(sub(1, 2)); // 3

3.箭頭(Arrow)函數

const func = (a, b) => a + b;
func(1, 2); // 3箭頭函數(Arrow Function)是 JavaScript 中一種簡化函數寫法的語法,它使用 => 符號來定義函數。箭頭函數提供了一種更簡潔的方式來定義匿名函數,同時也改變了 this 關鍵字的行為。
基本語法javascript
const functionName = (parameters) => {// 函數體
};示例
1. 簡單的箭頭函數javascript
const add = (a, b) => {return a + b;
};console.log(add(2, 3));  // 輸出: 52. 單行箭頭函數(隱式返回)如果箭頭函數的主體只有一個表達式,可以省略 return 關鍵字,并且該表達式的值會被自動返回。javascript
const add = (a, b) => a + b;console.log(add(2, 3));  // 輸出: 53. 無參數的箭頭函數如果沒有參數,仍然需要一個空的括號。javascript
const greet = () => console.log('Hello!');greet();  // 輸出: Hello!4. 只有一個參數的箭頭函數如果函數只有一個參數,可以省略括號。javascript
const square = x => x * x;console.log(square(5));  // 輸出: 25箭頭函數的特點
1. this 綁定箭頭函數最顯著的特點是它不會創建自己的 this,而是繼承外部上下文中的 this。這意味著箭頭函數中的 this 與外部的 this 相同,而常規函數會根據調用的上下文來決定 this。javascript
// 使用常規函數時,`this` 指向的是調用函數的對象
function Person(name) {this.name = name;
}Person.prototype.greet = function() {console.log(`Hello, ${this.name}`);
};const john = new Person('John');
john.greet();  // 輸出: Hello, John// 使用箭頭函數時,`this` 繼承自外部環境
function Person(name) {this.name = name;setTimeout(() => {console.log(`Hello, ${this.name}`);}, 1000<

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/71621.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/71621.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/71621.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Redis數據結構-String字符串

1.String字符串 字符串類型是Redis中最基礎的數據結構&#xff0c;關于數據結構與要特別注意的是&#xff1a;首先Redis中所有的鍵的類型都是字符串類型&#xff0c;而且其他集中數據結構也都是在字符串類似基礎上進行構建&#xff0c;例如列表和集合的元素類型是字符串類型&a…

cline通過硅基流動平臺接入DeepSeek-R1模型接入指南

為幫助您更高效、安全地通過硅基流動平臺接入DeepSeek-R1模型&#xff0c;以下為優化后的接入方案&#xff1a; DeepSeek-R1硅基流動平臺接入指南 &#x1f4cc; 核心優勢 成本低廉&#xff1a;注冊即送2000萬Tokens&#xff08;價值約14元&#xff09;高可用性&#xff1a;規…

Java多線程三:補充知識

精心整理了最新的面試資料&#xff0c;有需要的可以自行獲取 點擊前往百度網盤獲取 點擊前往夸克網盤獲取 Lambda表達式 簡介&#xff1a; 希臘字母表中排序第十一位的字母&#xff0c;英語名稱為Lambda避免匿名內部類定義過多其實質屬于函數式編程的概念 為什么要使用lam…

裝修流程圖: 裝修前準備 → 設計階段 → 施工階段 → 安裝階段 → 收尾階段 → 入住

文章目錄 引言I 毛坯房裝修的全流程**1. 裝修前準備****1.1 確定裝修預算****1.2 選擇裝修方式****1.3 選擇裝修公司****1.4 辦理裝修手續****2. 設計階段****2.1 量房****2.2 設計方案****2.3 確認方案****3. 施工階段****3.1 主體拆改****3.2 水電改造****3.3 防水工程****3.…

Embedding方法:從Word2Vec到ltem2Vec

引言 在推薦系統領域&#xff0c;如何有效表征物品特征始終是核心挑戰。傳統協同過濾方法受限于稀疏性問題&#xff0c;直到2016年微軟研究院提出的Item2Vec方法&#xff0c;將自然語言處理中的Word2Vec技術創造性應用于物品表征學習&#xff0c;開啟了嵌入學習的新紀元。 It…

Udp發送和接收數據(python和QT)

服務端代碼 (python) import socketdef udp_server(host0.0.0.0, port12345):# 創建一個UDP套接字sock socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 綁定服務器的IP地址和端口號sock.bind((host, port))print(f"UDP服務器已啟動&#xff0c;監聽端口 {port}...&…

VBA腳本將DeepSeek嵌入Word中教程

一、獲取API-Key 目前我們可以直接只用官網的API來實現&#xff0c;申請這一步是關鍵 也可以直接訪問官網的API平臺&#xff1a;https://platform.deepseek.com/ &#xff0c;沒注冊的注冊完登錄一下&#xff0c;我們點擊到左側菜單的“APIKeys”按鈕&#xff0c;然后點擊右側…

DeepSeek接入Siri(已升級支持蘋果手表)完整版硅基流動DeepSeek-R1部署

DeepSeek接入Siri&#xff08;已升級支持蘋果手表&#xff09;完整版硅基流動DeepSeek-R1部署 **DeepSeek** 是一款專注于深度學習和人工智能的工具或平臺&#xff0c;通常與人工智能、機器學習、自動化分析等領域有關。它的主要功能可能包括&#xff1a;深度學習模型搜索&…

網站搭建基本流程

需求分析&#xff1a; 實現網站搭建的過程&#xff1a;首先進行網站的需求性分析 網站可分為前臺系統和后臺系統&#xff0c;由不同的功能拆分為不同的模塊 如下是一個電商網站可以拆分出的模塊&#xff1a; 在編寫代碼前&#xff0c;我們要先對網站進行架構&#xff0c;通過…

解決elementUi el-select 響應式不生效的問題

情況一,字段類型不匹配 考慮option的value值的字段類型是否和api返回的字段類型一致&#xff0c;如果一個為字符串一個為數字類型是無法匹配上的 <template> <div><el-select v-model"value" size"large"style"width: 240px"&…

QT實戰-基于QWidget實現的異形tip窗口

本文主要介紹了qt中,基于QWidget實現異形tip窗口的幾種實現方式,話不多說,先上圖, 1.使用QPainter和QPainterPath實現 代碼:tipwnd1.h #ifndef TIPWND1_H #define TIPWND1_H#include <QWidget>class TipWnd1 : public QWidget {Q_OBJECTQ_PROPERTY(QColor my_border…

【C++篇】樹影搖曳,旋轉無聲:探尋AVL樹的平衡之道

文章目錄 從結構到操作&#xff1a;手撕AVL樹的實現一、AVL樹介紹1.1 什么是AVL樹1.2 平衡因子的定義1.3 平衡的意義1.4 AVL樹的操作 二、AVL樹的節點結構2.1 節點結構的定義&#xff1a; 三、插入操作3.1 插入操作概述3.2 步驟1&#xff1a;按二叉查找樹規則插入節點3.3 步驟2…

么是靜態住宅IP,跨境電商為什么需要靜態住宅IP

靜態住宅IP是指直接分配給一臺屬于私人住宅網絡的設備的固定IP地址&#xff0c;這種地址不會頻繁更改。它們作為代理IP&#xff0c;使使用者能夠通過這些代理服務器進行網絡訪問&#xff0c;而對外顯示的則是該住宅的IP地址。由于這些IP地址屬于真實的住宅或個人&#xff0c;并…

清華大學deepseek教程第四版 DeepSeek+DeepResearch 讓科研像聊天一樣簡單(附下載)

deepseek使用教程系列 DeepSeekDeepResearch 讓科研像聊天一樣簡單(附下載) https://pan.baidu.com/s/1VMgRmCSEzNvhLZQc8mu6iQ?pwd1234 提取碼: 1234 或 https://pan.quark.cn/s/f3d4511b790a

leetcode刷題記錄(一百零七)——279. 完全平方數

&#xff08;一&#xff09;問題描述 279. 完全平方數 - 力扣&#xff08;LeetCode&#xff09;279. 完全平方數 - 給你一個整數 n &#xff0c;返回 和為 n 的完全平方數的最少數量 。完全平方數 是一個整數&#xff0c;其值等于另一個整數的平方&#xff1b;換句話說&#x…

軟考高級信息系統項目管理師筆記-第2章信息技術發展

第2章 信息技術發展 2.1 信息技術及其發展 1、按表現形態的不同,信息技術可分為硬技術(物化技術)與軟技術(非物化技術)。前者指各種信息設備及其功 能,如傳感器、服務器、智能手機、通信衛星、筆記本電腦。后者指有關信息獲取與處理的各種知識、方法 與技能,如語言文字…

搭建RAG知識庫的完整源碼實現

搭建RAG知識庫的完整源碼實現&#xff08;基于Python 3.8&#xff09;&#xff1a; # -*- coding: utf-8 -*- # 文件名&#xff1a;rag_knowledge_base.py # RAG知識庫搭建完整源碼&#xff08;含中文注釋&#xff09;import os import re import shutil import chromadb from…

利用AFE+MCU構建電池管理系統(BMS)

前言 實際BMS項目中&#xff0c;可能會綜合考慮成本、可拓展、通信交互等&#xff0c;用AFE&#xff08;模擬前端&#xff09;MCU&#xff08;微控制器&#xff09;實現BMS&#xff08;電池管理系統&#xff09;。 希望看到這篇博客的朋友能指出錯誤或提供改進建議。 有紕漏…

基于SpringBoot的智慧家政服務平臺系統設計與實現的設計與實現(源碼+SQL腳本+LW+部署講解等)

專注于大學生項目實戰開發,講解,畢業答疑輔導&#xff0c;歡迎高校老師/同行前輩交流合作?。 技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;…

什么是 Cloud Studio DeepSeek ; 怎么實現Open WebUI快速體驗

什么是 Cloud Studio DeepSeek ;怎么實現Open WebUI快速體驗 一、概述 歡迎使用 Cloud Studio DeepSeek 工作空間!我們已為您預裝并啟動了以下服務,等待加載十幾秒即可查看效果: Ollama 服務:支持通過 API 調用 DeepSeek 模型。 AnythingLLM 前端服務:提供交互式聊天界…