• JavaScript(一)


    javascript
    一 javascript 是什么? 

      1. 运行在浏览器端 ,定义网页的行为,
     2.所有的html页面都有js.
      
    二 javascript 定义方式?

     1 在html文件里

      js 可以在html文件里的任何位置.

       html中的脚本必须放在<script></script>标签之间.

     2 引外部的js文件
      <head>
          <script src="index.js"></script>
       </head>

    三 javascript 语法规则?

      1 每条执行语句结束添加分号,表示语句完毕,
      2 js代码按照执行顺序执行每条语句,
      3 js代码可以分批的组合,代码块以左花括号开始,右花括号结束,
      4 js代码大小写敏感,注意区分大小写,表示含义不同.
      5 js的注释 单行注释 //  多行注释 /* js程序  */
           html 注释
           css  /* */

    四 javascript 字面量?
        一个字面量就是一个常量 

        数字 (Number)
         包含整数和小数 
        字符串 (String)
         使用单引号或者双引号包含的内容 "aadmin" 'admin'
        数组 (Array)
         [10,100,20,200,30,300]表示一组数,内部也可以是字符串等数据
        对象 (Object)
         {id:001,name:"liyang",age:10,adress:"西安"}
        函数 (Function)
        function functionName(参数){}
        表达式
        3+5 2*3

    五 javascript 输出?

      1  警告框 window.alert()  - alert(''),
      2  输出带html文档中 document.write()
      3 写入到html元素里 innerHTML
      4  打到控制台   console.log()

    六 变量

    1 变量是用来存储数据的

    2 怎么来定义变量
         用 var 定义变量 
           用 等号 来为 变量赋值
    3语法格式
        var varName = 变量值;
      注意事项:
        1变量名必须以字母开头.
        2 变量名称对大小写敏感 
         (Y 和 y 是不同的变量).

    七 数据类型 

        数字    number   整数或小数
        字符串   string   "" 或 ''
        布尔    boolean  true / false
        数组    array    用[  ]表示
        对象    object   用 { }表示
        空     null
        未定义  undefined

    八 js 的基本写法

        function function(参数){

               js函数块
               [return 表达式]
           }
              []里面的值是可选内容.

    九 对象

      document 对象
         对html页面的所有元素进行访问.

            document.getElementsByClassName('className')
            //是取得页面中标签中的class名
            document.getElementById('id')
            //是取得页面中标签中的id名
            document.getElementsByName('name')
            //是取得页面中标签名属性名为name的标签对象
            document.getElementsByTagName('tagName')
            //是取得页面中标签


      arguments
        js  大多数就是对象
        arguments js对象里的一种
        作用:索引 

        arguments.length;
        //获取被传递参数的长度.

        arguments[index]
        //获取指定位置的参数值.



      十 作用域 

       1 什么是作用域:可访问变量,对象,函数的集合.

       2 分类:局部作用域 和 全局作用域

               局部作用域 : 局部变量 - 只能在函数的内部访问
               全局作用域 : 全局变量 - 网页中所有妇人脚本和函数均可使用.

         3 变量的生命周期: 
            1 变量生命周期在声明时初始化.
            2 局部变量在函数执行完之后销毁.
            3 全局变量在页面关闭时销毁.

         4 函数参数 : 只在函数内部起作用,是局部变量.

         两者之间的区别 :

                           全局变量                 局部变量

            定义位置    js代码区内函数体外            位于函数体中

            作用范围     作用于整个js代码区域          只能在本函数体中进行使用
                       (包括内部的所有函数)

            生命周期     比较长                      比较短(随着函数的调用而产生,调用结束就销毁)

         注意事项: 
             1、在定义多个全局变量的时候,彼此之间是不允许重名的。
               2、在定义局部变量的时候,彼此之间也是不允许重名的。
               3、但是全局变量和局部变量之间可以存在重名的情况,这时遵循的是就近的原则。










    十一 函数

        1 什么是函数 :由事件驱动的或者当它被调用时执行的可重复使用的代码块。

        2 函数语法:
                        function functionName(){
                            执行代码
                        }

              注意: JavaScript 对大小写敏感。关键词 function 必须是小写的,
                 并且必须以与函数名称相同的大小写来调用函数.

         3 分类 1 调用带参数的函数

              在调用函数时,可以向其传递值,这些值被称为参数。

              这些参数可以在函数中使用。

              可以发送任意多的参数,由逗号 (,) 分隔:
               myFunction(argument1,argument2)

                      当您声明函数时,请把参数作为变量来声明:
                      function myFunction(var1,var2)
                      {
                          代码
                      }

                  eg:
      <button onclick="myFunction('Harry Potter','Wizard')">点击这里</button>
      <script>
          function myFunction(name,job){
              alert("Welcome " + name + ", the " + job);
          }
     </script>

          2  带有返回值的函数

              我们会希望函数将值返回调用它的地方。通过使用 return 语句就可以实现。
              在使用 return 语句时,函数会停止执行,并返回指定的值。

          eg:
          function myFunction(a,b){
                    return a*b;
             }
          document.getElementById("demo").innerHTML=myFunction(4,3);


      十二 操作符 typeof

          1 作用: 检测变量的数据类型.
            eg: document.getElementById("demo").innerHTML =
                    typeof "john" + "<br>" +
                    typeof 3.14 + "<br>" +
                    typeof false + "<br>" +
                    typeof [1,2,3,4] + "<br>" +
                    typeof {name:'john', age:34}; 
          注意:数组是一种特殊的对象类型。 因此 typeof [1,2,3,4] 返回 object

          2 null

             null 表示 "什么都没有"。
             null是一个只有一个值的特殊类型。表示一个空对象引用。

          3  Undefined

           1 undefined 是一个没有设置值的变量。
             一个没有值的变量会返回 undefined。
            eg:
                var person;
                document.getElementById("demo").innerHTML =
                   person + "<br>" + typeof person;

           2 任何变量都可以通过设置值为 undefined 来清空。 类型为 undefined.

             eg:
              var person = {firstName:"John", lastName:"Doe", age:50, };
              var person = undefined;
              document.getElementById("demo").innerHTML =
                 person + "<br>" + typeof person;


      十三  类型转换 

      (一) 
            5 种不同的数据类型:string,number,boolean,object,function

          3 种对象类型: Object,Date,Array

          2个不包含任何值的数据类型:null,undefined

      eg:
         document.getElementById("demo").innerHTML =
            typeof "john" + "<br>" +
            typeof 3.14 + "<br>" +
            typeof NaN + "<br>" +
            typeof false + "<br>" +
            typeof [1,2,3,4] + "<br>" +
            typeof {name:'john', age:34} + "<br>" +
            typeof new Date() + "<br>" +
            typeof function () {} + "<br>" +
            typeof myCar + "<br>" +
            typeof null;
       注意: 
            NaN 的数据类型是 number
            数组(Array)的数据类型是 object
            日期(Date)的数据类型为 object
            null 的数据类型是 object
            未定义变量的数据类型为 undefined
         对象是Array 或  Date ,无法通过 typeof 来判断他们的类型,都返回 Object


    (二) constructor 属性

        1 查看是对象是否为数组 (包含字符串 "Array"):
     eg:
          var fruits = ["Banana", "Orange", "Apple", "Mango"];
          document.getElementById("demo").innerHTML = isArray(fruits);
          function isArray(myArray) {
             return myArray.constructor.toString().indexOf("Array") > -1;
         }


          2 查看是对象是否为日期 (包含字符串 "Date"):
      eg:
         var myDate = new Date();
         document.getElementById("demo").innerHTML = isDate(myDate);
         function isDate(myDate) {
             return myDate.constructor.toString().indexOf("Date") > -1;
         }


      (三) 将数字转换为字符串

         1 全局方法 String() 可以将数字转换为字符串。
         该方法可用于任何类型的数字,字母,变量,表达式:
       eg:
           var x = 123;
           document.getElementById("demo").innerHTML =
            String(x) + "<br>" +       // 将变量 x 转换为字符串并返回
            String(123) + "<br>" +     // 将数字 123 转换为字符串并返回
            String(100 + 23);          // 将数字表达式转换为字符串并返回

          2  Number 方法 toString() 也是有同样的效果

          var x = 123;
          document.getElementById("demo").innerHTML =
           x.toString() + "<br>" +
           (123).toString() + "<br>" +
           (100 + 23).toString();

    (四)将布尔值转换为字符串

          1 全局方法 String()

              String(false)        // 返回 "false"
              String(true)         // 返回 "true"
         eg:
            document.getElementById("demo").innerHTML =
            typeof(String(false) + "<br>" +
            String(true));

        2 Number 方法 toString()

             false.toString()     // 返回 "false"
             true.toString()      // 返回 "true"

      (五) 将字符串转换为数字

           1  全局方法 Number() 可以将字符串转换为数字。
           字符串包含数字(如 "3.14") 转换为数字 (如 3.14).
           空字符串转换为 0。其他的字符串会转换为 NaN (不是个数字)。
           eg:
            Number("3.14")    // 返回 3.14
            Number(" ")       // 返回 0
            Number("")        // 返回 0
            Number("99 88")   // 返回 NaN

           2
             parseFloat()     解析一个字符串,并返回一个浮点数。
             parseInt()     解析一个字符串,并返回一个整数。

      (六) 将布尔值转换为数字

              全局方法 Number() 可将布尔值转换为数字。

          eg:
              Number(false)     // 返回 0
              Number(true)      // 返回 1


      (七) 一元运算符 + (Operator + 可用于将变量转换为数字)
             eg :
                   var y = "5";
                   var x = + y;
                   document.getElementById("demo").innerHTML =
                   typeof y + "<br>" + typeof x;

            如果变量不能转换,它仍然会是一个数字,但值为 NaN (不是一个数字):

            eg:
                var y = "John";
              var x = + y;
                  document.getElementById("demo").innerHTML =
                      typeof x + "<br>" + x;

        (八) 将日期转换为数字

           1 全局方法 Number() 可将日期转换为数字。

            eg:
               d = new Date();
               Number(d)          // 返回 1404568027739

            2 日期方法 getTime() 也有相同的效果。

            eg:
              d = new Date();
              d.getTime()        // 返回 1404568027739

              var d = new Date();
              document.write(d.getTime());
      



      十一 运算符

     1 算术运算符

       加   减  乘  除  累加  累减  求模(求余数)
       +   -  *  /     ++    --     %

     2 赋值运算符

          =    +=   -=   *=     /=     %=

          +=
        (  var x=10;
           var y=5;
           x+=y;  // x = x + y
           var demoP=document.getElementById("demo")
           demoP.innerHTML="x=" + x;  )

     3 比较运算符
          <      >     >=      <=     != (不等于)

      4 逻辑运算符

        逻辑与 &&

         当结果都为真的时候,返回true;
            只要有一个条件不为真,返回false

        逻辑或 ||

           条件只要有一个为真,返回true.

        逻辑非 !

            操作数为对象,空字符串,非零字符,返回false,
            数值0,null  undefined 返回true.


        三个结果一定是布尔类型(boolean).  true / false

      5 三目运算符

           格式 : 表达式?语句1:语句2;

           5>3?alert("5大于3"):alert("5小于3");

      十二  流程控制语句

         1  顺序结构

          一  if 条件语句
             if(条件语句){
                 执行语句;
             }

          二  if(条件语句){
               执行语句一
           }else{
               执行语句二
           }

           三  if(条件语句){
                 if(条件语句一){
                   执行语句一
                }else{
                   执行语句二
               }else{
                  if(条件语句二){
                    执行语句三
                }else{
                    执行语句四
                  }
               }


         2  选择结构
             switch 语句

             switch(表达式){
                case 值1:
                  语句1;
                  break;
                case值2:
                  语句2;
                  break;
                case值n:
                   语句n;
                  break;

                  default:
                    语句;
                    break;
             }

         3  循环结构

             while  循环语句

            while(条件表达式){
                循环语句块;
            }

             do - while语句

             do{
                 循环语句块
             } while(条件表达式语句);


           for(初始化表达式;循环表达式;循环后操作表达式){
                   循环语句块;
            }


         4  跳转结构

            break   用于跳出整个switch 语句体或者是跳出整个循环体.

            continue
                    同于终止整个循环中的指定某次循环.


      十三 DOM(文档对象模型)

       1 作用 : 可访问javascript HTML文档的所有元素.

       2 功能: (1) 改变html输出流

               eg: <script>
                            document.write(Date());
                          </script>

         (2) 改变HTML内容

            eg: <p id="p1">Hello World!</p>
                <script>
                document.getElementById("p1").innerHTML="新文本!";
                </script>
                <p>以上段落通过脚本修改文本。</p>

         (3) 改变HTML属性

           eg:
          <img id="image" src="smiley.gif" width="160" height="120">
          <script>
              document.getElementById("image").src="landscape.jpg";
          </script>

          (4) 改变css样式

          <p id="p1">Hello World!</p>
          <p id="p2">Hello World!</p>
          <script>
          document.getElementById("p2").style.color="blue";
          document.getElementById("p2").style.fontFamily="Arial";
          document.getElementById("p2").style.fontSize="larger";
          </script>
          <p>以上段落通过脚本修改。</p>

         (5)使用的事件

       1 元素被点击

        eg:
              <h1 id="id1">我的标题 1</h1>
              <button type="button"
              onclick="document.getElementById('id1').style.color='red'">
              点我!</button>

         2 如需向HTML元素分配事件,可以使用事件属性

        eg:
           <p>点击按钮执行 <em>displayDate()</em> 函数.</p>
           <button onclick="displayDate()">点这里</button>
           <script>
           function displayDate(){
                document.getElementById("demo").innerHTML=Date();
           }
           </script>
           <p id="demo"></p>

         3 onload 和 onunload 事件

           用于在进入或离开页面时被触发,
           onload 事件可用于检测访问者的浏览器类型和浏览器版本,并基于这些信息来加载网页的正确版本。
         onload 和 onunload 事件可用于处理 cookie。
          

             

         
    -->

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            #a1{
              color: red;
            }
        </style>
      </head>
      <body>
        <!-- <span id="a1">辉恢</span> -->
        <!-- <span id="a1">admin</span> -->
        <script>
            // alert('辉辉')
            // document.write('回回')
            // document.getElementById("a1").innerHTML = Date();
            //
              // var a = 10;
              // var b = 5;
              // var c = a+b;
              // alert(typeof b);
            //
            // console.log(c);

            // function trim(){

              //  alert(arguments.length);
              // 长度不能从0开始

              // alert(arguments[0]);
              // alert(arguments[1]);
              // alert(arguments[2]);
              // alert(arguments[3]);
              // alert(arguments[4]);
              // alert(arguments[5]);
              // alert(arguments[6]);
            // 获取数据位置从0开始.

           //   if(5<3){
           //            alert('true');
           //        }else {
          //             alert('false');
          //        }

          //     var a = new Number(1);

         //      alert(typeof a);

         //   }
        //   trim();

             function fn_a(a,b){

                   var result = a%b;
                   alert(result);
              }
              // fn_a(10,20);

              function fn_b(a){
                var result = a++; // 首先带入自身值,执行运算后,在自身加1;
                var adm = ++a;  //  首先自身值加1,在带入运算,
                alert(result); //1
                // alert(a); //2
                alert(adm) 
              }
              // fn_b(1);

              function fn_c(){

                 var x = 9;
                 var y = 4;
                 var z = 6;
                //  alert((x++ * --z - y--)/(--y*(z++ + z-- - --y + x++ + z-- + ++x ))*(x++ + y-- + z++));
                alert((++y * --z - y--)/(y*(z++ + y-- + --y + x++ + z-- + --x ))*(z++ + x-- + y++))
                alert((x*(x++ + --y + y-- - z++ + z--)/(z++ - y-- - --z + ++x - ++y))-(x++ - y-- - z--))
                //  alert(x*(x++ + --y + y-- - z++ + z--));
                //        1*(1 + 2 + 2 - 5 + 6)
                // alert(--x*(--y - x++ + y++ + ++z - --z - y++)+ y++)
                // (x++ * --z - y--)/(--y*(z++ + z-- - --y + x++ + z-- + ++x ))*(x++ + y-- + z++)
                   //6*(2 - 6 + 2 + 6 - 5 - 3 ) + 4
                   //

              }

              fn_c();
           // 给两个数,完成数值的交换
              function fn_d(){

                    var a = 1;
                    var b = 20;

                    // var c;
                    // c = a;
                    // a = b;
                    // b = c;

                    a = a+b;
                    b = a-b;
                    a = a-b;
                   alert("a="+a+"---b="+b);
                }
                // fn_d();

                function fn_e(a,b){

                       if(a!=b){
                          alert("辉恢")
                       }else {
                         alert("晨晨");
                       }

                }
                // fn_e(30,30);

                function fn_f(){

                   var result = true||false;
                   result = !((1>2)||(3<5));
                   alert(result);

                }
                // fn_f();

                // 5<3?alert("11111"):alert("22222");

                // 九九乘法表

                function fn_g(){

                  for(var i=1;i<10;i++){
                      for(var j=1;j<=i;j++){
                          document.write(j+"x"+i+"="+(j*i>=10?(i*j):"0"+(i*j))+" ");
                      }
                      document.write("<br>");
                  }

                }

                // fn_g();

                function fn_h(a,b){
                     if(a>b){
                       alert("111");
                     }else {
                       alert("2222");
                     }
                }
                // fn_h(10,20);

                // 给三个数,比大小

                function fn_i(a,b,c){
                    if(a>b){
                      if(a>c){
                        alert("最大值:"+a);
                      }else{
                        alert("最大值:"+c);
                      }
                    }else{
                      if(b>c){
                        alert("最大值:"+b);
                      }else{
                        alert("最大值:"+c);
                      }
                    }
                    var maxValue = a>b?(a>c?a:c):(b>c?b:c);
                    alert(maxValue);
                }
                // fn_i(7,2,3);

                function fn_j(){
                  var x = 'a';
                  switch(x){
                     case 'a' :
                      alert("1");
                      break;  //  跳出本次循环.
                      case 2:
                      alert("2");
                      break;  //  跳出本次循环.
                      case 3:
                      alert("3");
                      break;  //  跳出本次循环.

                      default:
                       alert("条件不匹配");
                       break;
                  }
                }
                // fn_j();

                function fn_k(){

                      var x = 1;

                      while(x<=10){
                        alert("x="+x);
                        //存在改变变量的语句,否则就是一个死循环.
                        x++;
                      }

                      //特点 : 首先判断条件,然后在确定是否执行循环体.
                }
                  // fn_k();

               function fn_l(){
                 var x =1;
                  do{
                     alert("x="+x);
                     x++;
                  }while(x<=10);

                 //特点 :  首先执行一次循环,在判断条件,然后在确定是否执行.
               }

              //  fn_l();

              function fn_m(){
                 document.write("Starting Loop" + "<br>");
                 var count;
                 for(count=0;count<100; count++){
                   document.write("排名第:"+count);
                   document.write("<br>");
                 }
              }
              // fn_m();

              function fn_n(){
             //   =  赋值号    == 全等     ===  恒等 (数字和数据类型一样)
                  var x = "";
                  var i = 0;
                  for(i=0;i<=10;i++){
                      if(i==3){
                        // continue;
                        break;
                      }

                      x = x+"该数字为 "+i+"<br>";
                  }
                  document.getElementById("a1").innerHTML=x;
              }

              // fn_n();



        </script>
        <!-- <button onclick="trim()">调用</button> -->
        <!-- <p id="a1"></p> -->
        <!-- <button onclick="fn_n()">调用</button> -->
        <script>
            function nm(){
             //拿值
            var num1 = parseInt(document.getElementById('num1').value);
            var num2 = parseInt(document.getElementById('num2').value);
            var num3 = parseInt(document.getElementById('num3').value);

            // 比大小
            if(num1<num2){
               var temp = num1;
               num1 = num2;
               num2 = temp;
            }
            if(num1<num3){
               var temp = num1;
               num1 = num3;
               num3 = temp;
            }
            if(num2<num3){
              var temp = num2;
              num2 = num3;
              num3 = temp;
            }

            var txt = num1 + "&nbsp;&nbsp;&nbsp;"+ num2 +  "&nbsp;&nbsp;&nbsp;"+ num3;
            document.getElementById("p1").innerHTML = txt;


            // parseInt()  解析一个字符串,并返回一个整数.
            }



            // 三目运算符
            //
            // 表达式? 语句1:语句2;







        </script>

        <!-- <input type="text" id="num1">
        <input type="text" id="num2">
        <input type="text" id="num3">
        <button onclick="nm()">比大小</button>
        <p id="p1"></p> -->

        <script>
              function fun_p(){
                  var x = document.getElementById("email").value;
                  var a = x.indexOf("@");
                  var d = x.lastIndexOf(".");

                   if(a>1 && d>a+2 && d+2<=x.length){
                           alert("地址有效");
                           // return false;
                     }else {
                           alert("格式不正确");
                    }
               }

        </script>

        <!--<form name="myForm" onsubmit="return fun_c();"> -->
            <!-- <input type="text" id="email"> -->
            <!-- <input type="submit" value="提交"> -->
            <!-- <button onclick="fun_p()">提交</button> -->
    </body>

    </html>

  • 相关阅读:
    访问控制
    静态方法
    类的特殊属性
    Ubuntu Linux 安装配置 MySQL
    Ubuntu16.04 18.04 安装rabbitmq 配置、使用详细教程
    E: The package lists or status file could not be parsed or opened.
    Linux 安装jsoncpp
    gpgkeys: protocol `https’ not supported
    pch文件中调试模式的使用
    ios UITableview 刷新某一个cell 或 section
  • 原文地址:https://www.cnblogs.com/Mr-liyang/p/6897742.html
Copyright © 2020-2023  润新知