JavaScript基础----全方位的基础篇(一),前方高能哦

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/itwangyang520/article/details/82556347

--------------------------------------------JavaScript:简介----------------------------------------------------

     JavaScript:简称:js
     js分为三部分:
         1.ECMAScript 标准------js的基本语法
         2.DOM---------Document Object Model 文档对象模型
         3.BOM----------Browser Object Model 浏览器对象模型


         JavaScript是什么?
             是一门脚本语言
             是一门解释性语言
             是一门动态类型的语言
             是一门基于对象的语言
            是一门弱类型语言
            运行在客户端


         编译语言:需要把代码 翻译成计算机所认知的二进制语言,才能够执行
         脚本语言:不需要编译,直接可以运行的
         常见的脚本语言:t-sql ,cmd


         电脑的硬件---->系统---->客户端的程序----->代码
         电脑的硬件---->系统---->浏览器---->js代码
         js原名不是JavaScript,是 liveScript

         js的作用?解决用户个浏览器之间的交互的问题

         js现在可以做什么?
             1.网页特效
             2.服务端开发(node.js)
             3.命令行工具(node.js)
             4.桌面程序(electron)
             5.App(cordova)
             6.控制硬件-物联网(Ruff)
             7.游戏开发(coco2d-js)

         HTML:是标记语言,展示数据的
         css:美化页面的
         JavaScript:用户和浏览器交互


         js代码可以分为三个部分:
             1.在html的文件中,script的标签中写js代码
             2.js代码可以在html的标签中写
             3.在js文件中可以写js代码,但是需要在html的页面中引入


         在 webstorm工具中打开页面:(Window)
             1.右上角有浏览器图标,直接点击即可
             2.快捷键:alt + f2 回车或者上下键选择


          1.在一对script的标签中有错误的js代码,那么该错误的代码后面的js代码不会执行
          2.如果第一对的script标签中有错误的,不会影响后面的script标签中的js代码执行
          3.script的标签中可以可以写任何内容type=“text/JavaScript”是标准写法或者写language=“JavaScript”都是可以的
              (但是,目前在我们的html页面中,type和language都是可以省略的,原因:html是遵循H5的标准的)
                  4.有可能会出现这种情况:script标签中可能同时出现type和language写法
          5.script标签在页面中可以多次成对出现
          6.script标签一般是body的标签的最后的, 有的时候需要开头就要用到的就放在head标签中,我现在一般都是放在body后面里面的。
          7.如果script标签是引入外部js文件的作用,那么这对标签中不写任何的js代码,如果要写,重新写一对script标签,里面写代码。


   =============================变量======================================>   

          操作的数据都是内存中操作
          js中存储数据使用变量的方式(名字,值------>数据)
          js中声明变量都是var------->存储数据,数据应该有对应的数据类型
          js中的字符串类型的值都是用双引号后者单引号

          存储一个数字10
          变量的声明以及赋值

 var num = 10


          var num = 10

          存储一个名字

 var name = "小汪"


          var name = "小汪"


          变量-------作用,存储数据的或者是操作数据
          变量声明  (有var 有变量名字,没有值)
          变量初始化(有var,有变量名,有值)

          变量声明的方式:
            var 变量名字;

   var number; //变量的声明,此时是没有赋值的,    -->返回undefined
            var x,y,z,k,j;//一次性声明多个变量            -->返回undefined

            var number; //变量的声明,此时是没有赋值的,    -->返回undefined
            var x,y,z,k,j;//一次性声明多个变量            -->返回undefined

            变量的初始化(变量声明的同时并且赋值)

             = 的意义:赋值的含义


 var number = 10;//存储一个数字10
            console.log(number);

            //存储一个名字
            var name = "小汪";

            //存储一个真(true)
            var flag = true;

            //存储一个null   ------>相当于是空
            var nul = null;

            //存储一个对象
            var obj = new object();

            var number = 10;//存储一个数字10
            console.log(number);

            //存储一个名字
            var name = "小汪";

            //存储一个真(true)
            var flag = true;

            //存储一个null   ------>相当于是空
            var nul = null;

            //存储一个对象
            var obj = new object();


            -------------------------------------变量的作用:
                    用来操作数据的(可以存储,可以读取)

            -------------------------------------变量的声明:
                    没有赋值的   : var 变量名;

            --------------------------------------变量的初始化:
                      有赋值的:  var 变量名 = 值;

            注意的基本的代码的规范:
                js中声明变量都是用var
                js中的每一行代码结束都是应该有分号的;(写代码有分号的习惯)
                js中的大小写是区分的: var N = 10;  != var n = 10
                js中的字符串可以使用单引号,也可以使用双引号。(目前我们现在暂时用到双引号)

           变量名的注意的问题------变量名的命名规范,要遵循驼峰命名法:
               1.变量名字要有意义     var number = 10;
               2.变量名有一定的规范:一般都以字母,$符号,下划线开头,中间后者后面是可以有$符号,字母,数字
               3.变量名一般都是小写的
               4.变量名如果是多个单词,第一个单词的首字母是小写的,后面所有的首字母都是大写的 (驼峰命名法)var bigNumber = 10;
               5.不能使用关键字  :   for  var 
               6.即使不会用英语单词,就用拼音,拼音也要遵循驼峰命名法


        //声明变量并且初始化---变量的初始化---声明变量赋值
        //声明了一个num的变量存储了一个值100,打开浏览器中的JavaScript引擎解析这行代码,就会在内存中开辟一块空间存储一个数字100,这个空间的名字就是num
               var num = 100;
               alter(num);   //弹窗
               //浏览器的控制台,一般都是在浏览器的开发人员工具中(Window的快捷键就F12)的console选项中
               console.log(num);//把内容输出在浏览器的控制台上

  //声明多个变量然后一个一个的赋值
               var num1,num2,num3;//声明
               //依次赋值
               num1 = 10;
               num2 = 20;
               num3 = 30;

               //声明多个变量并且赋值
               var num1 = 10, num2 = 20, num3 = 30;


               //声明多个变量然后一个一个的赋值
               var num1,num2,num3;//声明
               //依次赋值
               num1 = 10;
               num2 = 20;
               num3 = 30;

               //声明多个变量并且赋值
               var num1 = 10, num2 = 20, num3 = 30;

---------------------------------------------------案例:变量的交换(3种交换)---------------------------------------------

     案例:变量的交换(3种交换)

               //变量的交换的第一个思路:借助第三方的变量
               var num1 = 10;
               var num2 = 20;
               //把num1这个变量的值取出来放在temp变量中
               var temp = num1;  //num1 = 10   ===> temp =10
               //把num2这个变量的值取出来放在num1变量中
               num1 = num2;  
               //吧temp变量的值取出来放在num2变量中
               num2 = temp;
               console.log(num1);  //20
               console.log(num2);  //10


            //第二种方式交换:一般使用于数字的交换
            var num1 = 10;
            var num2 = 20;
            //把num1 的变量中的值和num2 变量中的值,取出来相加,重新赋值给num1这个变量
            num1 = num1 + num2; //10+20=30
            //num1变量的值和num2变量的值取出来,相减的结果重新赋值给num2
            num2 = num1 - num2; //30-20=10
            //num1变量的值和num2变量的值取出来,相减的结果重新赋值给num1
            num1 = num1 - num2; //30 - 10 = 20
            console.log(num1,num2);


        //ctrl + alt + L-------->格式化代码的(设置代码很好看的格式,如果代码是错误的,这个快捷键是没有用的) 

        //注意:变量的明智是不能重名的
            比如:var num1 = 10;
                var num2 = 20;
                console.logo(num1);


        //(第三种)扩展的变量的交换:只需要看代码,不需要理解------位运算
        var num1 = 10;
        var  num2 = 20;
        num1 = num1^num2;
        num2 = num1^num2;
        num1 = num1^num2;
        console.log(num1,num2);

               案例:变量的交换(3种交换)

               //变量的交换的第一个思路:借助第三方的变量
               var num1 = 10;
               var num2 = 20;
               //把num1这个变量的值取出来放在temp变量中
               var temp = num1;  //num1 = 10   ===> temp =10
               //把num2这个变量的值取出来放在num1变量中
               num1 = num2;  
               //吧temp变量的值取出来放在num2变量中
               num2 = temp;
               console.log(num1);  //20
               console.log(num2);  //10


            //第二种方式交换:一般使用于数字的交换
            var num1 = 10;
            var num2 = 20;
            //把num1 的变量中的值和num2 变量中的值,取出来相加,重新赋值给num1这个变量
            num1 = num1 + num2; //10+20=30
            //num1变量的值和num2变量的值取出来,相减的结果重新赋值给num2
            num2 = num1 - num2; //30-20=10
            //num1变量的值和num2变量的值取出来,相减的结果重新赋值给num1
            num1 = num1 - num2; //30 - 10 = 20
            console.log(num1,num2);


        //ctrl + alt + L-------->格式化代码的(设置代码很好看的格式,如果代码是错误的,这个快捷键是没有用的) 

        //注意:变量的明智是不能重名的
            比如:var num1 = 10;
                var num2 = 20;
                console.logo(num1);


        //(第三种)扩展的变量的交换:只需要看代码,不需要理解------位运算
        var num1 = 10;
        var  num2 = 20;
        num1 = num1^num2;
        num2 = num1^num2;
        num1 = num1^num2;
        console.log(num1,num2);

------------------------------------------------------------------注释------------------------------------------------------------------

注释:是解释代码的含义,是给其他程序员看的

注释的方法:
    1.单行注释://     
                  -----一般都是用在一行代码上面

    2.多行注释:/**/    
                  ----一般是用在函数后者是一段代码上面

    注释的代码是不执行的。

    代码中如果没有注释,不规范,天天会被骂的

-----------------------------------------------------------数据类型--------------------------------------------------------------
//声明变量并且赋值
var num = 10;

//js中的数据类型有哪些

    js中的原始数据类型:number,string,boolean,null,undefined,object

    number :数字类型(整数和小数)
    string:     字符串类型(值一般都是用单引号后者双引号括起来的)"34"
    boolean:   布尔类型(值只有两个:true(真1) false(假0))
            var sex1 = true;//男
            var sex2 = false;//女
    null:           一个对象指向为空了,此时可以赋值为null
    undefined: 未定义,值只有一个undefined
            什么情况下的结果为undefined:
                1.变量声明了,但是没有赋值;结果还是undefined
                    var num;
                    console.log(num);

                2.函数没有明确返回值,如果接收了,结果也是undefined

                3.如果一个变量的结果是undefined和一个数字进行计算,结果是:NaN不是一个数字,也是没有意义的
                    var num;
                    console.log(num + 10);//NaN ---not an number ---->不是一个数字
    object:    对象----->


=====>如何获取这个变量的类型的数据类型是什么?使用typeof来获取
    //typeof 的使用的语法
        typeof 变量名
        typeof (变量名)

 var num = 10;
    var str = "小汪";
    var flag = true;
    var nll = null;
    var undef;
    var obj = new Object();
    console.log(typeof num); //number
    console.log(typeof str); //string
    console.log(typeof flag);//boolean
    console.log(typeof nll);//object  不是null的类型
        console.log(String (nll));
    console.log(typeof undef);//undefined
    console.log(typeof obj);//object

    console.log("10"); //字符串类型
    console.log(10);  //数字类型

    var num = 10;
    var str = "小汪";
    var flag = true;
    var nll = null;
    var undef;
    var obj = new Object();
    console.log(typeof num); //number
    console.log(typeof str); //string
    console.log(typeof flag);//boolean
    console.log(typeof nll);//object  不是null的类型
        console.log(String (nll));
    console.log(typeof undef);//undefined
    console.log(typeof obj);//object

    console.log("10"); //字符串类型
    console.log(10);  //数字类型

=========================>数字类型
    var num = 12;
    数字类型:整数和小数
    num = 20; //整数:
    num = 98.76;//小数:(其他语言中,浮点型---单精度,双精度浮点)
    js中所有的数字都是属于number类型
    其他的语言:
        整数类型:int
        单精度浮点型:float
        双精度浮点型:double

    数字:(计算机占8个位)
        二进制:遇见2进一   
                00000001-----1
                00000010-----2
                00000011-----3
                00000100-----4
                00000101-----5
                00000111-----6
                00001000-----8
        八进制:遇见8进一
                00000001
                00000002
                00000003
                00000004
                00000005
                00000006
                00000007
                00000010  -----8
                00000011  -----9
                00000012  -----12

        十进制:遇见10进一
                1
                2
                3
                4
                5
                6
                7
                8
                9
                10
        十六进制:遇见f进一
                00000001
                00000002
                00000003
                00000004
                00000005
                00000006
                00000007
                00000008
                00000009
                0000000a ---10
                0000000b ---11
                0000000c ---12
                0000000d  ---13
                0000000e  --14
                0000000f   --15
                00000010  ---16
                00000011 ---17
                00000012 ---18


        js中可以表示那些进制
        var num = 10;//十进制
        var num2 = 012;//八进制
        var num3 = 0x123;//十六进制
        console.log(num,num2,num3);


    ----------->数字类型有范围的:(最小值和最大值)

 console.log(Number.MAX_VALUE);
        console.log(Number.MIN_VALUE);


        console.log(Number.MAX_VALUE);
        console.log(Number.MIN_VALUE);

        无穷大:Infinity
        无穷小:-Infinity

//不要用小数去验证小数
        var x = 0.1;
        var y = 0.2;
        var sum = x + y;
        console.log(sum);//0.30000000000000004
        console.log(sum == 0.3);//false

        //不要用NaN验证是不是NaN
        var num;
        console.log(num + 10 == NaN);


        //不要用小数去验证小数
        var x = 0.1;
        var y = 0.2;
        var sum = x + y;
        console.log(sum);//0.30000000000000004
        console.log(sum == 0.3);//false

        //不要用NaN验证是不是NaN
        var num;
        console.log(num + 10 == NaN);

        //如果验证这个结果是不是NaN,应该使用isNaN() ----->不是数字为true,是数字为false
        var num;//变量声明了,没有赋值,结果是:undefined
            //是不是不是一个数字---->不是一个数字吗?NaN--->不是一个数字
        console.log(isNaN(num));//true
        // 判断一个是不是数字,可以用isNaN()

    ------------ >总结:
        数字类型:number类型
        无论是整数还是小数都是数字类型
        不要用小数去验证小数
        不要用NaN验证是不是NaN,应该是使用isNanN(值或者变量)
        想要表示十进制:就是我们现在生活中正常的数字
        想要表示八进制:以0开头
        想要表示十六进制:以0x开头

=========================>字符串类型
    var str = "10";  //字符串
    var str2 = '10'; //字符串

    //字符串可以使用双引号,也可以使用单引号
    //字符串的长度如何获取?  变量名.length

    var str = "Who are you?";
    //字符串的个数是多少呢?
     console.log(str.length);


     //html中的转义符:<  &lt ;    >  &gt ;     空格:&nbsp;
     //js中的字符串里面也有转移符: 
         1.tab键 -------水平制表符
         console.log("水平\t制表符")

         2.字符串的拼接:(使用+可以把多个字符串放在一起形成一个字符串)
                     (只要只有一个字符串,其他的是数字相加,那么结果也是拼接,不是相加)
                     (如果有一个是字符串,另一个不是字符串,使用-号,此时会发生计算)

  var str1 = "您好";
             var str2 = "我好";
             console.log(st1 + str2);


             var str1 = "您好";
             var str2 = "我好";
             console.log(st1 + str2);

// 只要只有一个字符串,其他的是数字,那么结果也是拼接,不是计算
             var str1 = "20";
             var str2 = 40;
             console.log(str1 + str2);


             // 只要只有一个字符串,其他的是数字,那么结果也是拼接,不是计算
             var str1 = "20";
             var str2 = 40;
             console.log(str1 + str2);

 // (如果有一个是字符串,另一个不是字符串,使用-号,此时会发生计算)
             var str1 = "30";
             var str2 = 10;
             // 浏览器帮助我们自动的吧字符串类型转成数字类型,这种方式叫做:隐式转换
             console.log(str1 - str2);

             // (如果有一个是字符串,另一个不是字符串,使用-号,此时会发生计算)
             var str1 = "30";
             var str2 = 10;
             // 浏览器帮助我们自动的吧字符串类型转成数字类型,这种方式叫做:隐式转换
             console.log(str1 - str2);

=========================>布尔类型
    布尔类型:的值有两个:一个是true(真),一个是false(假)

  var flag = 1;
    console.log(flag);

    var fdf = null;
    var  num = 10 - 10;


    var flag = 1;
    console.log(flag);

    var fdf = null;
    var  num = 10 - 10;

=========================>类型转换
    //类型转换

    //其他类型转数字类型:3种
        1.parseInt();//转整数
            1.基本用法(只接受一个参数,可以当做第二个参数默认是10):parseInt的返回值只有两种可能,不是一个十进制整数,就是NaN。

                a.将字符串转为整数。parseInt('123') // 123

                b.如果字符串头部有空格,空格会被自动去除。parseInt('   81') // 81

                c.如果parseInt的参数不是字符串,则会先转为字符串再转换。这个很重要

                d.字符串转为整数的时候,是一个个字符依次转换,如果遇到不能转为数字的字符,就不再进行下去,返回已经转好的部分。

                e.如果字符串的第一个字符不能转化为数字(后面跟着数字的正负号除外),返回NaN。

                f.如果字符串以0x或0X开头,parseInt会将其按照十六进制数解析。parseInt('0x10') // 16

                g.如果字符串以0开头,将其按照10进制解析。parseInt('011') // 11

                h.如果参数以0开头,但不是字符串,则会先将数值转成字符串,然后解析,见规则c  parseInt(011) // 9

                i.对于那些会自动转为科学计数法的数字,parseInt会将科学计数法的表示方法视为字符串,因此导致一些奇怪的结果。

                parseInt(1000000000000000000000.5) // 1
                // 等同于
                parseInt('1e+21') // 1

                parseInt(0.0000008) // 8
                // 等同于
                parseInt('8e-7') // 8

                2.进制转换(接收两个参数):parseInt方法还可以接受第二个参数(2到36之间),表示被解析的值的进制,返回该值对应的十进制数。默认情况下,parseInt的第二个参数为10,即默认是十进制转十进制。

                a.第一个参数解析规则参照第一条基本用法

                b.如果第二个参数不是数值,会被自动转为一个整数。这个整数只有在2到36之间,才能得到有意义的结果,超出这个范围,则返回NaN。如果第二个参数是0、undefined和null,则直接忽略。

  console.log(parseInt("10"));
  console.log(parseInt("10greg"));
  console.log(parseInt("10.9"));
  console.log(parseInt("w10"));//NaN
  console.log(parseInt("10.9h"));


                        console.log(parseInt("10"));
                        console.log(parseInt("10greg"));
                        console.log(parseInt("10.9"));
                        console.log(parseInt("w10"));//NaN
                        console.log(parseInt("10.9h"));

            2.parseFloat()//转小数

            console.log(parseFloat("10"));
            console.log(parseFloat("10greg"));
            console.log(parseFloat("10.9"));
            console.log(parseFloat("w10"));//NaN
            console.log(parseFloat("10.9h"));


            console.log(parseFloat("10"));
            console.log(parseFloat("10greg"));
            console.log(parseFloat("10.9"));
            console.log(parseFloat("w10"));//NaN
            console.log(parseFloat("10.9h"));

        

    //其他类型转换字符串类型
            

        总结:想要转型整数用parseInt(); 想要转小数用parseFloat();
            想要转数字类型: Number();要比上面的两种方式严格

        3.   a.   toString()
            var num = 10;
            console.log(num.toString());//字符串类型

             b.    String()
                 var num = 10;
                 console.log(String(num));//字符串类型

                 如果变量有意义调用.toString()使用转换
                 如果变量没有意义使用String()转换

   var num;
                 console.log(num.toString());//无意义的
                 var num = null;
                 console.log(num.toString());//无意义

                 var num;
                 console.log(num.toString());//无意义的
                 var num = null;
                 console.log(num.toString());//无意义

 var num;
                 console.log(String(num));//undefined
                 var num = null;
                 console.log(String(num));//null


                 var num;
                 console.log(String(num));//undefined
                 var num = null;
                 console.log(String(num));//null


    //其他类型转换布尔类型
        Boolean(值);

 console.log(Boolean(null));//false
        console.log(Boolean(1));//true
        console.log(Boolean("2"));//true
        console.log(Boolean("哈哈"));//true
        console.log(Boolean(""));//false
        console.log(Boolean(undefined));//false
        console.log(Boolean(0));//false


        console.log(Boolean(null));//false
        console.log(Boolean(1));//true
        console.log(Boolean("2"));//true
        console.log(Boolean("哈哈"));//true
        console.log(Boolean(""));//false
        console.log(Boolean(undefined));//false
        console.log(Boolean(0));//false

=========================>整数和负数

var str = 10;
    console.log(-str);//-10

    var str = 10;
    console.log(-str);//-10

var str = 10;
    console.log(+str);//10


    var str = 10;
    console.log(+str);//10


=========================>操作符
    
        操作符:一些符号------用来计算

        算数运算符:+ - * / %
             算数运算表达式:由算数运算符连接起来的表达式
            var num = 10;
            var result = num % 3;//num变量与3,-----10/3的余数
            console.log(result);//1

            一元运算符:这个操作符只需要一个操作数就可以进行运算的符号 ++  --
                    var num = 10;
                    var sum = num + 10;

            二元运算符:这个操作符需要两个操作数就可以进行运算的符号
            三元运算符:这个操作符需要三个操作数就可以进行运算的符号
        复合运算符:+= -=  *=  /=  %=

 var num = 10;
                num += 10;//num = num + 10
                console.log(num);//20


                var num = 10;
                num += 10;//num = num + 10
                console.log(num);//20

   var num = 20;
                num -= 3; //num = num -3
                console.log(num);//17


                var num = 20;
                num -= 3; //num = num -3
                console.log(num);//17
            复合运算符表达式:由复合运算符连接起来的表达式
        关系运算符:>    <     >=   <=     ==(不严格等于)        ===(严格等于)   !=(不严格不等于)    !==(严格不等于)
            不严格等于:var str = "5";

   var num = 5;
                          console.log(str == num);//true


                          var num = 5;
                          console.log(str == num);//true

            严格等于:(类型也是要相等的)

      var str = "5";
                    var  num = 5;
                    console.log(str === num);//false


                            var str = "5";
                    var  num = 5;
                    console.log(str === num);//false
               关系运算表达式:由关系运算符连接起来的表达式
               关系运算表达式的结果是布尔类型
        逻辑运算符:&&----逻辑与---并且
                      ||------逻辑或---或者
                      !-----逻辑非---取反---取非
                      逻辑运算表达式:由逻辑运算符连接起来的表达式

var num1 = 10;
                           var num2 = 20;
                           console.log(num1 == num2 && 5 > 6);//false


                           var num1 = 10;
                           var num2 = 20;
                           console.log(num1 == num2 && 5 > 6);//false

                       表达式1 && 表达式2
                       如果一个为false,整个的结果就是false

                       表达式1 || 表达式2
                       如果有一个为true,整个的结果为true

                       !表达式1
                       表达式1的结果是true,整个的结果是false
                       表达式1的结果是false,整个结果为true
                       var num = 20;
                       console.log(num > 10 || 5 < 0);//true

            算数运算:是有优先级的

                var num = 10;
                var sum = num + 10 * 5;
                console.log(sum);//60


                var num = 10;
                var sum = num + 10 * 5;
                console.log(sum);//60

                var num = 10;
                var sum = (num + 10)* 5
                console.log(sum);//100

                var num = 10;
                var sum = (num + 10)* 5
                console.log(sum);//100

                经典例子:

                 var result = (4 >= 6 || '人' != '狗' && !(12 * 2 == 144) && true);
                 console.log(result);//true


                    var result = (4 >= 6 || '人' != '狗' && !(12 * 2 == 144) && true);
                    console.log(result);//true

                var num = 10;
                var result = 5 == num / 2 && (2 + 2 * num).toString() === '22');
                console.log(result);


                    var num = 10;
                    var result = 5 == num / 2 && (2 + 2 * num).toString() === '22');
                    console.log(result);

        //自变量:把一个值直接赋值给一个变量
        //声明变量并且初始化
        var num = 10;
        var flag = true; 
        
        var  y = 10;

--------------------------------一元运算符、流程控制、分支结构、循环结构-----------------------------------------


一元运算符:++,--
流程控制:
分支结构:if  ; if-else  ;if  else-if  else ; 三元表达式
循环结构:while;do-while;for; for-in

===================>一元运算符

    ++  --  都是运算符
    ++  和  -- 可以分为:前+ 和 后+          and         前-    和     后-

    var num = 10;
    num++;//自身加1----自加
    console.log(num);//11

    var num = 10;
    num++;//自身加1----自加
    console.log(num);//11

    var num = 10;
    ++num;//自身加1----自加
    console.log(num);//11

    var num = 10;
    ++num;//自身加1----自加
    console.log(num);//11

    var num = 10;
    var sum = num++ +10;
    console.log(sum);//20
    console.log(num);//11

    var num = 10;
    var sum = num++ +10;
    console.log(sum);//20
    console.log(num);//11
    如果++在后面:如:num++ +10参与运算,先参与运算,运算结束后自身再加1

    var num = 10;
    var sum = ++num +10;
    console.log(sum);//21
    console.log(num);//11


    var num = 10;
    var sum = ++num +10;
    console.log(sum);//21
    console.log(num);//11
    如果++在前面,如:++num + 10;参与运算,先自身+1,然后再参与运算

    var num = 10;
    var sum = num-- +10;
    console.log(sum);//20
    console.log(num);//9

    var num = 10;
    var sum = num-- +10;
    console.log(sum);//20
    console.log(num);//9

    var num = 10;
    var sum = --num +10;
    console.log(sum);//19
    console.log(num);//9

    var num = 10;
    var sum = --num +10;
    console.log(sum);//19
    console.log(num);//9


