101_js笔记4_js的进制 + 运算符 + 流程控制语句

一,进制

  • 16进制的数字,则需要以0x开头
    •    num = 0x18;
    •    num = 0xcf;
    •    num = 0xAacf;
  • 8进制的数字,则需要以0开头
    • num = 016;
  • 2进制的数字,则需要以0b开头
    • num = 0b1010;

二,运算符

  1. 运算符也叫操作符, 通过运算符可以对一个或多个值进行运算
  2. 按照功能划分:
    1. 算术运算符,
    2. 位运算符,
    3. 关系运算符,
    4. 逻辑运算符
  3. 按照操作数个数划分:
    1. 单目运算(只有一个操作数 如 : i++ !),
    2. 双目运算(有两个操作数 如 : a+b;),
    3. 三目运算(三目运算也称为问号表达式 a>b ? 1 : 0;)

三,运算符的优先级

四,算术运算符

  1. 和C语言不同的是JavaScript中整数除以整数结果是小数
    1.     var res4 = 10 / 3;
    2.     console.log(res4); // 3.3333
  2. 任何值和NaN做运算都得NaN
    1. var result = 2 + NaN;
    2. console.log(result); //NaN
  3. 非Number类型的值进行运算时,会将这些值转换为Number然后在运算
    1. var result = true + 1; // + - * /  %
    2. console.log(result); // 2
    3. result = true + false;
    4. console.log(result); // 1
    5. result = 2 + null; 
    6. console.log(result);// 2
  4. 任何的值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串的操作
    1. var result = 1 + "123";
    2. console.log(result); // 1123
    3. result = 2 + "true";
    4. console.log(result); // 2true
  5. 任何的值和字符串做- * / %法运算, 都会先转换为字符串转换为Number
    1. var result = 2 - "1"; // - * /  %
    2. console.log(result); // 1
    3. result = "2" - "1";
    4. console.log(result); // 1
  6. 取余运算m%n, n等于0 返回NaN, 其它和C语言一样
    1. var result = 10 % 0;
    2. console.log(result); // NaN

五,正负运算符

  1. + 正号不会对数字产生任何影响
    1. var num = 123;
    2. num = +num;
    3. console.log(num); // 123
  2. 对于非Number类型的值,会将先转换为Number,然后再运算
    1. var bool = true;
    2. var res = +bool;
    3. console.log(res); // 1
    4. var str = "123";
    5. res = +str;
    6. console.log(res); // 123
    7. var str2 = "123abc";
    8. res = +str2;
    9. console.log(res); // NaN, 所以内部不是调用parseInt, 而是Number()函数
    10. var temp = null;
    11. res = +temp;
    12. console.log(res); // 0
  3. 负号
    1. - 负号可以对数字进行负号的取反
    2. var num = 123;
    3. num = -num;
    4. console.log(num); // -123

六,赋值运算符

  1. 赋值运算符左边只能是变量
    1. var str = 110;
      220 = str; // 错误写法
  2. 复合赋值运算符
    1.  += 加后赋值 变量+=表达式 如:a+=1;即a=a+1
    2.  -= 减后赋值 变量-=表达式 如:a-=1;即a=a-1


七,关系运算符

  1. 对于数值和非数值进行比较时,会将其转换为数值然后再比较
  2. 如果符号两侧的值都是字符串时,不会将其转换为数字进行比较, 而会分别比较字符串中字符的Unicode编码
  3. ==和===:
    1. ==:判断值是否相等,会进行数据类型转换;
    2. ===:判断值和类型是否相等,不会进行数据类型转换;
  4. != 和!==:
    1. !=:判断值是否不相等,会进行数据类型转换;
    2. !==:判断值和类型是否不相等,不会进行数据类型转换;
  5. null、undefined 、NaN比较
    1. console.log(null == 0); // false
      console.log(undefined == 0); // false
      // 永远不要判断两个NaN是否相等
      console.log(NaN == NaN); // false
      
      /*
       * 可以通过isNaN()函数来判断一个值是否是NaN
       *    如果该值是NaN则返回true,否则返回false
       */
      var num = NaN;
      console.log(isNaN(num)); // true
      
      // undefined 衍生自 null, 所以返回true
      console.log(null == undefined); // true;
      console.log(null === undefined); // false;
      
      

八,逻辑运算符

  1. 逻辑与:&&
  2. 逻辑或:||
  3. 逻辑非:!
  4. 对于非Boolean类型的数值, 逻辑与会自动将其转换为Boolean类型来判断

九,流程控制语句

  1. 选择结构
    1. 选择结构if
    2. 选择结构switch
      1. case判断是否相等时是全等于(===),而不是等于(==),也就是说既会判断类型是否相等又会判断值是否相等
      2. 和C语言不同的是, JavaScript中case后可以是常量也可以是变量
  2. 循环结构:
    1. while,
    2. do while,
    3. for
  3. 三大跳转结构:
    1. JavaScript中没有提供C语言中的goto语句, 但是其它的三大跳转和C语言中一模一样
    2. return:立即结束所在函数
    3. break:
      1. 立即跳出所在switch语句或循环语句, 离开作用范围没有意义
      2. break关键字只能用于循环语句和switch语句, 在其它地方没有意义
    4. continue:
      1. 立即跳出所在循环语句, 离开作用范围没有意义 
      2. continue后面的语句永远不会被执行
      3. 只能用于循环结构, 在其它地方没有意义

猜你喜欢

转载自blog.csdn.net/a_horse/article/details/84338254
今日推荐