美文网首页
类型转换与运算符

类型转换与运算符

作者: 致自己_cb38 | 来源:发表于2018-09-19 22:09 被阅读0次

    1. 数据类型转换

    • 强制类型转换
      • parseInt : 将数字或者字符串转化整形

      • parseFloat: 将数字或者字符串转化为浮点型。如果转化的内容结果是整形,那么结果就是整形,不会是浮点型。

      • Number('内容'):结果只有两种一种是数字类型,一种是NaN。只要内容中有一个不是数字的字符,那么结果就是NaN。
        eg:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <script>
            console.log(Number('12asd')); //NaN
        </script>
    </body>
    </html>
    
    • String: 将内容转化为字符串类型。
      当用string转化null ,undefined,布尔值的时候会直接将这个原始的数据类型转化为字符串。
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <script>
            console.log(typeof String(123)); //String
            var a = String(true);
            console.log(typeof a); //String
            console.log(a); //true
        </script>
    </body>
    </html>
    
    • Boolean:把内容转化成布尔值。把任何内容转换成true或者false。

    转为布尔值为false的情况:
    undefined
    null
    false
    0
    NaN
    ''或者"" 空字符串

    总结:
    string类型,只要不是空字符串,都会转为true。
    number类型,只要不是0,即使是负数,都会转成true。
    object类型,只要不是null类型,都会转换成true。
    undefined类型,都会转换成false。

    • 隐式类型转化:
      判断里面: 结果转化为布尔值。
      eg:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <script>
            console.log(1==2); //false
            console.log(3>2); //true
            /*var a = 'sa';
            if(isNaN(a)){
                console.log(a);
            }
            while(判断){
    
            }
            */
            var a = '7654';
            console.log(Boolean([])); //true
        </script>
    </body>
    </html>
    
    • 具有字符串的加法:两边都要转化为字符串。就是字符串的拼接。
    • 数字与字符串比较大小:字符串要转化为数字。
    • 减法运算的时候,字符串要转化为数字。
      技巧:快速的实现字符串转化为数字。减0运算。
      eg:
    var a = '123';
    console.log(typeof (a-0)); //number
    

    2.运算符号

    • 2.1算术运算符
      • 加法运算符: 数字的加法 , 字符串的加法。
      • 数字的加法就是简单的数字相加,要求加号两边都是数值类型。
      • 字符的加法是字符串拼接,只要加号两边有一边是字符串,那么这个运算就是字符串的拼接。(字符串必须是放在引号里的)。
      • 减法运算符: 数字的减法,会进行隐式类型转化,
        如果减号两边有一边不是数字,那么会自动转化为数字类型。
      • 乘法(*)与除法(/):就是简单的数字运算。
        JS里面除法运算的除数是可以为0。结果是无穷。Infinity
      • 取余(%):余数运算。就是除法运算在得到结果为整数的情况下,被除数剩下的值。
        eg:
        余数: 5/2=2 ----1 5%2 = 1
        • 取余运算的符号只与被除数有关,被除数是什么符号,余数就是什么符号。
          eg:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
    <script>
        console.log(3%-2); //1
    </script>
    </body>
    </html>
    
    • 绝对值: 某一个数字的正数值。

      • 正数的绝对值就是本身,负数的绝对值是相反数,0的绝对值就是0.

      Math.abs() 获取绝对值。
      Math.pow() 次方运算
      Math.random()随机数

      • 虽然浮点数也能够进行取余运算,但是极度不精确。建议不要使用。

    案例: 用JS实现表格的各行变色。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <table id="myTable" border=1 cellpadding="0" cellspacing="0" width="800">
            <tr>
                <th>第一列</th>
                <th>第二列</th>
                <th>第三列</th>
            </tr>
            <tr>
                <td>11111</td>
                <td>22222</td>
                <td>33333</td>
            </tr>
            <tr>
                <td>11111</td>
                <td>22222</td>
                <td>33333</td>
            </tr>
            <tr>
                <td>11111</td>
                <td>22222</td>
                <td>33333</td>
            </tr>
            <tr>
                <td>11111</td>
                <td>22222</td>
                <td>33333</td>
            </tr>
            <tr>
                <td>11111</td>
                <td>22222</td>
                <td>33333</td>
            </tr>
            <tr>
                <td>11111</td>
                <td>22222</td>
                <td>33333</td>
            </tr>
            <tr>
                <td>11111</td>
                <td>22222</td>
                <td>33333</td>
            </tr>
            <tr>
                <td>11111</td>
                <td>22222</td>
                <td>33333</td>
            </tr>
        </table>
        <script>
        //获取
        var oTr = document.getElementsByTagName('tr');
        for(var i=0; i<oTr.length;i++){
            if(i%2 == 1){
                oTr[i].style.background = 'red';
            }else{
                oTr[i].style.background = 'green';
            }
            if(i==0){
                oTr[i].style.background = '#fff';
            }
        }
        </script>
    </body>
    </html>
    
    • 自增于自减运算:
      i++: 对 i 加一然后结果赋值给 i 。 和i= i+1操作一样。
      i--: 对 i 减一然后结果赋值给 i 。 和i= i-1操作一样。
      ++i: 对 i 加一然后结果赋值给 i 。 和i= i+1操作一样。
      --i: 对 i 减一然后结果赋值给 i 。 和i= i-1操作一样。
      区别:
      如果自增自减运算参与其他运算,那么i++要先参加运算,然后在自增或者自减。++i先自增或者自减,然后再参与运算。

      eg:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
    <script>
    var i = 1;
    // console.log(i);
    // console.log(i + (i++)); // 2
    // console.log(i+(++i));  //3
    console.log(++i + i +  i++ + i + ++i); //13
                     /*  2     2     
                            4          2
                                  6           3
                                        9            4
                                              13
                     */
    </script>
    </body>
    </html>
    
    • 乘方运算(): 8^2
      3
      2 = 9
    • 赋值运算: =
      var a = 1;
      a = a+2; ===> a += 2;
      +=
      -=
      *=
      /=
      %=

    2.2比较运算符

    < 小于号 > 大于号 >= <=
    == 判断值是否相同
    === 判断值与类型是否相同
    != 判断值是否不同
    !== 判断不全等。

    • 这些比较运算符一般都是使用需要判断的地方,比如说if,while等小括号里面,返回值一定是一个布尔值。

    • 如果是数字与字符串进行比较,那么字符串会自动的转化数字进行比较。
      +如果是两个字符串进行比较,那么先比较第一个字符,第一个字符大的字符串大,第一个字符相同再比较第二个字符。

    • 字符大小是按照Unicode编码确定的。

      • Unicode编码:Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
        NaN与任何值比较都是false。

    2.3逻辑运算符

    && 与 ,  符号两边的条件同时符合才会返回true
    || 或 ,  符号两边只要有一边符合条件就会返回true
    ! 非 ,   取反,true转为false,false转为true。
    

    短路运算:
    当逻辑判断操作前面的运算已近得出最终结果的时候,后面的操作就不在执行。具体指:或操作的第一个判断返回true,与操作的第一个判断返回false。
    eg1:

        var i = 10;
        if(4>2 || 10 > ++i){
            console.log(i)
        }
    

    eg:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
    <script>
        if(3>2 || 6>8){
            console.log('亮灯'); //亮灯
        }
        var i = 10;
            if(4<2 && 10 > ++i){
    
            }
        console.log(i) //10
    </script>
    </body>
    </html>
    

    2.4三元运算符。

    • 三元:三个操作数
    • 自增,自减:一元操作符 。 i++
    • == , > :二元操作符 。 a >b ;
      ?:
      条件?操作1:操作2;
      类似于:
      if(条件){
      操作1;
      }else{
      操作2;
      }
      eg:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
    <script>
        var a = 11;
        /*
        if(a>10){
            console.log(a);
        }else{
            console.log(10);
        }
        */
        // a>10?console.log(a):console.log(10);
        var c = a>10?11:12;
        console.log(c); //11
    </script>
    </body>
    </html>
    

    相关文章

      网友评论

          本文标题:类型转换与运算符

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