当前位置: 首页 > 工具软件 > l10n.js > 使用案例 >

JS[13—20]

朱鹏
2023-12-01

//13_其他进制的数字

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script type="text/javascript">
            
        var a = 123;
                /*
                *在JS中,如果需要表示16进制的数字,则需要以0X开头
                *       如果需要表示8进制的数字,则需要以0开头
                *       如果需要表示2进制的数字,则需要以0b开头
                *           ————但不是所有浏览器都支持
                */
        //十六进制
                a = 0X17;
                
                //八进制
                a = 070;
                
                //二进制
                a = 0b10;
                
                //像“070”这种字符串,有的浏览器会当成8进制解析,有的会当成10进制解析
        a = "070";
        
        /*
        *解决方法:可以在parseInt()中传递一个第二个参数,用来指定数字进制
        */
        a = parseInt(a,8);
        console.log(typeof a);
        console.log(a);
            
        </script>
    </head>
    <body>
    </body>
</html>

//14_转换为Boolean

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script type="text/javascript">
            /*
            *将其他的数据类型转换为Boolean
            *    ————使用Boolean()函数
            *        ——数字-->布尔
            *          除了0和NaN,其余的都是true
            *       ——字符串-->布尔
            *          除了空串,其余都是true
            *       ———null和undefined都会转换为false
            *       ———对象也会转换为true
            */
           
           var a = 123;// true
           a = -123;//true
           a = 0;//false
           a = Infinity;//true
           a = NaN;//false
           //调用Boolean()函数将a转换为布尔值
          
           
           a = "hello";//true
           a = "true";//true
           a = "false";//true
           a = "错误";//true
           a = "";//false
           a = "     ";//true
           a = null;//false
           a = undefined;//false
           a = Boolean(a);
           console.log(typeof a);
           console.log(a);
           
        </script>
    </head>
    <body>
    </body>
</html>

//15_算数运算符

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script type="text/javascript">
            /*
            *运算符也叫操作符,
            *     通过运算符可以对一个或多个值进行运算,并获取运算结果
            *     比如:typeof就是运算符,可以用来获得一个值的类型
            *      它会将该值的类型以字符串的形式返回
            *      number  boolean  string object  undefined
            * 
            * 
            * 算数运算符 (不会对原变量产生影响,除非重新给赋值回去)
            *       当对非Number类型的值进行运算时,会将这些值转换为Number,然后再运算(除了字符串加法)
            *       任何值和NaN做运算,都得NaN
            * 
            *       +:1.可以对两个值进行加法运算,并将结果返回
            *         2.如果对两个字符串进行加法运算,则会进行拼串操作
            *                会将两个字符串拼接成一个字符串,并返回
            *         3.任何的值和字符串做加法运算,都会先转换为字符串,然后和字符串做拼串操作
            * 
            *       —:1.可以对两个值进行减法运算,并将结果返回
            * 
            *       *:1.可以对两个值进行乘法运算,并将结果返回
            * 
            *       /:1.可以对两个值进行除法运算,并将结果返回
            * 
            *       %:1.取模运算(取余数)
            */
           
           var a = 123;
            result  = a + 1;
            result  = 456 + 789;
            result  =true + 1;
            result  =true + false;
            result  =false+ 1;
            result = 2 + null;
            result = 2 +NaN;
            result = "123" + "456";//返回字符串“123456”,拼串
            result= "你好" + "大帅哥";//返回字符串“你好大帅哥”,执行了拼串操作
            var str = "锄禾日当午,"+
                      "汗滴禾下土。"+
                      "谁知盘中餐,"+
                      "粒粒皆辛苦。" 
            result = 123 +"1";//返回字符串“1231”
            result = true +"hello";//返回字符串“truehello”
            
            //任何值和字符串相加,都会转换为字符串,并作拼串操作
            /*
            *      我们可以利用这一特点,来将一个任意的数据类型转换为String
            *        我们只需要为任意的数据类型 + 一个“”,即可将其转化为String
            *        这是一种隐士的类型转换,由浏览器自动完成,实际上它也是调用的String()函数
            */
           //var result = typeof(a);
           
           var c = 123;
           //c=String(c);
           //c = c + "";
          // c = null;
          // c = c +"";
           //console.log(result);
         //  console.log(typeof c);
        // console.log("c=  "+c);
         
         result = 1 + 2 +"3";//返回字符串“33”
         result ="1" + 2 + 3;//返回字符串“123”
         result =100 -5;//返回95
         result =100 -true;//返回99
         result =100-"1";//当对非Number类型的值进行运算时,会将这些值转换为Number,然后再运算(除了字符串加法)
         result =100+"1";//字符串加法
         
         result = 2 * 2;
         result = 2 * "8";
         result = 2 * undefined;//2是number,undefined是非number,会转换成number,即NaN。返回值为:NaN
         result = 2 * null;//返回0
         result = 4 / 2;//返回2
         result = 3 / 2;
         // console.log("result  = " + result);
         /*总结:
         *        任何值做减、乘、除运算时,都会转化为number
         *        我们可以利用这一特点,做一隐式的类型转换
         *        可以通过为一个值做:减0、乘1、除1,将其转化为number
         *         加0不可以,加0会遇到字符串,会出现自动拼串的结果
         *       原理和Number()函数一样,但要简单一些
         */
        
        var d = "123";
        //d = Number(d);
        d = d -0;
        /* console.log(typeof d);
        console.log(d); */
        
        result = 9 % 5;
        console.log(typeof result);
        console.log(result);
           
        </script>
    </head>
    <body>
    </body>
</html>

//16_一元运算符

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script type="text/javascript">
            /*
            *  一元运算符,只需要一个操作数
            *    +   正号:1.正好不会对数字产生任何影响
            *    -   负号:1.负号可以对数字进行符号的取反
            *          
            * 对于非Number类型的值,
            *             会将其转换为Number,然后再运算
            *            可以对一个其他数据类型使用 + ,将其转换为Number
            *             它的原理和Number()函数一样
            * 
            */
        
        var a = -123;
        a = -a;
        
        a = true;
        a = -a;
        
        a = "18";
        a = +a;
        /* console.log("a =" +a);
        console.log(typeof a); */
        
        var result = 1 + +"2" + 3;
        console.log("result = "+result);
        console.log(typeof result);
         
        
        </script>
    </head>
    <body>
    </body>
</html>

//17_自增和自减

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script type="text/javascript">
            /*
            *  自增(自增运算符是:++)
            *      ——通过自增可以使变量在自身的基础上增加 1
            *      ——对于一个变量自增以后,原变量的值会立即自增1
            *     ——自增分两种:后++(a++) 和  前++ (++a)
            *       无论是a++,还是++a,都会使原变量自增1
            *       不同的是 a++ 和 ++a 的值不同
            *       a++的值,等于原变量的值(自增前的值)
            *       ++a的值,等于原变量新值(自增后的值)
            * 
            * 
            *  自减(自减运算符是:--)
            *      ——通过自减可以使变量在自身基础上减1
            *      ——自减分成两种:前--(--num) 和 后--(num--)
            *        无论是num-- 和 --num,都会使自变量值自减1
            *        不同的是num-- 和 --num的值不同
            *         num--是变量的原值(自减前的值),
            *         --num是变量的新值(自减后的值)
        
           
           
/*            
           var num = 10;
           //num --;
           //-- num;
           console.log("num -- = " + --num);
           console.log("num = " +num);
           
           
           */
           
/*            var a = 1;
           //a = a+1;
           //a++;//使a自增1
           a++;
        
           console.log("a++ = " + a++);
           console.log("++a = " + ++a);
           console.log("a = " +a);
           console.log(typeof a); */
            
/*            var c =10;
           //第一次c++ 是在10的基础上自增,此时c变成11
           c++;//此时值为11
           //第二次c++ 是在11的基础上自增,此时c变成12,而它的原值是11
           console.log("c++ =" + c++);//在原值 c++ 的基础上新增的,所以返回值为11
           console.log(c); */
           
           
/*            var d = 20;
           //var result = d++ + ++d + d;
           //d = d++;
           d = d++;
           console.log("d = " + d );//21
           //console.log(++d);//22 */
           
        </script>
    </head>
    <body>
    </body>
</html>

//18_自增练习

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script type="text/javascript">
    
         //练习
           var n1 = 10,n2 = 20;
           var n = n1++;
           console.log("n = " +n);
           console.log("n1 = " +n1);
           
           
           n = ++n1;
           console.log("n = " +n);
           console.log("n1 = " +n1);
           
 /*            
           n = n2--;
           console.log("n = " +n);
           console.log("n2 = " +n2);
        
           n = --n2;
           console.log("n = " +n);
           console.log("n2 = " +n2);
           */            
                     
        </script>
    </head>
    <body>
    </body>
</html>

//19_逻辑运算符

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script type="text/javascript">
            /*
            *  JS中为我们提供了三种逻辑运算符
            *  !    非
            *     ——!可以用来对一个值进行非运算
            *         所谓非运算就是只对一个布尔值进行取反操作,
            *           true 变  false; false  变 true
            *    ——如果对一个值进行两次取反,这个值不会变化
            *    ——如果对非布尔值进行元素,则会将其转化为布尔值,然后再取反
            *      所以我们可以利用该特点,来将一个其他的数据类型转换为布尔值
            *      可以为任意一个数据类型取两次反,来将其转换为布尔值
            *      原理和Boolean()函数一样
            * 
            *     为任意的数据类型做两次非运算,即可将其转换为布尔值
            * 
            *  &&   与  可以对符号两侧的值进行与运算,并返回
            *     ———运算规则
            *              —— 两个值中只要有一个false,就返回false
            *                只有两个值都为true时,才会返回true
            *             ——JS中的 “与” 属于短路的 “与”,
            *               如果第一个值为 false,则不会看第二个值
            * 
            *  ||   或  可以对符号两侧的值进行或运算,并返回结果
            *      ————运算规则:
            *               ——两个值中只要有一个true,就返回true
            *                 如果两个值都为false,才返回false
            *              ——JS中的“或”属于短路的“或”
            *                 如果第一个值为 true,则不会检查第二个值
            *                
            *   
            */
        //如果两个值都是true,则返回true
         var result = true && true;
         //只要一个false,就返回false
         result = true && false;
         result = false && true;
         result = false && false;
         //console.log("result = " + result);
         
         //第一个值为true,会检查第二个值
         //true && alert("看我出不出来");
         
         //第一个值为false,不会检查第二个值
         //false && alert("看我出不出来");
           
           
/*         var  a = false;
        a = !!!a;
        console.log("a = " +a); */
        
/*         var b = 10;
        b = !!b;
        console.log("b = " +b);
        console.log(typeof b);
         */
        
/*        var c = "hello";
        c =!!c;
        console.log("c = " +c);
        console.log(typeof c);
 */ 

/*        //两个都是false,则返回false
        result = false || false ;
        console.log("result = " + result);
        
        //只要有一个true,就返回true
        result = true || false ;
        console.log("result = " + result);
        
        result = false || true ;
        console.log("result = " + result);
        
        result = true || true ;
        console.log("result = " + result); */
        
        
        
        
        //第一个值为false,则会检查第二个值
        //false || alert("看我出不出来");
        
        true || ("看我出不出来");
        
        //alert("看我出不出来") || false;

        </script>
    </head>
    <body>
    </body>
</html>

//20_非布尔值的与或运算

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script type="text/javascript">
            /*
            * &&  || 非布尔值的情况
            *          对于非布尔值进行与或运算时,
            *          会先将其转换为布尔值,然后再运算,并且返回原值
            *      ——与运算:
            *            如果第一个值为true,则必然返回第二个值
            *            如果第一个值为false,则必然返回第一个值
            * 
            *     ——或运算:
            *            如果第一个值为true,则直接返回第一个值
            *            如果第一个值为false,则直接返回第二个值
            */
        //true && true 
        //与运算,如果两个值都为true,则返回后边的
         var result = 2 && 1;
         
         //如果两个值中有false,则返回靠前的false
         // false&&true
         result = 0 && 2;
         //false&&false
         result = NaN && 0;
         result = 0 && NaN;
         
         //true || true
         //如果第一个值为true,则直接返回第一个值
         result = 1 || 2;
         result = 2 || 1;
         result = 2 || NaN;
         
         //如果第一个值为false,则直接返回第二个值
         result = NaN || 1;
         result = NaN || 0;
         
         result = "" || "hello";
         
         result = -1 || "你好";
         console.log("result = " + result);
            
        </script>
    </head>
    <body>
    </body>
</html>

 类似资料: