Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JS 常用操作符 #72

Open
coconilu opened this issue Sep 21, 2018 · 0 comments
Open

JS 常用操作符 #72

coconilu opened this issue Sep 21, 2018 · 0 comments

Comments

@coconilu
Copy link
Owner

coconilu commented Sep 21, 2018

概述

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

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

@coconilu coconilu changed the title JS 常用指令 JS 常用操作符 Sep 21, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant