JavaScript 的核心功能
在本教程中,我们将了解 Javascript 的特殊功能。
Javascript 是一种流行的编程语言。Javascript 功能灵活。许多开源库可用。GitHub 包含全球开发者的大量 Javascript 代码。Javascript 在前端和后端都表现出色。
Javascript 具有简单的语法。无需任何设置,任何人都可以执行 Javascript 程序并使其对用户友好。具备HTML、CSS 和编码基础知识的个人就可以使用 Javascript。
Javascript 的功能
脚本编写
Javascript 在浏览器中执行客户端脚本。
解释器
浏览器解释 JavaScript 代码。
事件处理
事件是动作。Javascript 提供事件处理选项。
轻量级
由于 Javascript 不是编译型语言,因此源代码在运行前不会转换为字节码。由于其轻量级特性,低端设备也可以运行 Javascript。
区分大小写
在 Javascript 中,名称、变量、关键字和函数都区分大小写。
控制语句
Javascript 具有控制语句,例如 if-else-if、switch case 和 循环。用户可以使用这些控制语句编写复杂的代码。
对象作为一等公民
Javascript 数组、函数 和符号是对象,可以继承 Object 原型属性。对象作为一等公民意味着对象可以执行所有任务。
支持函数式编程
Javascript 函数可以作为另一个函数的参数,可以按引用调用,并且可以赋值给变量。
动态类型
Javascript 变量可以具有任何值类型。同一个变量可以具有字符串值、整数值或其他任何值。
客户端验证
Javascript 客户端验证允许用户在表单提交期间向服务器提交有效数据。
平台无关性
Javascript 将在所有具有任何操作系统的系统中以相同的方式运行。
异步处理
Javascript 的 async-await 和 promise 功能提供了异步特性。由于进程并行运行,因此提高了处理速度和响应能力。
基于原型
Javascript 使用 'Object.prototype' 函数而不是类继承。
空值合并运算符 (??)
如果左侧操作数为 null,则空值合并运算符返回右侧操作数。如果左侧操作数不是 'null',则运算符返回左侧操作数的值。此运算符有助于避免布尔运算符错误。
逻辑空赋值 (??=)
这是…的简写
result=left??right;
样式化控制台日志
Javascript 控制台可以具有样式。例如,请参见下面的代码块。
console.log('%cText %cValue', 'color:black; cursor:pointer', 'color: green;');
第一组样式应用于带有 %c 的第一个字符串,第二个 %c 获取第二个字符串的第二组样式。
对象简写
对象简写可以通过允许用户使用相同的名称来分配变量和键值来节省空间和时间。
const name='Egan', id=1; //The above snippet can be as follows const egan={ name, id } console.log(egan); //Output {name:'Egan', id:1}
可选链 (?.)
Javascript 可选链优化了以下示例中的常规空检查。
var obj={ data:{ id: 1; } } //General null check if(obj.data && obj.data.id) //Optional chaining obj.data?.id
延迟/异步加载
Javascript 的 'defer' 和 async 在 HTML 解析期间下载文件并优化页面加载时间。异步脚本在下载后立即运行。延迟脚本仅按 DOM 顺序执行。
简单的客户端计算
Javascript 可以在浏览器上执行简单的客户端计算。
大型浏览器控制
Javascript 将浏览器优先于服务器。
日期和时间处理
Javascript 具有用于获取“日期”和时间的内置函数。
HTML 内容生成
Javascript 允许用户在页面上执行某些操作后添加动态 HTML 内容。
浏览器和操作系统检测
Javascript 具有内置代码来检测用户使用的浏览器。
Let & Const 关键字
Javascript 使用 let 和 const 关键字替换 var 关键字,并具有块级作用域。
箭头函数
Javascript 使用箭头函数语法帮助优化匿名函数中的语法。
模板字面量
Javascript 允许将变量保存为字符串,并节省开发时间。
新的数组函数
Javascript 数组函数可以优化代码。常规数组具有整数索引,关联数组具有字符串索引。
默认参数
Javascript 使用默认参数避免使用未定义值的错误情况。
属性简写
Javascript 有一些简写方法,例如 .get(),可以节省编码时间和成本。
与 Java 语法相似
Javascript 语法和 Java 语法更相似,这有助于开发人员同时使用这两种编程语言。
If else 语句
Javascript 的 'if else' 条件语句执行逻辑运算。
循环语句
Javascript 循环允许开发人员使用循环多次运行相同的代码。
BigInt
Javascript 允许使用大整数值。Javascript 引擎对 BigInt 的支持方式不同。
动态导入
Javascript 动态导入函数允许在运行时添加任何文件。
Promise.allSettled
Javascript Promise.allSettled 方法仅在解析或拒绝所有 Promise 后才接受 Promise 数组。
String matchAll
Javascript string.matchAll() 返回正则表达式中的所有匹配组。
globalThis
Javascript globalThis 指向全局对象,而不考虑窗口对象或自身对象。
模块命名空间导出
Javascript 模块命名空间导入导出语法如下。
import * as utils from'./utils.mjs'; export {utils}
定义明确的 for-in 顺序
直到 2020 年,Javascript 的 'for(a in b)' 还没有执行顺序。ES2020 给出了规范。
Import.meta
Javascript import.meta 提供脚本标签的元信息。
<script type='module' src='module.js'> console.log(meta); //Output {url: 'file':'//home/user/module.js'}
使用 .at() 进行负索引
使用数组长度减去过程的 Javascript 数组索引是一种旧方法。.at() 函数可以替代此任务。
let arr=[10, 20, 30]; arr.at(2);//Prints 20
hasOwn
Javascript hasOwn 属性是 hasOwnProperty 的扩展。Javascript hasOwn 是一个静态方法。
let obj = Object.create(null); obj.hasOwnProperty=function(){}; Object.hasOwnProperty(obj, 'hasOwnProperty'); //Cannot convert the object to the primitive value Object.hasOwn(obj, 'hasOwnProperty'); //true
类静态块
Javascript 类可以具有静态项。
class Color { static blue; static { this.blue = 'blueberry'; } }
错误原因
Javascript Error 类也提供错误原因报告。
throw new Error('Error message', { cause: rootCause });
结论
Javascript 具有独特的特性以及面向对象编程和 Java 语言的特性。所有讨论的功能以及其余功能使 Javascript 成为一种强大的编程语言。