===================>流程控制(代码的执行过程)
    流程控制:有事三种方式
        1.顺序结构:从上到下,从左到右执行的顺序
            var num = 10;
            console.log(num);
        2.分支结构:if语句 , if-else语句 ;switch-case语句;三元表达式

            ------------------------->if语句:主要指判断

            语法:
                if(表达式){
                    块
                }


                执行过程:先判断表达式的结果:true 就执行,false就大括号里面的代码不执行

                例子:
                    1.如果8大于6;请你输出8,如果一个数字大于另一个数字则输出大的数字

                        if(8 > 6 ){
                            console.log(8);
                        }

                        var num1 = 10;
                        var  num2 = 100;
                        if (num1 > num2) {
                            console.log(num1)
                        }


                        if(8 > 6 ){
                            console.log(8);
                        }

                        var num1 = 10;
                        var  num2 = 100;
                        if (num1 > num2) {
                            console.log(num1)
                        }
                        console.log("我执行了");
                    2.小汪的年龄是否大于18岁,如果是成功,则提示,可以看电影了

                        var age = 19;
                        if (age >= 18) {
                            console.log("可以看电影了,哈哈");
                        }


                        var age = 19;
                        if (age >= 18) {
                            console.log("可以看电影了,哈哈");
                        }

                    3.如果小样比小汪帅,则输出帅

                        var str = "帅";
                        if (str == "帅") {
                            console.log("您真的好帅");
                        }


                        var str = "帅";
                        if (str == "帅") {
                            console.log("您真的好帅");
                        }

            ------------------------->if - else 语句

                if-slse语句:两个分支:只能执行一个分支
                if-else语法:
                    if(表达式){
                        代码1
                    }else{
                        代码2
                    }
                执行过程:如果表达式的结果是true,则执行代码1,如果表达式的结果是false,则执行代码2

                小苏的年龄是否是成年人,如果是,就看电影,否则就看电影

                    var age = 10;
                    if(age >= 18){
                        console.log("可以看电影");
                    }else{
                        console.log("回家写作业去");
                    }


                    var age = 10;
                    if(age >= 18){
                        console.log("可以看电影");
                    }else{
                        console.log("回家写作业去");
                    }

                提示用户输入年龄

                var age =  parseInt(prompt("请您输入您的年龄")) ;//这个是字符串类型,要装换为数字类型
                if(age >= 18){
                    console.log("可以看电影");
                }else{
                    console.log("回家写作业去");
                }


                var age =  parseInt(prompt("请您输入您的年龄")) ;//这个是字符串类型,要装换为数字类型
                if(age >= 18){
                    console.log("可以看电影");
                }else{
                    console.log("回家写作业去");
                }


                找到两个数字终端饿最大值

                var num = 10;
                var num2 = 20;
                if(num > num2){
                    console.log(num);
                }else{
                    console.log(num2);
                }


                var num = 10;
                var num2 = 20;
                if(num > num2){
                    console.log(num);
                }else{
                    console.log(num2);
                }

                判断这个数字是奇数还是偶数

                var  number = 9;
                if(number % 2 == 0){
                    console.log("偶数");
                }else{
                    console.log("奇数");
                }


                var  number = 9;
                if(number % 2 == 0){
                    console.log("偶数");
                }else{
                    console.log("奇数");
                }

                var  number = prompt("请您输入数字");
                if(number % 2 == 0){
                    console.log("偶数");
                }else{
                    console.log("奇数");
                }

                var  number = prompt("请您输入数字");
                if(number % 2 == 0){
                    console.log("偶数");
                }else{
                    console.log("奇数");
                }


        ------------------------->三元表达式

            两个分支:最终结果是两个分支中的一个,可以三元表达式
            三元表达式:运算符号   ?:
            语法:
                var 变量 = 表达式1 ? 表达式2:表达式3;
            执行过程:表达式1的结果是true还是false,如果表达式是true,则执行表达式2,
                    然后把结果给变量
                      如果表达式1的结果是false,则执行表达式3,把结果给变量

            例题:
                两个数字中的最大值

                var x = 10;
                var y = 20;
                if(x > y){
                     console.log(x);
                }else{
                    console.log(y);
                }


                var x = 10;
                var y = 20;
                if(x > y){
                     console.log(x);
                }else{
                    console.log(y);
                }

                var x = 10;
                var y = 20;
                var result = x > y ? x : y;
                console.log(result);

                var x = 10;
                var y = 20;
                var result = x > y ? x : y;
                console.log(result);

                显示成年还是未成年

                var age = 20;
                var result = age >= 18 ? "成年了" : "未成年";
                console.log(result);


                var age = 20;
                var result = age >= 18 ? "成年了" : "未成年";
                console.log(result);
                总结:大多数情况:使用if-else的语言都可以用三元表达式

        ------------------------->if-else      if -else  if-else      if-else  if...else  多分支,最终也执行一个

            if-else if语句
            语法:
                if (表达式1) {
                    代码1
                }else if (表达式2) {
                     代码2
                }else if (表达式3) {
                     代码3
                }else{
                     代码4
                }

            else if ------这种结构可以写多个,具体多少个看需求
            else---------结构是可以不用写的,具体还是要看需求的

            执行过程:
                先执行表达式1的结果;如果为true则执行代码1,如果false执行表达式2,
                如果表达式2为true,那就执行代码2;如果false执行表达式3,如果表达式3为true,那就执行代码3;如果错误执行代码4
            例子:
                 1.成绩在90-100之间,成绩为A;
                    成绩在80-90之间,成绩为B;
                    成绩在70-80之间,成绩为C;
                    成绩在60-70之间,成绩为D;
                    成绩在60分以下,成绩就显示不及格;

                    var score =parseInt(prompt("您的成绩是多少呢")) ;
                    //清除为空的或者是成绩高于100 的
                    if (score > 100 || score.trim() == "") {
                        console.log("您的输入有误,请您重新输入");
                    }else if ( score > 90 && score <= 100) {
                        console.log("A");
                    }else if (score > 80) {
                        console.log("B");
                    }else if(score > 70){
                        console.log("C");
                    }else if (score >= 60) {
                        console.log("D");
                    }else if (score > 0 && score < 60) {
                        console.log("不及格");
                    }


                   
                    var score =parseInt(prompt("您的成绩是多少呢")) ;
                    //清除为空的或者是成绩高于100 的
                    if (score > 100 || score.trim() == "") {
                        console.log("您的输入有误,请您重新输入");
                    }else if ( score > 90 && score <= 100) {
                        console.log("A");
                    }else if (score > 80) {
                        console.log("B");
                    }else if(score > 70){
                        console.log("C");
                    }else if (score >= 60) {
                        console.log("D");
                    }else if (score > 0 && score < 60) {
                        console.log("不及格");
                    }

                    var score =Number(prompt("您的成绩是多少呢")) ;
                    //清除为空的或者是成绩高于100 的
                    if (!isNaN(score)) {
                        if (score > 100 || score.trim() == "") {
                            console.log("您的输入有误,请您重新输入");
                        }else if ( score > 90 && score <= 100) {
                            console.log("A");
                        }else if (score > 80) {
                            console.log("B");
                        }else if(score > 70){
                            console.log("C");
                        }else if (score >= 60) {
                            console.log("D");
                        }else if (score > 0 && score < 60) {
                            console.log("不及格");
                        }

                    }

                   
                    var score =Number(prompt("您的成绩是多少呢")) ;
                    //清除为空的或者是成绩高于100 的
                    if (!isNaN(score)) {
                        if (score > 100 || score.trim() == "") {
                            console.log("您的输入有误,请您重新输入");
                        }else if ( score > 90 && score <= 100) {
                            console.log("A");
                        }else if (score > 80) {
                            console.log("B");
                        }else if(score > 70){
                            console.log("C");
                        }else if (score >= 60) {
                            console.log("D");
                        }else if (score > 0 && score < 60) {
                            console.log("不及格");
                        }

                    }

                    //判断一个年份是不是闰年
                    //定义一个变量存储一个年份
                    var year = prompt("请您输入年份,看看是闰年还是平年");
                    if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
                        console.log("闰年");
                    }else{
                        console.log("平年");
                    }

        ------------------------->分支语句:switch-case

            switch-case语句------分支语句-------多分支语句
            语法:
                     switch(表达式){
                         case 值1:代码1;break;
                         case 值2:代码2;break;
                         case 值3:代码3;break;
                         case 值4:代码4;break;
                         case 值5:代码5;break;
                         ...多个case

                         default:代码5;
                     }
                     注意问题:
                     default:后面的break是可以省略的;
                     default:也是可以省略的;
                     switch-case  语句中和case后面的值比较的时候使用的是严格等于模式(===)
                     break 是可以省略的,省略只会

                     执行过程:
                            获取表达式的值,和值1比较,如果一样,则执行代码1,遇见break,
                            则跳出整个语句,后面的代码则不执行;
                            如果表达式1的值,不一样,则和值2进行比较,
                           如果遇见相同的就执行,跳出语句,否则就与值3比较。。。。
                           否则就直接执行default语句

                     //例子:获取一个人的成绩的级别,如果是A级则,显示90到100直接的分数
                             如果是B级则显示80-90;如果是C级则显示70-80分
                             如果是D级则显示60-70之间;
                             否则显示0-59之间

                             var jiBie = "C";
                             switch (jiBie){
                                 case "A":console.log("90-100");break;
                                 case "B":console.log("80-90");break;
                                 case "C":console.log("70-80");break;
                                 case "D":console.log("60-70");break
                                 default :console.log("0-59");
                             }

                             var jiBie = "C";
                             switch (jiBie){
                                 case "A":console.log("90-100");break;
                                 case "B":console.log("80-90");break;
                                 case "C":console.log("70-80");break;
                                 case "D":console.log("60-70");break
                                 default :console.log("0-59");
                             }

                             注意问题:

                             var num = "10";//字符串
                             console.log("10" == 10);//true
                             console.log("10" === 10);//false 
                             switch (num){
                                 case 10 : console.log("数字的10");
                                 case "10" : console.log("字符串10");
                             }


                             var num = "10";//字符串
                             console.log("10" == 10);//true
                             console.log("10" === 10);//false 
                             switch (num){
                                 case 10 : console.log("数字的10");
                                 case "10" : console.log("字符串10");
                             }

             //根据月份显示对应的天数
             // 1,3,5,7,8,10,12 ------31天
             //2 ----28天
             //4,6,9,11-----30
             var month = parseInt(prompt("请您输入月份"));
             if (month > 0  && month <= 12) {
                  switch(month){
                 case 1:
                 case 3:
                 case 5:
                 case 7:
                 case 8:
                 case 10:
                 case 12:console.log("31天");break;
                 case 2:console.log("28天");break;
                 case 4:
                 case 6:
                 case 9:
                 case 11:console.log("30天");break;
                  }
             }else{
                 console.log("您的输入有误,重新输入");
             }

             //根据月份显示对应的天数
             // 1,3,5,7,8,10,12 ------31天
             //2 ----28天
             //4,6,9,11-----30
             var month = parseInt(prompt("请您输入月份"));
             if (month > 0  && month <= 12) {
                  switch(month){
                 case 1:
                 case 3:
                 case 5:
                 case 7:
                 case 8:
                 case 10:
                 case 12:console.log("31天");break;
                 case 2:console.log("28天");break;
                 case 4:
                 case 6:
                 case 9:
                 case 11:console.log("30天");break;
                  }
             }else{
                 console.log("您的输入有误,重新输入");
             }

3.循环结构:while循环;do-while ,for ,for-in

现总结到这里,最近比较忙,下周再去总结。请您们敬请期待。。。

猜你喜欢

转载自blog.csdn.net/itwangyang520/article/details/82556347
今日推荐