[19/05/26-星期日] JavaScript_ 基本语法_运算符

一、概念

  

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>js的基本语法2</title>
        <script type="text/javascript">
            /*1、进制转换  16进制0x开头  如0xff=255(十进制);  8进制是0开头 070=56(十进制)
             *             2进制0b开头 0b10=2(十进制) 兼容性不好 
             *  像“070”这样的字符串,有些浏览器会当八进制有些当十进制解析,所以可以在parseInt传参数,指定进制的类型
             *2、将其他数据类型转成布尔值。
             *  数字-->布尔   0和null是false,其他都是(正、负数)true
             *  字符串-->布尔  空串是false 其余都是true
             *  null和undefined、object -->布尔 都是true
             */
            var a="070";
            //console.log(parseInt(a,8));//这里第2个参数的8就是让浏览器指定8进制解析
            var b=123;
            //console.log(Boolean(a));
            
            /*运算符(如typeof 获取值得类型) 通过对一个或多个值进行运算,并返回获取运算结果
             * 1、typeof 会将值的类型以string 字符串的形式返回 如果typeof(34) 的返回类型就是string
             * 2、+ - * / 加减乘除  %取余 不改变返回值类型 对于非number类型的自动转存number类型后再运算
             * 【注】两个字符串相加时或其他任何类型(先转成字符串类型)加字符串类型时  “+” 做连接符 
             * 利用让任意数据加空串也可将其他数据类型转成字符串类型 如:var a=123+"";
             * 是从左到右计算的  1+2+"3" 输出 33; "1"+2+3 输出 123
             * 【注】100-"1"输出99 除了+可能做连接符 其余的都是把其他类型转成number类型的数
             * 10/3的结果不是Java中3 而是就算出3.33333.... (大约16位)
             * 
             * 3、一元运算符 
             * + -跟数学中一样 对于其他类型先转成数字类型 如var a= +"18" 输出18 数字类型的
             * a++ 、 ++a都能自增1,结果一样变量a都能加1  a=a+1;
             * a是变量  a++是个表达式,也有自己的值,单独使用时,功能一模一样,都是让a的值增加1;
             * 不同的是与赋值号“=”一起使用时,y=++a表示先将a的值增加1后,再把值赋给y;
             *                              y=a++表示先把a的值给y,a自己再增加1.
             *   a++: a++的值等于原变量的值(自增前的值)  等于先赋值后自增
             *   ++a: ++a的值等于原变量的新值(自增后的值)  等于先自增后赋值
             * 
             * */            
            var x=10;
             y=x++;            
            console.log("x= "+x);
            console.log("y= "+y);
                   
            var m=10;
            n=++m;
            console.log("m= "+m);
            console.log("n= "+n);
                        
            /*4、逻辑运算符 
             * 与(&&) 全真为真,“短路与”,前边是假就不会去判断后边的真假
             * 或(||) 全假为假,“短路或”,前边是真就不会看后边的真假
             * 非(!)
             * 【注意】对于非布尔值会先将其转成布尔值再去运算,然后返回原值,不是true false 
             * (1)与(找假): 若第一个是真,必然返回第二个
             *              若第一个为假,必然返回第一个
             * (2)或(找真): 若第一个真,则直接返回第一个值
             *              若第一个假,则直接返回第二个值
             * 如var a=1&&2 输出2,不是true 
             
             * */
            var e=(1==2)&&(2==2);
            console.log(e);
            /*5、赋值运算符  =、+=(是一个运算符,中间不能加空格,如a=a+5简写成a+=5)、-=、*=、/=
             * %=(如 a%=5等价于 a=a%5) 
             *  
             *6、关系运算符  > 、< 、>=、<=、==(恒等于) 、!=(不等于) ===(全等于) !==(不全等于)
             * 如果关系成立返回真 不成立返回假 若是非数字则先转成数字再比较 总之,以数字为基准
             * 如果两边都是字符串,不会转成数字,而是比较Unicode编码(逐位比较,类似于单词本)
             * ---先比较第1位若有结果不会往下看  如字符串"11"<"5" 输出true 因为字符1的小于字符5的编码 不会看第2位
             * ---若有第1位相同,比较第2位,以此类推
             * ---比较字符串型的数字时要转型 如"1234"< +"5" 加号就相当于把字符串5转型成数值型
             * 任何值和NaN(常见于字符串,字符串变成NaN)比较都是false
             * var a=(5>3); 返回true 
             * "123"===123 类型不同直接返回假 不做类型转换 同理不全等直接返回真
             * 
             * 7、输出Unicode 编码中的字符  前边加个\u后边跟4位16进制编码
             * 在网页中显示使用   &#编码(这里的编码需要是10进制)
             * 
             * 8、条件运算符(也叫三元运算符)
             * ? :  先对条件表达式求值 若该值为真,执行语句1(前边),并返回执行结果;反之执行语句2
             *     max=(3>2)?3:2 
             * 9、优先级(跟数学中差不多) 记得加括号即可
             * 优先级一样,则从左到右
             */
            console.log("\u2620");
            var max=(10>8)?10:8
            console.log(max);
            var a=12,b=15,c=8;
            var max2=(a>b?a:b) > c?((a>b?a:b)):c;
            console.log(max2)
         
        </script>
    </head>
    <body>
        &#9760
    </body>
</html>

猜你喜欢

转载自www.cnblogs.com/ID-qingxin/p/10909454.html
今日推荐