101_js笔记4_js的进制 + 运算符 + 流程控制语句
其他
2018-11-30 09:41:04
阅读次数: 0
一,进制
- 16进制的数字,则需要以0x开头
- num = 0x18;
- num = 0xcf;
- num = 0xAacf;
- 8进制的数字,则需要以0开头
- 2进制的数字,则需要以0b开头
二,运算符
- 运算符也叫操作符, 通过运算符可以对一个或多个值进行运算
- 按照功能划分:
- 算术运算符,
- 位运算符,
- 关系运算符,
- 逻辑运算符
- 按照操作数个数划分:
- 单目运算(只有一个操作数 如 : i++ !),
- 双目运算(有两个操作数 如 : a+b;),
- 三目运算(三目运算也称为问号表达式 a>b ? 1 : 0;)
三,运算符的优先级
四,算术运算符
- 和C语言不同的是JavaScript中整数除以整数结果是小数
- var res4 = 10 / 3;
- console.log(res4); // 3.3333
- 任何值和NaN做运算都得NaN
- var result = 2 + NaN;
- console.log(result); //NaN
- 非Number类型的值进行运算时,会将这些值转换为Number然后在运算
- var result = true + 1; // + - * / %
- console.log(result); // 2
- result = true + false;
- console.log(result); // 1
- result = 2 + null;
- console.log(result);// 2
- 任何的值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串的操作
- var result = 1 + "123";
- console.log(result); // 1123
- result = 2 + "true";
- console.log(result); // 2true
- 任何的值和字符串做- * / %法运算, 都会先转换为字符串转换为Number
- var result = 2 - "1"; // - * / %
- console.log(result); // 1
- result = "2" - "1";
- console.log(result); // 1
- 取余运算m%n, n等于0 返回NaN, 其它和C语言一样
- var result = 10 % 0;
- console.log(result); // NaN
五,正负运算符
- + 正号不会对数字产生任何影响
- var num = 123;
- num = +num;
- console.log(num); // 123
- 对于非Number类型的值,会将先转换为Number,然后再运算
- var bool = true;
- var res = +bool;
- console.log(res); // 1
- var str = "123";
- res = +str;
- console.log(res); // 123
- var str2 = "123abc";
- res = +str2;
- console.log(res); // NaN, 所以内部不是调用parseInt, 而是Number()函数
- var temp = null;
- res = +temp;
- console.log(res); // 0
- 负号
- - 负号可以对数字进行负号的取反
- var num = 123;
- num = -num;
- console.log(num); // -123
六,赋值运算符
- 赋值运算符左边只能是变量
- var str = 110;
220 = str; // 错误写法
- 复合赋值运算符
- += 加后赋值 变量+=表达式 如:a+=1;即a=a+1
- -= 减后赋值 变量-=表达式 如:a-=1;即a=a-1
七,关系运算符
- 对于数值和非数值进行比较时,会将其转换为数值然后再比较
- 如果符号两侧的值都是字符串时,不会将其转换为数字进行比较, 而会分别比较字符串中字符的Unicode编码
- ==和===:
- ==:判断值是否相等,会进行数据类型转换;
- ===:判断值和类型是否相等,不会进行数据类型转换;
- != 和!==:
- !=:判断值是否不相等,会进行数据类型转换;
- !==:判断值和类型是否不相等,不会进行数据类型转换;
- null、undefined 、NaN比较
-
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;
八,逻辑运算符
- 逻辑与:&&
- 逻辑或:||
- 逻辑非:!
- 对于非Boolean类型的数值, 逻辑与会自动将其转换为Boolean类型来判断
九,流程控制语句
- 选择结构
- 选择结构if
- 选择结构switch
- case判断是否相等时是全等于(===),而不是等于(==),也就是说既会判断类型是否相等又会判断值是否相等
- 和C语言不同的是, JavaScript中case后可以是常量也可以是变量
- 循环结构:
- while,
- do while,
- for
- 三大跳转结构:
- JavaScript中没有提供C语言中的goto语句, 但是其它的三大跳转和C语言中一模一样
- return:立即结束所在函数
- break:
- 立即跳出所在switch语句或循环语句, 离开作用范围没有意义
- break关键字只能用于循环语句和switch语句, 在其它地方没有意义
- continue:
- 立即跳出所在循环语句, 离开作用范围没有意义
- continue后面的语句永远不会被执行
- 只能用于循环结构, 在其它地方没有意义
转载自blog.csdn.net/a_horse/article/details/84338254