2019-05-22 js第二天

条件判断

01直接量

/* 1.直接量是什么? */

    //  直接在 js 中 写的数据~~!


    // 2.数据类型是什么?

    // 因为 JS 中的数据 明显可以分成很多类,所以 就 分出 了 若干个 数据类型

    // 3.如何检测数据类型?

    // typeof --> 类型名称字符串

    var a = typeof '小白白'; // var a = 'string';

    var b = typeof(5201314); // var b = 'number'

    // 4.变量是什么?

    // 1.本质上 是 内存里的 一块 空间,变量名 是 这个空间的 “代号”

    // 2.通俗的说,变量就是一个 容器,用来装数据~~! 一次 只能装一个数据

    var tcName = '波老师';

    tcName = '泽老师';

    console.log(tcName);

    console.log(tcName + ',我爱你~~~');

02数据类型

//1.简单数据类型 ----------------------------------------------------

    //1.1 数值类型 - Number

    //    a.整数 小数  负数 都属于数值

    //    b.最大值和最小值  -> Number.MAX_VALUE  和 Number.MIN_VALUE

    //    c.数值类型 中的三个特殊值:Infinity 、-Infinity 、NaN

    //    d.无穷大 Infinity  无穷小 -Infinity

    //    e.【NaN - 非数值】 (Not a number) : 代表 算数运算后的错误结果

    //a. 当 算数运算符 运算 一个 不是 数值的 数据时,无法计算结果,所以 返回 NaN

    var num1 = 12 * '我爱你'; // NaN

    console.log(num1); // NaN

    //b. 任何值 与 NaN 运算结果 都是 NaN

    console.log(NaN / 100);

    //c. NaN 与任何值都不相等 ,包括它自己

    //d. 使用 isNaN(x) 来 检测 x 是不是 一个 NaN

    //                    如果 x 是 一个 NaN , 就返回 true

    //                          不是        ,      false

    console.log(' isNaN(520) = ' + isNaN(520));

    console.log(' isNaN(\'讨厌\') = ' + isNaN('讨厌'));

//1.2 字符串类型 - String

    var str1 = '我是你哥哥';

    var str2 = "我是你姐姐";

    var str3 = '我喜欢"小狗" ,你\'呢?'

    var str4 = "我喜欢'小猫',你是吗?";

    console.log('我要换行\n不是换老婆~~!');

    //1.3 布尔值类型 - Boolean

    var male = true;

    var female = false;

    //1.4 未定义类型 - Undefined

    //    有且只有一个值 undefined

    //    当一个 变量 声明 但么有赋值,默认就是 undefined

    var a;

    console.log(a);

    //1.5 空类型 - Null

    //    有且只有一个值 null

    //    prompt 输入框,用户点击取消时,返回的 是 null

    // var usrName = prompt('请输入您的名字:');

    // console.log('usrName = ' + usrName);

    // undefined 和 null 判等

    console.log(1 == 1); // true

    console.log(undefined == null); // true

    console.log(undefined === null); // false

    //2.复杂数据类型-------------------------------------------------

    // Object - 对象

    // Array - 数组

    // Function - 函数

    // 自定义类型

03复合运算符

//1. 算数运算符 + - * / % **

      // ** 求次方

      console.log(2**3);// 2 * 2 * 2

      //2. = 赋值运算符

      //  = 会 将 右边的 值 赋给 左边

      var a = 1;

      // var usrName = prompt('您的女友名字:');

      //3.复合赋值运算符----------------------------------------------

      //  作用:将 变量里的值 取出 ,与另一个 值运算,并将 结果 重新 赋值 到这个变量

      //  口诀:对某个变量自身 做 算数运算

      //  +=  -=    *=    /*    %=

      //3.1 += -------------------

      var num = 1;

      // num = num + 2;

      num += 2;

      console.log(num); // 3

      //3.2 -=

      var num = 100;

      num -= 40; // num = num - 40;

      console.log(num); // 60

      //3.3 *=

      var num = 5;

      num *= 5; // num = num * 5;

      console.log(num); // 25

      //3.4 /=

      var num = 100;

      num /= 5;

      console.log(num);//20

      //4.神奇的 += ---------------------------------------------------------------

      //4.1 如果 变量 是和 数值 运算,那么 += 就起到了 算数运算的 效果

      var num = 110;

      num += 120;

      console.log(num);

      //4.2 如果 变量 是和 非数值 运算,那么 += 就会起到 字符串的连接 作用

      var str = 123;

      str+='我爱你~~~';

      str+='你爱我妈?';

      str+=',分手~~!'

      console.log('str ='+str); // 123我爱你~~~你爱我妈?,分手~~!

04比较运算符

//1.比较运算符:比大小的~~!!

      //  运算符 本身 没有意义,要和 两边的数据 组成 表达式 才有意义

      //  >    <    >=    <=    ==  !=    ===    !==

      //  【永远都会返回 bool值】,要么 返回  true,要么 返回 false

      console.log(1 > 2);  // false

      console.log(1 < 2);  // true

      console.log(1 == 2);  // false

      console.log(1 == 1);  // true

      // == 只判断值是不是相等,不判断类型

      // === 全等号,判断值 也 判断类型

      console.log(1 == '1');// true

      console.log(1 === '1');// false

      console.log(1 === 1);// true

      // 大于等于  和 小于等于

      // 注意: 条件是或的关系,只要 满足一个 就返回 true,只有两个都不满足时才返回 false

      console.log(1 >= 2); // false

      console.log(1 >= 1); // true

      console.log(1 >= 0); // true

      // 不等号  全不等号

      console.log(1 != 1); // false

      console.log(1 != 2); // true

      console.log(1 != '1'); // false

      console.log(1 !== 1); // false

05逻辑运算符

//1.逻辑运算符

    //  &&    ||    !

    //1.1逻辑与 && ---------------------------------------------------------------

    // 只有 && 两边的 数据 都为 true 时,整个 逻辑与 表达式 才返回 true

    //                    只要有一个是 false,整个 逻辑与表达式 就返回 false

    // 口诀:一假都假

    //  左边的表达式  &&  右边的表达式  -> 表达式结果

    //    true      &&    true            true

    //    false    &&    true            false

    //    true      &&    false          false

    // 找男朋友  --  高 富 帅 情商高

    // 如果 四个 条件 都要满足 才 成立: 逻辑与  var isOk = 高 && 富 && 帅 && 情商高;

    //                                                  高富帅情商 4个条件 都要满足 才 返回 true

    //                                                                    只要有一个不满足,都返回 false

    var isOk = 1 > 2 && 1 >= 0; // false

    //        false && true    // false

    var isOk = 1 == 1 && 1 >= 0; // true

    //          true  && true    // true

    var isOk = 1 == 1 && 1 >= 0 && 2 > 1; // true

    //          true &&  true  && 2 > 1

    //                true      && true

    //1.2 逻辑或 ||  ---------------------------------------------------------------

    // 只要 || 两边有一个是 true,整个表达式 就返回 true

    //        两边都是 false,整个表达式 才返回 false

    // 口诀:一真都真

    // 左边的表达式  ||  右边的表达式  -> 表达式结果

    //    true      ||    false          true

    //    false    ||    true          true

    //    false    ||    false          false

    // 如果 四个 条件中, 满足一个就成立:逻辑或 var isOk = 高 || 富 || 帅 || 情商高;

    //                                                  高富帅情商 4个条件 只要满足一个 就 返回 true

    //                                                                    只有4个条件都不满足,才返回 false

    var isOk = 1 > 2 || 1 >= 0; // true

    //          false || true  -> true

    var isOk = 1 == 1 || 1 == 0; // true

    //          true  ||  false; -> true

    //1.3 逻辑非(取反运算符)

    //    可以用来 将 一个 布尔值 变成 相反的值 

    //    !true -> false

    //    !false -> true

    console.log('!true = ' + !true);

    console.log('!false = ' + !false);

    console.log(!(1 > 2));// true

06条件语句

//1.顺序结构 语句 ,由上到下的 顺序执行 每一行代码

    // console.log('裙姐考试回来了~~');

    // console.log('他爸爸问他打了多少分');

    // console.log('裙姐打了59分');

    // console.log('他爸爸狠狠的打他屁股了~~~');

    // console.log('裙姐睡着了~~~');

    //2.条件结构 语句

    //2.1 if 单个条件

    // if(bool){

    //  if 代码块

    // }

    //    如果  if的小括号中 是 true,那么 就执行 if代码块(if后紧跟着的 大括号里的代码)

    //                      是false, 那就跳过 if代码块,执行 后面的代码

    // var score = 59;

    // console.log('裙姐考试回来了~~');

    // console.log('他爸爸问他打了多少分');

    // console.log('裙姐打了 ' + score + ' 分');

    // if (score < 60) {

    //  console.log('他爸爸狠狠的打他屁股了~~~');

    // }

    // console.log('裙姐睡着了~~~');

    //2.2 if else  二选一

    // if(bool){

    //  if 代码块

    //}

    //else{

    //  else代码块

    //}

    // 如果 if 中的是 true,就执行 if 代码块

    //              false,就执行 else代码块

    // 二选一:if else 两个 代码块,只会 根据条件结果 执行一个

    // var score = 89;

    // console.log('裙姐考试回来了~~');

    // console.log('他爸爸问他打了多少分');

    // console.log('裙姐打了 ' + score + ' 分');

    // if (score < 60) { // 如果 true,就执行 if代码块 ,如果 是 false,就执行 else 代码块

    //  console.log('他爸爸狠狠的打他屁股了~~~');

    // } else {

    //  console.log('他爸爸给了他1000块钱~~~');

    // }

    // console.log('裙姐睡着了~~~');

    //2.3 if else if else ......多条件

    /* 多条件 if  可以用来 在一个业务中 根据不同条件 执行不同的代码, 一旦满足一个条件,后面的else if 就不执行了,和 多个 if 比起来,执行效率更高

    if(bool){

    }else if(bool){

    }else if(bool){

    }else{

    }

    */

    // var score = 59;

    // console.log('裙姐考试回来了~~');

    // console.log('他爸爸问他打了多少分');

    // console.log('裙姐打了 ' + score + ' 分');

    // if (score < 60) {

    //  console.log('他爸爸狠狠的打他屁股了~~~');

    // } else if (score >= 60 && score < 80) {

    //  console.log('给500块~~~~');

    // } else if (score >= 80 && score < 100) {

    //  console.log('给1000块~~~~');

    // } else {

    //  console.log('给10000块~~~~');

    // }

    // console.log('裙姐睡着了~~~');

    // var usrName = '小苍苍';

    // if(usrName == '小苍苍'){

    //  console.log('来,我们一起学习代码编程~~!');

    // }else if(usrName == '小泽泽'){

    //  console.log('来,我们一去学习打篮球~~~!');

    // }else if(usrName == '裙姐姐'){

    //  console.log('来,我们一起去非洲探亲~~~~!');

    // }else{

    //  console.log('对不起,我不认识你,妈妈不让我和陌生人说话~~!');

    // }

    //2.4 嵌套if

    var score = 59;

    console.log('裙姐考试回来了~~');

    console.log('他爸爸问他打了多少分');

    console.log('裙姐打了 ' + score + ' 分');

    if (score < 60) {

      console.log('他爸爸狠狠的打他屁股了~~~');

      //嵌套 if~~~

      if(score < 30){

        console.log('他妈妈狠狠的打了他爸爸屁股~~~');


        if(score <10){

          console.log('不知道还会发生什么可怕的事情~~!');

        }

      }

    } else if (score >= 60 && score < 80) {

      console.log('给500块~~~~');

    } else if (score >= 80 && score < 100) {

      console.log('给1000块~~~~');

    } else {

      console.log('给10000块~~~~');

    }

    console.log('裙姐睡着了~~~');

    //3.循环结构语句

07显示类型

//1. 什么是类型转换? -- 将 一种类型的数据 转成 另外一种 类型

    //1.1 转数值 parseInt  parseFloat Number

    //a.parseInt 转 整型数值

    //          a1.如果 遇到 小数字符串,会将 小数点和小数部分 去掉,只转换 整数部分

    //          a2.如果 转换的 数据 不是一个 数值字符串,就会转换失败,返回 NaN

    //          a3.如果 遇到 非数值,会自动停止转换,只转换非数值 前面的 数据

    //          a4.如果 最前面是 空格,会 自动 忽略空格,转换后面的数据

    //          a5.如果 中间遇到空格,会自动停止转换,只转换 空格 前面的 数据

    var num = parseInt('11'); // '11' -> 11

    console.log(typeof num); // number

    var num = parseInt('11.1'); //'11.1' -> 11

    console.log(num);

    var num = parseInt('aaaa'); // NaN

    console.log(num);

    var num = parseInt('12a34'); // 12

    console.log(num);

    var num = parseInt('a12'); // NaN

    console.log(num);

    var num = parseInt(' 12'); //12

    console.log(num);

    var num = parseInt(' 12 34'); //12

    console.log(num);

    //案例:将 '100px' -> '110px' --------------------------------------

    var divWidth = '100px';

    divWidth = parseInt(divWidth); //divWidth =  100

    divWidth += 10;// divWidth =  100 + 10;

    divWidth += 'px';// 110 + 'px' -> '110px'

    console.log('divWidth=' + divWidth);

    //b.parseFloat 转小数

    var num = parseInt('11.1'); // 11

    var num = parseFloat('11.1'); // 11.1

    console.log(num);


    var num = parseFloat('aaaa'); // NaN

    console.log(num);

    var num = parseFloat('12a34'); // 12

    console.log(num);

    var num = parseFloat('a12'); // NaN

    console.log(num);

    var num = parseFloat(' 12'); //12

    console.log(num);

    //c.Number 转 任何数值

    var num = Number('111000');

    console.log(num);

    var num = Number('111000.777');

    console.log(num);

    var num = Number('111000aaa111'); // NaN

    console.log(num);

    //1.2 转字符串

    // 数据.toString()  String(x) 

    //a. 数据.toString() 可以 用来 将 数据 转成 字符串

    var num = 11;

    console.log(num.toString()); // 11 -> '11'

    //注意:数值直接量 不能 通过 .来调用 toString()方法,因为 会被当做 小数点

    // console.log(11.toString());

    console.log(true.toString());

    //b.String(x) 可以用来 将 没有 toString()方法的 数据 转成 字符串,比如:undefined 和 null

    // console.log(undefined.toString()); //报错:Cannot read property 'toString' of undefined

    var str = String(undefined);

    console.log(str);

    var str = String(null);

    console.log(str);

    //1.3 转布尔值

    // Boolean(x)  用来 将 数据 转成 true 或者 false

    //            会转成 false 的有 8 种: 0 , -0,NaN ,'',undefined , null , false , document.all

    //            其他的全都转成 true

    var isOk = Boolean('false');//true

    console.log(isOk);

    var isOk = Boolean('小白白'); //true

    console.log(isOk);

    var isOk = Boolean(Infinity); //true

    console.log(isOk);

    var isOk = Boolean('\n'); //true

    console.log(isOk);

你可能感兴趣的:(2019-05-22 js第二天)