美文网首页吃饭用的前端
JS语法基础(二)

JS语法基础(二)

作者: CNLISIYIII | 来源:发表于2019-03-28 12:50 被阅读0次

    (一)运算符

    1.逻辑运算符

    逻辑 与 | 且:&&

    语法:条件1 && 条件2 (运算结果也是布尔值)

    优先级:比较运算符>逻辑运算符>赋值运算符。

    规则:两端条件都为true时,结果才是true,否则结果是false。

    逻辑 或:||

    语法:条件1 || 条件2

    规则:两端条件都为false时,结果是false,否则结果都为true。

    逻辑 非:! (或取反运算)

    语法:!条件

    规则:有一个感叹号,结果就对条件取一次相反。

    2.一元运算符

    一元运算符:运算符仅仅运算一种数据;(自增、自减、取反

    取反:!true

    自增:++(让变量自增,针对变量)

    前置自增:++变量名

    后置自增:变量名++

    结果:变量会自增1。

    后置自增和前置自增在针对变量本身时没有区别。

    前置自增在独立输出(++b)或参与其他运算时,先自身+1,然后再返回表达式中。先自增1再使用。

    分解过程:b = b + 1; b = 11; console.log(b);

    后置自增在独立输出(c++)或参与其他运算时,先把原有值返回表达式中,再自增。先使用后自增1。

    分解过程:c = 10; console.log(c); c = c + 1;

    二元运算符:运算符可以运算两种数据;(算数运算符比较运算符逻辑运算符都是二元运算符)

    3.数据类型的转换

    任何数据和字符串相加,表示拼接。

    var age = prompt('请输入年龄');

    alert(age + 100);    //输入5时,结果输出5100

    强制转换

    转字符串:

    方法1:变量.toString();

    undefined和null不能调用toString()

    var a;

    var a = null;

    var r = a.toString();    //报错

    console.log(r);

    console.log(typeof r);    //报错

    方法2:String(其他数据);

    console.log( typeof String(10) )

    console.log( typeof String(true) )

    console.log( typeof String(unll) )

    转数字:

    Number(其他数据);

     //字符串数值转数字(使用较多)

    console.log( Number('123') )    

    console.log( typeof Number('123') );

    //非字符串数值转数字

    console.log( Number('abc') ) ;    //结果为NaN

    console.log( typeof Number('abc') );

    console.log( Number('123abc') ) ;    //结果为NaN

    //布尔值转数字

    console.log( Number(true) ) ;     //结果为1

    console.log( Number(false) ) ;     //结果为0

    console.log( typeof Number('true') );

    //undefined 和 null转数字

    console.log( Number(undefined) ) ;     //结果为NaN

    console.log( Number(null) ) ;     //结果为0

    转数字为整数或小数:

     //转换成整数。

    console.log( parseInt(num) ) ;     //若num=3.14则运行结果为3

    console.log( parseInt('3.14') ) ;    

    console.log( parseInt('3.14ab') ) ;      //结果为3

    console.log( parseInt('ab3.14') ) ;     //结果为NaN

    console.log( parseInt('100px') ) ;     //结果为100。将像素转换成数字

    若转换的数据最前面是数值时,会提取前面的数字。

    //转换成整数

    console.log( parseFloat('3.14') ) ;       //3.14

    console.log( parseFloat('3.14abc') ) ;     //3.14

    console.log( parseFloat('abc3.14') ) ;     //NaN

    转布尔值:

    Boolean(其他数据)

    console.log( Boolean('') ) ;     

    console.log( Boolean('0') ) ;     

    console.log( Boolean('undefined') ) ; 

    console.log( Boolean('NaN') ) ; 

    console.log( Boolean('null‘) ) ; 

    //以上结果都为false

    console.log( Boolean(-1) ) ;   

    console.log( Boolean(infinity) ) ; 

     //只要括号里的值不为空,结果就为true

    隐式转换

    任何数据和字符串相加都会自动转换成String类型

    var age = '5' + 100;   

    console.log(age);    // '5' + '100 '结果为 5100

    var r = '5' + true;   

    console.log(r);    //结果为 5true

    var r = '5' + -100;   

    console.log(r);    //结果为 5-100

    转数字:任何数据在做加减乘除算数运算时(除了和字符串相加以外),或者任何数据在和数字比较时,其他数据都会自动转换成Number类型。

    //算数运算

    var r  = '1' - 1;  //相当于Number('1') - 1, 结果为0

    var r  = '10' * ‘2’;  //相当于Number('10') * Number('2'), 结果为20

    console.log(r);   

    var r  = '我' * ‘你’;  //相当于Number('我') * Number('你'), 结果为NaN

    var a;

    var r = a * 2;    //Number(undefined), 结果为NaN

    console.log(r);   

    任何数据和NaN做算数运算时,结果都是NaN。

    //比较运算

    console.log('1' > 2);      // '1' -> 1, 1>2, 结果为false

    console.log(true < 2);      // Number(true), 1>2, 结果为true

    console.log(NaN == NaN);      //结果为false。NaN和自身比较也是不相等的

    console.log(NaN === NaN);    //结果为false

    NaN和谁做比较结果都是false

    转布尔:

    console.log ( !1 );   // 1 -> Boolean(1),结果为true。

    console.log ( !0 );   // 0 -> Boolean(0),结果为false。

    console.log ( !'张三' );   // '张三' -> Boolean(1),结果为true

    (二)分支结构

    1.if

    2.if - else

    3.三元运算符:

    表达式?结果1:结果2;

    4.if - else if - else

    5.switch:

    等值比较时是全等比较(===比较类型和值)

    switch(传入的) {

    case1: 

        console.log('周1');

        break;    //解决case穿透性,结束switch结构。

    case2: 

        console.log('周2');

        break;

    case3: 

        console.log('周3');

        break;

    default:     

        console.log('输入不合法')       //都不满足,执行default。

    相关文章

      网友评论

        本文标题:JS语法基础(二)

        本文链接:https://www.haomeiwen.com/subject/uwlfbqtx.html