Skip to content

JS 常用操作符 #72

@coconilu

Description

@coconilu

概述

收集整理编程中需要经常用到的操作符,细节不可忽视。

1. 对象操作符

new,创建新对象
delete,删除对象属性
in,如果指定的属性(符串类型或者 symbol 类型)在指定的对象或其原型链中,则in 运算符返回true
instanceof,用于测试构造函数的prototype属性是否出现在对象的原型链中的任何位置
super,在构造函数中使用时,super关键字将单独出现,并且必须在使用this关键字之前使用。
this
class,声明创建一个基于原型继承的具有给定名称的新类
extends,继承
属性访问器,点号表示法和方括号表示法
对象初始化
  1. 创建对象的方式:对象字面量,new操作符,Object.create()、JSON转换
  2. instanceof 指的是构造函数的prototype对象(右边)是否在对象(左边)的原型链上;Object.prototype.isPrototypeOf()指的是原型对象(方法调用者)是否在对象(参数)的原型链上。

2. 函数操作符

async,声明将定义一个返回 AsyncFunction 对象的异步函数。异步函数是指通过事件循环异步执行的函数,它会通过一个隐式的 Promise 返回其结果。但是如果你的代码使用了异步函数,它的语法和结构会更像是标准的同步函数。
await,用于等待一个Promise 对象。它只能在异步函数 async function 中使用。若 Promise 正常处理(fulfilled),其回调的resolve函数参数作为 await 表达式的值,继续执行 async function。若 Promise 处理异常(rejected),await 表达式会把 Promise 的异常原因抛出。
function*,在表达式内部定义一个生成器函数,返回迭代器(iterator)对象
yield,用来暂停和恢复一个生成器函数
yield*,用于委托给另一个生成器函数或可迭代对象
void,在使用立即执行的函数表达式时,可以利用 void 运算符让 JavaScript 引擎把一个function关键字识别成函数表达式而不是函数声明
return,终止函数的执行,并返回一个指定的值给函数调用者
剩余参数,将一个不定数量的参数表示为一个数组

注意函数表达式和函数声明

3. 表达式操作符

算数运算符:+、-、*、/、%(取余)、**(幂)、++、--、-(一元负号)、+(一元正号)
按位操作符:&(按位与)、|(按位或)、^(按位异或)、~(按位非)、<<(左移,0填充)、>>(有符号右移)、>>>(无符号右移)
赋值运算符:=、+=、-=、*=、/=、%=、**=、<<=、>>=、>>>=、&=、^=、|=、
逻辑运算符:短路计算,&&、||、!
逗号操作符:对它的每个操作数求值(从左到右),并返回最后一个操作数的值
比较操作符:==、!=、===、!==、>、>=、<、<=
条件运算符:也叫三元操作符,经常作为if语句的简短形式来使用。
解构赋值:可以将值从数组或属性从对象提取到不同的变量中,还可以设置默认值,如果是对象还可以重命名原属性名。
展开语法:在函数调用/数组构造时, 将数组表达式或者string在语法层面展开;还可以在构造字面量对象时, 将对象表达式按key-value的方式展开。

展开语法将数组展开为其中的各个元素,而剩余语法则是将多个元素收集起来并“凝聚”为单个元素

4. 流程语句

if...else
while
do...while
for
for...in,以任意顺序遍历一个对象的可枚举属性。对于每个不同的属性,语句都会被执行。
for...of,在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句
break,中止当前循环,switch语句或label 语句,并把程序控制流转到紧接着被中止语句后面的语句。
continue,结束当前(或标签)的循环语句的本次迭代,并继续执行循环的下一次迭代。
label,可以和 break 或 continue 语句一起使用。标记就是在一条语句前面加个可以引用的标识符。
switch,可以用 Switch 重写多个 If 语句

5. 其它

const
let
var
block
import,导入由另一个模块导出的绑定。还可以仅作为副作用导入(不导入任何变量,但是执行模块里的代码)。
export,在创建JavaScript模块时,从模块中导出函数、对象或原始值,以便其他程序可以通过 import 语句使用它们。有命名导出、默认导出和重定向导出。
throw
try...catch...finally
new.target,检测函数或构造方法是否是通过new运算符被调用的。在通过new运算符被初始化的函数或构造方法中,new.target返回一个指向构造方法或函数的引用。在普通的函数调用中,new.target 的值是undefined。
typeof,可能的返回值:undefined、null、boolean、number、string、symbol、function、object、ReferenceError(暂存死区)

参考

JavaScript

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions