JavaScript 学习笔记 数据类型的转换 转换为布尔型 前置递增运算符 多分支语句 短路运算 三元表达式

156 阅读5分钟

Js 学习笔记

var addnum='10'; var addnum2=3.14; var addnum3=addnum+addnum2; console.log('addnufgvbgszdgvxdvxsvm3', addnum3);

    // 最大值
    console.log(Number.MAX_VALUE);
    // 最小值
    console.log(Number.MIN_VALUE);
    // 无穷大
    console.log(Number.MAX_VALUE*2);
    // 无穷小
    console.log(Number.MIN_VALUE*2);

    isNaN() 这个方法用来确定一个变量或是值是否为非数字的类型,返回true或者false
    console.log(isNaN(12));
    console.log(isNaN('haoshi'));

    'pink' 'pink好人' '12' 'ture'都是字符串  单双均可若嵌套需内外区分

    字符串型  字符串转义字符 \n换行符newline  \\斜杠  \'单引号  \"双引号 \t  tab缩进  \b  空格blank

    alert('kiufqhihwifiq,whfibdjqbjqbf。\njkwqbjqbfjbwqj。\nkfwq"bfqbfj"wqb');

    1.检测获取字符串的长度  length

    var age=prompt('请输入您的年龄')
    var str='您今年经'+age+'岁了'
    alert(str);


    简单数据类型的五种分类
    var flag = true; //布尔型
    var flag1 = false;//布尔型
    console.log(flag+1);//运算结果当1来计算
    console.log(flag1+1);//运算结果做0算

    var variable=undefined
    console.log(variable+1);

    var nve=null
    console.log(nve+11);

    typeof 可以检测数据类型

    数据类型的转换  使用表单和prompt的数据默认是字符串类型的 不能进行加法运算
    需要转变数据类型

    转化为字符串类型
    var num=10;
    alert(typeof num.toString())

    字符串类型

    var num=10
    var str=num.toString();
    console.log(str);
    console.log(typeof str);
    // 强制转换
    console.log(String(num));
    // 隐式转换
    console.log(num+'');

    转换为数字型  重点
    var age=prompt('请输入你的年龄')
    console.log(parseInt(age));

    console.log(parseInt('3.14'));
    console.log(parseInt('3.14px'));
    console.log(parseInt('px3.14'));


    可以带小数的
    console.log(parseFloat('3.14'));
    console.log(parseFloat('px3.14'));
    console.log(parseFloat('3.14px'));


    var age=prompt('请输入您的出生年份');
    var str=2018-age;
    alert('您今年已经'+str+'岁了');
    console.log('您今年已经'+str+'岁了');

    小案例2(数字器)
    var add1=prompt('请输入第一个值');
    var add2=prompt('请输入第二个值');
    var res=parseFloat(add1)+parseFloat(add2);
    alert('结果是'+res);
    

        // 转换为布尔型  
        // 方式 boolean()函数
        console.log(Boolean(''));
        console.log(Boolean(NaN));
        console.log(Boolean(0));
        console.log(Boolean(null));
        console.log(Boolean(undefined));
        // 其余均为true


        // 运算符  operator     + - * \ %(取余)
        console.log(1 + 1);
        // console.log(0.1 + 0.2);0.30000000000000004
        // 不要直接判断两个浮点数是否相等 转换2进制有误差

        // 如何判断一个数是否能被整除  用取余若值为零则可以整除
        console.log(4 % 2);

    前置递增运算符  ++需配合变量来用  先加一再返回值
    var num = 10;
    ++num;
    console.log(num+11);

    后置递增运算  先返回原值
    后置递增单独
    var num = 10;
    num++;
    console.log(num);//输出结果 与前置一样
    // 后置递增加入运算 
    var age = 10
    console.log(age++ + 10);//20
    // 运算完成后递增加一
    console.log(age++ + 10 - --age);//21

    var e = 10
    var f=e++ + ++e
    console.log(f);//22

    字符串的截取函数 

    var str = 'abcdefghij';
    str.substr(start, [length])
            substr()会从start获取长度为length字符(如果截取到字符串的末尾,则会停止截取)。
    如果start是正的并且大于或等于字符串的长度,则substr()返回一个空字符串。
    若start为负数,则将该值加上字符串长度后再进行计算(如果加上字符串的长度后还是负数,则从0开始截取)。
    如果length为0或为负数,substr()返回一个空字符串。如果length省略,则将substr()字符提取到字符串的末尾。


    console.log('(1,2):' + str.substr(6,2));
    console.log('(6,5):' + str.substr(6,5));
    console.log('(-3)' + str. substr(-3));



    var  edg = 'abcdefghij';
    console.log(edg.length);
    // str.substring(indexStart, [indexEnd])
    //         substring()从提取的字符indexStart可达但不包括 indexEnd
    // 如果indexStart 等于indexEnd,substring()返回一个空字符串。
    // 如果indexEnd省略,则将substring()字符提取到字符串的末尾。
    // 如果任一参数小于0或是NaN,它被视为为0。
    // 如果任何一个参数都大于stringName.length,则被视为是stringName.length。
    // 如果indexStart大于indexEnd,那么效果substring()就好像这两个论点被交换了一样; 例如,str.substring(1, 0) == str.substring(0, 1)
    console.log('(-2,4)' + edg.substring(-2,4));
    console.log('(5,3)' + edg.substring(5,3));
    console.log('(9,1)' + edg.substring(9,1));




    var  agg = 'abcdefghij';
    console.log('(3,6)' + agg.slice(3,6));
    console.log('(-6)' + agg.slice(-6));
    console.log('(20,2)' + agg.slice(20,2));
    console.log('(3,7)' + agg.slice(3,7));
    
    逻辑运算符
    &&逻辑“与”   ||逻辑或  !逻辑非
    逻辑“与”  两个都为true 结果才为true
    逻辑“或”  只要有一个true 结果就为true,两者都为false时才为false
    逻辑“非”  取反值

    短路运算
 
    网吧小例子(if语句)
    var years = prompt ('请输入您的出生年份');
    var age = (2022-years);
    if (age>=18) {
        alert ('进入网吧')
    };

    if (条件表达式) {
        // 执行语句1
    }   else {
        // 执行语句2
    }

    网吧小例子(if  eles语句)双分支语句
    var years = prompt ('请输入您的出生年份');
    var age = (2022-years);
    if (age>=18) {
        alert ('进入网吧')
    } else {
        alert('出去')
    };

     var year = prompt('请输入年份')
     if (year % 4==0 && year % 100 !=0 || year % 400==0) {
        alert('闰年')
     } else {
        alert('平年')
     }

    中奖案例
    var win = prompt('请输入您的名字')
    if (win=='刘德华') {
        alert('恭喜你中了5块')
    } else {
        alert('很遗憾您没中奖')
    }

    多分支语句 就是利用多个条件来选择不同的语句执行  得到不同的结果 
    var score = prompt('您的分数')
    if (score>=90) {
        alert('你是我的骄傲')
    } else if (score>=80) {
        alert('你已经很棒了')
    } else if (score>=70) {
        alert('你要继续加油喽')
    } else if (score>=60) {
        alert('你很危险')
    } else if (score<60)  {
        alert('不行了')
    };

    三元表达式 
    一元表达式 ++num  二元 3+5  三元  ? :
    var num = prompt('输入0-59数字')
    var tle = num<10 ? '0'+num: num
    console.log(tle);
    alert(tle)

    switch也是多分枝语句 也可以实现多选一
    switch (表达式) {
        case value1:
            执行语句1;
            break;
        case value2:
            执行语句2;
            break;
        default:
            执行最后语句;
    }
    执行思路 利用我们表达式的值 和 case 后面的选项值相匹配 若匹配上,就执行该case 里面的语句 若都没有匹配上则执行default
    
    var fruit = prompt('请输入您稀罕的水果');
    switch (fruit) {
        case '苹果':
            alert('苹果3.5/斤');
            break;
        case '榴莲':
            alert('榴莲的价格是35/斤');
            break;
    default:
        alert('没有此水果')
    }

if elase 多分支语句 var time = prompt('请输入现在的时间') if (time<=12){ alert('早上好') } else if (time<=18) { alert('中午好') } else if (time<=23) { alert('晚上好') } else if (time<=24) { alert('深夜好') };

    var per = prompt('请输入一个值');
    if (per%2==0) {
        alert('偶数');
    } else{
        alert('奇数');
    }

switch 多分枝语句 var week = prompt('输入1-7'); //条件命令需和case值 全等 全等 全等 switch (week) { case '3': alert('星期3');
break; case '4': alert('星期4'); break; case '5': alert('星期5'); break; case '6': alert('星期6'); break;
case '7': alert('星期7'); break; default: alert('不存在'); }

    for 循环
    断点调试
    for (var i=1 ;i <=100 ; i++) {
        console.log('错了');
    }

    var num=prompt('输入次数')
    for (var i =1 ; i<= num; i++) {
        console.log('错了');
    }