前端宝典【犀牛书】03(表达式+运算符)

一、表达式是js的一个短语

  1、原始表达式

  常量、直接量、关键字、变量

    1. 23 // 数字 直接 量

    "hello" // 字符串 直接 量

    /pattern/ // 正 则 表达式 直接 量

      

    true //关键字

    i       //变量

  2、初始化表达式

    数组、对象初始化表达式每次计算的值都不相同

    数组直接量中列表和逗号省略的元素会填充undefine,最后一位则不会

    函数定义表达式

    var square=function(x){return x*x;}

  3、属性访问表达式

    expression . identifier        只适用于合法标识符

    expression [ expression ]  保留字和空格标点符号或是数字(数组而言),或者属性名不固定,需要计算而得

    运算机制:在 . 和 [ 前的表达式会先计算,结果不是对象或数组就转换成对象

    后是. 和 标识符 返回标识符所指定的值

    后是括号,计算括号内的表达式并转换为字符串

    var o={x:1,y:{z:3}};

 

      4、调用表达式

    先计算函数表达式后计算参数表达式

    表达式是属性访问表达式“方法调用” a.sort()

  5、对象创建表达式(构造函数),不需要传参数()可以省略

    new Object()

    new Point(2,3)

二、运算符是表达式复杂的途径之一

  左值:在 JavaScript 中, 变量、 对象 属性 和数 组 元素 均 是 左 值。

    运算符的副作用,具有赋值功能的++、delete

eg:let b=(a++)+a

  

  in运算符(重点内容)左边是右边的属性或者数组的下标

  左操作数字符串,右操作数为对象

  属性名可以延伸至继承属性

 

  instanceof运算符(重点内容),左侧是右侧的实例

  左操作数是对象,右操作数是类(即是构造函数)

  类可以延伸至父类

 

  加减除余与数学一致

 

  位运算符

1、以对 由 数字 表示 的 二进制 数据 进行 更低 层级 的 按 位 运算。

2、作用于 整数数值 类型 的 操 作数 并 返回 数字。

3、移位 运算符 要求 右 操 作数 在 0~ 31 之间。 在 将其 操作 数 转换 为 无符号 32 位 整数 后, 它们 将 舍弃 第 5 位 之后 的 二进制 位, 以便 生成 一个 位数 正确 的 数字。 需要 注意 的 是, 位 运算符 会 将 NaN、 Infinity 和- Infinity 都 转换 为 0。

 

&、|、^、~、<<、>>、>>>,有兴趣自行翻阅10进制转换2进制以及原版书籍。

 

  关系运算符

  ===、==、!=、!==

 

  比较运算符

  >=、<=、>、<

 

  逻辑表达式

  && || !

 

  赋值表达式 

 

a= a op b

data[ i++] *= 2;

data[ i++] = data[ i++] * 2; (注意:++运算符影响语句运行所以此情况和上面一行的表达式不相等)

 

 

 

 

 

  
 
 

 

posted @ 2022-07-04 23:02  肥瘦皆宜  阅读(81)  评论(0编辑  收藏  举报