day03——数据类型转换_分支结构

139 阅读3分钟

运算符

赋值运算符

“=”、“+=”、“-=”、“*=”、“/=”、“%=”

逻辑运算符

&&(与) 、||(或)、!(非)

逻辑运算符的结果是布尔值

非运算符tips
  1. 对于非运算符,如果后面不是布尔类型的值,会将其转为布尔类型再进行非运算,只有以下6个值转为布尔类型后是false,其他都是true
        1. 0
	2. NaN
	3. null
	4. undefined
	5. ""
	6. false
  1. !!可以将其他类型的值转换为布尔类型值,(常用)
Console.log(!!"你好")//true**
与运算符tips
  1. 两边同时为真,结果才为真,有一个假,结果就为假
  2. 与运算符还可以发挥短路的作用,即有一个得到结果就不往后执行了,假结果触发短路
var a = 5;
var b = a > 3 && a++ >8;
console.log(a);//6
console.log(b);//false
var a = 5;
var b =  a> 6 && a++ > 8 ;
console.log(a);//5 短路表现在a的值
console.log(b);//false
或运算符tips
  1. 两边同时为假,结果才为假,有一个真,结果就为真
  2. 或运算符短路机制,真结果触发短路
非布尔值的&&(与)、||(或)运算

返回结果为能决定运算结果的表达式的值 与运算找假结果 或运算找真结果

与、或、非的优先级

!(非)>&&(与)>||(或)

三目运算符
  • 语法格式:条件表达式 ?结果1:结果2;
  • 条件表达式的结果需要是一个boolean类型的值,如果不是会自动转换
  • 如果条件表达式的值是true,最终的结果就是表达式1,否则就是表达式2。

原码、反码、补码

  1. 计算机中存储的数据是二进制数据
  2. 二进制数据有三种表现形式,原码、反码、补码
  3. 在计算机中,将最高位用来表示数的正负,最高位是0表示正数,最高位是1表示负数
原码
  • 1.正数的原码,就是最高位为0,然后将该数字转为二进制即可

5的原码是:00000000 00000101

  • 2.负数的原码,就是最高位为1,然后将该数字转为二进制

-5的原码是:10000000 00000101

反码
  • 1.正数的反码,和原码是一样的
20的原码是:00000000 00010100
20的反码是:00000000 00010100
  • 2.负数的反码,是他的原码除了符号位,其他位按位取反
-20的原码是:10000000 00010100
-20的反码是:11111111 11101011
补码
  1. 正数的原码、反码、补码都是一样的
  2. 负数的补码是他的反码+1 数据在计算机中存储的都是补码

位运算符

位运算符就是对二进制的数据进行操作。位运算符操作的是 32 位的整数,如果是小数的话会取整计算。最高位用来表示正负,0-正数,1-负数。

按位非运算符 ~

按位非运算符就是将某个数的二进制(补码)每位都进行取反,最后得到的结果。

  1. 一个数与自身的取反值相加,等于-1
  2. 对一个整数连续两次按位取反运算,得到它自身。(常用于取整操作)
左移运算符 <<

左移运算符就是把数字的二进制数据(补码)整体向左移动,右侧用0补齐,移动时首位符号位也跟随移动,移动出去的内容丢失。

  1. 左移几位,就是这个数字乘以2的几次方。
  2. 左移0位,相当于将该数值取整。
右移运算符

右移运算符就是把数字的二进制数据(补码)整体向右移动,如果是正数,头部全部补0,如果是负数,头部全部补1

  1. 右移运算符相当于除以2的几次方

数据类型转换

1.自动类型转换
  • number:一些算数运算符会自动进行隐式的转换
  • string:加空字符串进行转换,利用字符串的拼接
  • boolean:6种数据形式直接转为false,其他转为true
2.强制类型转换

Number()、String()、Boolean()

分支结构

if语句

if(条件表达式){代码块}

if else语句

if(条件表达式){代码块}else{代码块}

If-else if 语句

if(条件表达式){代码块}
else if(条件表达式2){代码块}
else{代码块}
switch语句
var week;
switch(week){
    case 0:
        console.log(`周日`);
        break;
        case 1:  
        console.log(`周1`);
        break;
        case 2:  
        console.log(`周2`);
        break;
        case 3:  
        console.log(`周3`);
        break;
        case 4:  
        console.log(`周4`);
        break;
        case 5:  
        console.log(`周5`);
        break;
        case 6:  
        console.log(`周6`);
        break;
	default:
    console.log(`请输入正确日期`);

}

生成随机整数

~~(Math.random()*(max-min+1)+min);

循环

for循环语法结构
for(1.初始化部分;2.循环条件;4.迭代部分){3.循环体}