zoukankan      html  css  js  c++  java
  • javascript基础:语法与html结合方式

    一、基本语法:

      1、与html结合方式

        1、内部JS:

          *  定义<script>,标签体内容就是JS代码

        2、外部JS:

          *  定义<script>,通过src属性引入外部的js文件

        *  注意:

          1、<script>可以定义在html页面的任何地方,但是定义的位置会影响执行顺序

          2、<script>可以定义多个

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    
        <script>
            alert("flypig666")
        </script>
    
        <script src="js/a.js"></script>
    
    </head>
    
    <body>
        <input type="text">
        <!-- <script>
            alert("flypig666")
        </script> -->
    </body>
    
    </html>

      2、注释

        单行注释://注释内容

        多行注释:/*注释内容*/

      3、数据类型

        1、原始数据类型(基本数据类型)

          1、number:数字 。  整数/小数/NAN(not  a number   一个不是数字的数字类型)

          2、string:字符串。  字符/字符串:"abc"、"a"、'abc'(单引和双引都可以)

          3、boolean:true  false

          4、null:一个对象为空的占位符

          5、undefined:未定义。如果一个变脸没有给初始化值,则会被默认赋值为undefined

        *      typeof(变量名):可以得出该变量类型

          1==number
          1.2==number
          NaN==number
          abc==string
          edf==string
          true==boolean
          null==object
          undefined==undefined
          undefined==undefined

    <script>
            // 定义变量
            // var a = 6;
            // alert(a);
    
            // a = "abc";
            // alert(a)
    
            //定义number类型
            var num = 1
            var num2 = 1.2
            var num3 = NaN
    
            // 输出到页面上
            document.write(num+"<br>")
            document.write(num2+"<br>")
            document.write(num3+"<br>")
    
            //定义String类型
            var str = "abc"
            var str2 = "edf"
            document.write(str + "<br>")
            document.write(str2 + "<br>")
    
            //定义boolean
            var flag = true;
            document.write(flag + "<br>")
    
            //定义null
            var obj = null
            var obj2 = undefined
            var obj3
            document.write(obj + "<br>")
            document.write(obj2 + "<br>")
            document.write(obj3 + "<br>")
        </script>

        2、引用数据类型:对象

      4、变量

        *  变量:一小块存储数据的内存空间

        *  Java语言是强类型语言,而javascript是弱类型语言   

           *  强类型:在开辟变量存储空间时,定义了空间将来存储的数据的数据类型,只能存储固定类型的数据

           *  弱类型:在开辟变量存储空间时,不定义空间将来的存储数据类型,可以存放任意类型的数据

        *   语法:

           *  var 变量名 = 初始化值

           *  typeof运算符:获取变量的类型

              *  注:null运算后得到的是object

      5、运算符

        1、一元运算符:只有一个运算数的运算符

          ++  --, +(正号)

    <script>
            /*
                注意:在js中,如果运算数不是运算符所要求的类型,那么js引擎会自动的将运算数进行类型转换
                    * 其他类型转number:
                        * string转number:按照字面值进行转换,如果字面值不是数字,则转为NaN(不是数字的数字)
                        * boolean转number:true转为1,false转为0
            */
            var num = 4
            var a = ++num
            document.write(num + "<br>")
            document.write(a)
            document.write("<hr>")
    
            var b = +"123abc"
            // alert(typeof(b))
            // alert(b + 1)
            document.write(typeof(b))
            document.write(b + 1)
            document.write("<hr>")
    
            var flag = +true
            var flag2 = +false
            document.write(typeof (flag) + "<br>")
            document.write(flag + "<br>")
            document.write(flag2 + "<br>")
            
        </script>

        2、 算法运算符

          +  -  *  /   %

        3、赋值运算符

          =   +=  -+   。。。

        4、比较运算符

          >  <   >=  <=  ==   ===(全等于)

    <script>
            /**
             * 比较运算符: 
             *      比较方式
             *          1、类型相同:直接比较
             *              * 字符串:按照字典顺序进行比较。按位逐一比较,直到得出大小为止
             *          2、类型不同:先进行类型转换,再进行比较
             *              *  ===:全等于。在比较之前,先判断类型,如果类型不一样,则直接返回false
             *          
            */
    
            document.write(3 > 4 + "<br>")
    
            document.write("dbc" > "acd" + "<br>")
    
            document.write(("123" == 123) + "<br>")
    
            // 全等
            document.write(("123" === 123) + "<br>")
        </script>

        5、逻辑运算符

          &&   ||    !

    <script>
            /**
             * 逻辑运算符:
             *  &&:与(短路)一边为false则为false
             *  ||:或(短路)一边为true则为true
             *  !:非
             *      * 其他类型转boolean:
             *          1、number:0或NaN为假,其他为真
             *          2、string:除了空字符串(""),其他都是true
             *          3、null&undefined:都是false
             *          4、对象:所有对象都为true
             * 
             */
    
            var flag = true
            document.write(flag + "<br>")
            document.write(!flag + "<br>")
    
            document.write("<hr>")
    
            //1、number
            var num = 3
            var num2 = 0
            var num3 = NaN
            document.write(!!num + "<br>")
            document.write(!!num2 + "<br>")
            document.write(!!num3 + "<br>")
            document.write("<hr>")
    
            //2、string
            var str1 = "abc"
            var str2 = ""
            document.write(!!str1 + "<br>")
            document.write(!!str2 + "<br>")
            document.write("<hr>")
    
            //3、null & undefined
            var obj = null
            var obj2
            document.write(!!obj + "<br>")
            document.write(!!obj2 + "<br>")
            document.write("<hr>")
    
            //4、对象
            var date = new Date
            document.write(!!date + "<br>")
            document.write("<hr>")
    
            var obj = "123"
            if(obj != null && obj.length > 0){
                //防止空指针异常
                alert(123)
            }
    
            //js中可以这样定义来简化书写
            if(obj){
                //防止空指针异常
                alert(11)
            }
        </script>

        6、三元运算符

          ? :

      <script>
            var a = 3
            var b = 4
            var c = a > b ? 1: 0
            alert(c)   
        </script>

      6、流程控制语句

        1、if.....else.....

        2、switch

          *  在java中,switch语句可以接受的数据类型:byte    int   short    char,枚举(1.5),String(1.7)

            *  switch(变量):

              case 值:

          *  在javascript中,switch语句可以接受任意原始数据类型

        

        <script>
            var a = undefined;
            switch (a){
                case  1:
                    alert("number");
                    break;
                case  "abc":
                    alert("string");
                    break;
                case  true:
                    alert("true");
                    break;
                case  null:
                    alert("null");
                    break;
                case  undefined:
                    alert("undefined");
                    break;
            }
        
        </script>

        3、while

        4、do.....while

        5、for


      7、js特殊语法:

      <script>
            //1、 语句以分号;结尾,如果一行只有一条语句则 ;可以省略(不建议)
            var a = 3
            alert(a)
    
            /*
                2、变量的定义使用var关键字,也可以不使用
                    * 用var:定义的变量是局部变量
                    * 不用var: 定义的变量是全局变量
            */
            // 定义全局变量
            var b
            // alert(b)
    
            function fun(){
                b = 6
                alert(b)
                
            }
            fun()
            alert("只是b:" + b)
            
        </script>

      8、对象

      *    Function对象:函数对象

             *      1、 创建
             *          1、 var fun = new function(形式参数列表,方法体)
             *          2、 function 方法名称(形式参数列表){
             *                  方法体 
             *              }
             *          3、 var 方法名 = function(形式参数列表){
             *                  方法体
             *              }
             *      2、 方法:     
             *                   
             *      3、 属性:
             *          length:代表形参的个数
             *      4、 特点:
             *          1、 方法定义时,形参的类型不用写,返回值类型也可以不用谢
             *          2、 方法是一个对象,如果定义名称相同的方法,会覆盖
             *          3、 在JS中,方法的调用只与方法的名称有关,和参数列表无关
             *          4、 在方法声明中有一个隐藏的内置对象(数组),arguments,封装所有的实际参数
             *      5、 调用:
             *          方法名称(实际参数列表);
         //1.创建方式1
            var fun1 = new Function("a","b","c","alert(a);")
            //调用方法
            //fun1(3,4)
            //alert(fun1.length)
    
            //2、创建方式2
            function fun2(a, b){
                alert(a + b);
            }
            //fun2(3,4)
            //alert(fun2.length)
    
            //3、创建方式3
            var fun3 = function(a,b){
                alert(a+b)
            }
            //fun3(3,4)
            //alert(fun3.length)
    
            fun2 = function(a,b){
                //alert(a-b)
                alert(a)
            }
            //fun2(4,1)
    
            //方法调用
            //fun2(1,2)
            //fun2(3)
    
            /*
                求两个数的和
    
            */
           function add(a, b){
               return a + b;
           } 
           var sum = add(1,2)
           //alert(sum)
    
           //求任意个数的和
           function add2(){
                // alert(arguments[0]);
                // alert(arguments[1]);
                // alert(arguments[2]);
                var sum = 0;
                for(var i = 0; i < arguments.length; i++){
                    sum += arguments[i];
                }
                alert(sum)
           }
        
           add2(1,2,4,5)

      * Array

      1、创建:
                        1、var arr = new Array(元素列表);
                        2、var arr = new Array(默认长度);
                        3、var arr = [元素列表];
                    2、方法:
                        join(参数):将数组中的元素按照指定的分割符拼接为字符串
                        push()  向数组的末尾添加一个或更多元素,并返回新的长度
                    3、属性:
                        length:数组长度
                    4、特点:
                        1、js中,数组元素的类型可变的
                        2、js中,数组的长度可变的
       // 1、创建方式1
            var arr1 = new Array(1,2,4);
            var arr2 = new Array(5);
            var arr3 = [1,23,4];
            var arr4 = new Array()
    
            document.write(arr1 + "<br>")
            document.write(arr2 + "<br>")
            document.write(arr3 + "<br>")
            document.write(arr4 + "<br>")
    
            var arr = [1,"abc",true];
            document.write(arr[0] + "<br>")
            document.write(arr[1] + "<br>")
            document.write(arr[2] + "<br>")
            
            arr[10] = "hehe"
            document.write(arr[10] + "<br>")
            document.write(arr[9] + "<br>")
            alert(arr.length)
            //拼接为字符串
            //1、join("")
            document.write(arr.join("===")+"<br>")
            //2、push()
            arr.push(666)
            document.write(arr.join("==")+"<br>")

      * Boolean

      * Date

    /*
                Date: 日期对象
                    1、创建:
                        var date = new Date()
                    2、方法:
                        toLocalString():返回当前date对象对应的时间本地字符串格式
                        getTime(): 获取毫秒值,返回当前日期对象描述的时间到1970年1月1日零点的毫秒值差
            
            */
    
            var date = new Date();
            document.write(date + "<br>")
            document.write(date.toLocaleString() + "<br>")
            document.write(date.getTime() + "<br>")

      * Math

          /**
             * Math: 数学
             *      1、创建
             *          * 特点:Math对象不用创建,直接使用     Math.方法名()
             *      2、方法:
             *          random(): 返回0-1之间的一个随机数(含0不含1)
             *          ceil(x) 对数进行上舍入
             *          floor(x)   对数进行下舍入
             *          round(x)   把数四舍五入为最接近的整数
             *      3、属性:
             *          PI
             * 
             */
    
            document.write(Math.PI + "<br>");
            document.write(Math.random() + "<br>");
            document.write(Math.ceil(3.14) + "<br>");
            document.write(Math.floor(3.14) + "<br>");
            document.write(Math.round(3.14) + "<br>");
    
            /**
             * 去1-100之间的随机整数
             *      1、Math.random()产生随机数: 范围(0,1]小数
             *      2、乘以 100 --> [0,99.9999] 小数
             *      3、舍弃小数部分 floor   ---> [0,99]整数
             *      4、 +1 -->[0,99]整数 [1,100]
             * 
              */
    
              var number = Math.floor((Math.random() * 100)) + 1;
              document.write(number);
              

      *   Number

      * String

      *   RegExp

          1、正则表达式:定义字符串的组成规则

            1、单个字符:[ ]

              如: 【a】【ab】 【a-z】【0-9】

              *  特殊符号代表特殊含义的单个字符:

                d: 单个数字字符 [0-9]  

                w: 单个单词字符 [a-z A-Z 0-9_]

            2、量词符号:

            * :表示出现0次或多次

            ?:表示出现0次或1次

            +:出现一次或多次

            {m,n}:表示范围在m-n之间

                * m如果缺省:{,n}:最多n次

                * n如果缺省:{m,}:最少m次

            3、开始结束符号

              *   ^:开始

              *   $:结束

          2、正则对象:

            1、创建

              1、var  reg = new RegExp("正则表达式")

              2、var  reg = /正则表达式/

            2、方法

              test(参数):验证指定的字符串是否符合正则定义的规范

        <script>
            var reg = new RegExp("^\w{6,12}");
    
            var reg2 = /^w{6,12}$/;
    
            var username = "flypig"
    
            //验证
            var flag = reg.test(username)
            alert(flag)
        
        </script>

      *   Global:

        1、特点:全局对象,这个Global中封装的方法不需要对象就可以直接调用。  方法名()

        2、方法:

            encodeURI():url编码

            decodeURI():url解码

            encodeURIComponent():url编码(编码的字符更多)

            decodeURIComponent():url解码

            parseInt():将字符串转为数字

              * 逐一判断每一个字符是否是数字,直到不是数字为止,将前边数字部分转为number

            isNaN():判断一个值是否为NaN-------------NaN参与的==比较全部为false

            eval():将 Javascript 字符串,并把它作为脚本代码进行执行

       <script>
            var str = "大飞猪"
            var encode = encodeURI(str);
            document.write(encode + "<br>")
            var s = decodeURI(encode)
            document.write(s + "<br>")
    
            var str = "123c1e"
            var number = parseInt(str)
            //alert(number + 1)
    
            var a = "abc"
            document.write(a == NaN)
            document.write(isNaN(a))
    
            var jscode = "alert(123)"
    
            eval(jscode)
        
        </script>

          

  • 相关阅读:
    javascript 作用域、预解析、变量提升
    用最简洁代码实现indexOf方法
    JavaScript 中的 RegExp 对象
    不能使用任何循环控制语句和迭代器的情况下实现一个0到1000的数组赋值
    IDEA搭建SSM框架教程 从零开始 SSM+Maven框架搭建教程
    Redis缓存 集成SSM框架
    JavaWeb拦截器
    log4j.properties配置文件
    C#WinForm,TCP调试工具
    C#如何实现控件移动拖动
  • 原文地址:https://www.cnblogs.com/flypig666/p/11599225.html
Copyright © 2011-2022 走看看