JavaScript基础02

115 阅读4分钟

JavaScript基础

进制

常用进制

  • 二进制、八进制、十进制、十六进制

  • 颜色一般使用RGBA模式

    • 每个数值范围0~255,A表示透明度
    • #FF0000,数值越大颜色越亮,反之则暗

运算符

位运算符

  • 作用:代码不易被人看懂

  • & 位与运算

    • 运算规则,数字转为二进制,高位不足用0补齐,逐为进行与运算
    • 任何数(同次幂)与二的n次幂减一(7,15……)相与都是该数本身
    • 高次幂只考虑剩余几位,例如:37&7=(32+5)&7=5&7
  • | 位或运算

    • 任何数(同次幂)与二的n次幂减一(7,15……)相或都是该二的n次幂减一
    • 高位运算 原理同位与运算
  • ^ 位异或运算

    • 每位不同为1,相同为0
    • 一般用于加密解密
  • ~ 位非运算

    • 加1取负
    • 例:~1=-2,~-5=4
    • 用于判断元素有无
  • << 左位移

    • 1<<4=16
  • 右位移

三目运算符

  • 条件?返回值1:返回值2

    • 判断条件是否成立,如果条件成立返回第一个值 否则返回:后面的第二个值
    • 如果表达式的结果转换为布尔值为真时,返回问号后面的值,否则返回冒号后面的值
    • 问号前面的内容会自动隐式转换为布尔值
  • 三目运算符比赋值运算(+=)优先级高

  • 当需要返回的是布尔值时,不要使用三目运算符

    • 例:var a=3>2 ? true : falase,可直接用var a=3>2;
  • 复杂条件处理尽量也不用三目运算符

运算符优先级

  • . [] () 字段访问、数组下标、函数调用以及表达式分组
  • ++ -- - ~ ! delete new typeof void 一元运算符、返回数据类型、对象创建、未定义值
    • / % 乘法、除法、取模
        • 加法、减法、字符串连接
  • << >> >>> 移位
  • < <= > >= instanceof 小于、小于等于、大于、大于等于、instanceof
  • == != === !== 等于、不等于、严格相等、非严格相等
  • & 按位与
  • ^ 按位异或
  • | 按位或
  • && 逻辑与
  • || 逻辑或
  • ?: 条件
  • = oP= 赋值、运算赋值
  • , 多重求值

流程控制语句

条件语句

  • if

    • if(条件){ 执行语句 }

      • 如果条件表达式运算后隐式转换为布尔值是true,进入该条件语句
      • 条件不管什么表达式都会隐式转换为布尔值
      • !非 在条件语句中大量用!配合完成不是这种非真进入
      • 判断条件不限于ture和false
  • if……else

    • if(条件){ 执行语句1 }else{ 执行语句2 }

      • 如果条件表达式运算后隐式转换为布尔值是true,进入执行语句1
      • 如果条件表达式运算后隐式转换为布尔值是false,进入执行语句2
  • if……else if……

    • if(条件1){ 执行语句1 }else if(条件2){ 执行语句2 }else if(条件3){ 执行语句3 }else{ 执行语句、…… }

      • 与 if(条件1){执行语句1 } if(条件2){执行语句2 } if(条件3){执行语句3} 不同之处: if……else if……仅执行其中一个条件结果 if逐个条件都会判断,根据判断结果执行对应的内容
  • switch……case

    • switch(表达式){ case 值1: 执行语句; break; case 值2: 执行语句; break; case 值3: 执行语句; break; case 值4: 执行语句; break; default: }

      • 当表达式绝对等于(三个等号)值时,执行相应内容
      • default:默认以上条件都不满足时执行,后可以不写break
      • break 跳出当前条件,如果不写break,不判断值2是否相等,直接穿越(同时执行,直到break)
      • case后面的值,可以是结果,也可以是表达式
      • 通常用作写状态机

循环语句

  • while

    • while(循环条件){ 循环语句; }

      • 使用while 广度遍历,深度遍历 深度遍历时,要求对象属性名相同。属性名不同时,用数组遍历名称。

关键字

  • break

    • 跳出(结束循环)
    • 如果没有引用,只能用于跳出一个循环
    • abc(循环前增加ID): Break abc; 跳出锚点所在的循环(跳出到指定的ID位置)
  • continue

    • 继续(结束本次循环)
    • 遇到满足条件的跳到下一次循环继续向后,当前continue后面的语句不再执行
    • 当整个循环中遇到阶段性不需要执行的内容可以使用continue
    • 不论有无引用,都只能用于跳过一个循环

XMind: ZEN - Trial Version