JavaScript(3)

转换为布尔型

1.代表空、否定的值会被转换为false,如' '、0、NaN、null、underfined

2.其余值都会被转换为true

console.log(Boolean(' ')); //false
console.log(Boolean(0)); //false
console.log(Boolean(NaN)); //false
console.log(Boolean(null)); //false
console.log(Boolean(underfined)); //false
console.log(Boolean('小白')); //true
console.log(Boolean(12)); //true

翻译器翻译的两种方式:一个是编译,一个是解释。两种方式之间的区别在于翻译的时间点不同

编译器是在代码执行之前进行编译,生成中间代码文件

编译器是在运行是进行及时解释,并立即执行(当编译器以解释方式运行的时候,也称之为解释器

运算符 

比较运算符

概念:比较运算符(关系运算符)是两个数据进行比较时所使用的运算符,比较运算后,会返回一个布尔值(true/false)作为比较运算的结果。

<   小于号          >  大于号             >=   大于等于号            <=   小于等于号

==  判断好         !=  不等号          ===  !==    全等  要求值和数据类型都一致


=     赋值(把右边给左边)

==   判断(判断两边值是否相等,注意此时有隐式转换)

=== 全等(判断两边的值和数据类型是否完全相同)

等号比较

//==默认的情况下转换数据类型,会把字符串类型的数据转换成数字型
console.log(18 == '18');
console.log(18 === '18');

逻辑运算符

概念:逻辑运算符是用来进行布尔值运算的运算符,其返回值也是布尔值。 

&&    "逻辑与"                ||    "逻辑或"               !    "逻辑非"

1.逻辑与&&   两边的结果都是true,结果才是true,只要有一侧又false就是false
console.log(3>5 && 3>2);  false
console.log(3<5 && 3>2);  true
2.逻辑或  两侧都是false,才是false,只要有一侧是true就是true
console.log(3>5 || 3>2);  true
console.log(3>5 || 3<2);  false
3.逻辑非
console.log(!true);  false

 练习代码

var num=7;
var str="我爱你~中国~";
console.log(num >5 && str.length >= num);   true
console.log(num <5 && str.length >= num);   false
console.log(!(num<10));   false
console.log(!(num<10 || str.length == num));   false
//逻辑与的短路运算 如果表达式1的结果为真的话,返回值是表达式2,如果表达式是假,返回的是表达式1
console.log(123 && 456);   结果:456
console.log(0 && 456);     结果:0
console.log(0 && 1+2 && 56789 && 456);   结果:0
console.log('' && 1+2 && 56789 && 456);  结果:" "
//逻辑或的短路运算  如果第一个表达式的值为真,则返回表达式1  如果第一个表达式的值为假,则返回表达式2
console.log(123 || 456);    结果:123
console.log(0 || 456);   结果:456
console.log(0 || 56789 || 456);   结果:56789
var num=0;
console.log(123 || num++);    123
console.log(num);   0

赋值运算符

概念:用来把数据赋值给变量的运算

var age =10;
age += 5; //相当于age = age + 5
age -= 5; //相当于age = age - 5
age *+ 10; //相当于age = age *10

运算符优先级

1     小括号            ()
2     一元运算符     ++ -- !
3     算数运算符     先 * / % 后 + -
4     关系运算符     > >= < <=
5     相等运算符     == != === !==
6     逻辑运算符     先 && 后 ||
7     赋值运算符     =
8     逗号运算符     ,   

练习代码

console.log(4 >= 6 || '人' != '阿凡达' && !(12*3 == 122) && true);  true
var num=10;
console.log(5 ==num/2 && (2+2*num).toString() === '22');   true
//console.log(5 == 10/2);

 

流程控制

流程控制主要有三种结构,分别是 顺序结构 分支结构 循环结构,代表三种代码的顺序。

顺序流程控制

分支流程控制

  1. if语句
    //条件成立执行代码,否则什么也不做
    if(条件表达式){
        //条件成立执行的代码语句
    }

  2. if else语句(双分支语句)
    //条件成立 执行if 里面的代码,否则执行false 里面的代码
    if(条件表达式){
        //[如果]条件成立执行的代码
    }else{
        //[否则]执行的代码
    }

  3. if else if语句(多分支语句)
    //适合于检查多重条件
    if(条件表达式1){
        语句1:
    } else if(条件表达式2){
        语句2:
    } else if(条件表达式3){
        语句3:
    ...
    } else {
        //上述条件都不成立执行此处代码
    }

  4. 三元运算符
    表达式1 ? 表达式2 : 表达式3;

    执行思路:如果表达式1为true,则返回表达式2的值,如果为表达式1为false,则返回表达式3的值

  5. switch分支流程控制

     语法结构

     switch语句也是多分支语句,它用于基于不同的条件来执行不同的代码。当要针对变量设置一系列的特定值的选项时,就可以使用 switch。

switch(表达式){
case value1;
//表达式等于 value1 时要执行的代码 
break;
case value2;
//表达式等于 vaLue2 时要执行的代码 
break; 
default;
//表达式不等于任何一个 value 时要执行的代码
}
  • switch:开关转换,case:小例子选项
  • 关键字switch,后面括号内可以是表达式或值,通常是一个变量
  • 关键字case,后跟一个选项的表达式或值,后面跟一个冒号
  • switch表达式的值会与结构中的case的值做比较
  • 如果存在匹配全等(===),则与该case关联的代码块会被执行,并在遇到break时停止,整个switch语句代码执行结束
  • 如果所有的case的值都和表达式的值不匹配,则执行default里的代码

注意:执行case里面的语句时,如果没有break,则继续执行下一个case里面的语句。

switch语句和ifelseif语句的区别
一般情况下,它们两个语句可以相互替换
switch.case语句通常处理case为比较确定值的情况,而ifelse…语句更加灵活,常用于范围判断(大于、等于某个范围)
switch语句进行条件判断后直接执行到程序的条件语句,效率更高。而if.else语句有几种条件,就得判断多少次。
当分支比较少时,if...else语句的执行效率比switch语句高。
当分支比较多时,switch语句的执行效率比较高,而且结构更清晰。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值