javascript

    概述
        javascript是在浏览器环境下运行的一种脚本语言
        可以用来和数据进行交互,分为界面交互和数据交互
            界面交互
                指的是当触发某种事件的时候, 如:点击按钮,鼠标移动
            数据交互
                指的是ajax发起http请求获取数据
                
    常见的使用三种方式(和CSS是方式一样)
        行内式  基本不常用
        外链式  <script type="text/js" src = "想要连接的JS的文件" ></script>
        嵌入式    <script> 内嵌代码块 </script>
            
    常见的输出
        alert("hello word")      弹框的形式显示
        console.log("hello word")    按F12/Fn+F12在浏览器的console下可以检查输出
        console.dir("hello word")
        console.table("hello word")     
        document.wirte("hello word")    直接显示在浏览器页面上
        

    JS操作CSS的属性时注意
        当事件触发时,修改属性时注意
        全部是小写的直接用         xxx    ->  style.xxx = "";        中间存在"-" 将"-"后面的第一个单词大写
              xx-xx  ->  style.xxXx = "";
        
        class 属性较为特殊
             class  -> style.className = "";
             
        <script>      
            window.onload = function()
            {
                var oBtn = document.getEleementById("btn");
                var oDiv = document.getEleementById("div");
                
                oBtn.onclick =function()
                {
                    oDiv.style.textSize = 25px;
                    oDiv.style.lineHight = 20px;
                }
            }
        
        </script>    
            
    变量的命名规则和定义变量
        严格区分大小写
        第一个字母必须是  字母/下划线/$
        其他字母可以是字母  下划线 /美元/数字
        支持匈牙利命名规则  第一个字母代表数据类型  nnum  stemp
        
        var nnum = 12;
        var nnum = "12";
        var stemp = "aa";
        
        变量的作用域
            函数的调用 要往回找 函数的定义阶段
            首先在函数内部找 -> 内部找不到就往外找,直到找到全局为止
            
            全局变量和局部变量
            全局变量 num=10;
            局部变量
                所有用var定义出来的变量都是局部的
                    var num = 10;  
                    
            作用域和其他的语言基本相同,看有作用域的变量是全局变量还是局部变量,全局变量是对这个.html都有效,局部变量只在当前函数下有效        
    
    函数
        jS中的函数具备预解析功能
            函数的调用可以放在定义函数的上面,
            
        普通函数    
            eg:
                move()
                定义函数
                function move(参数位置)
                {
                    //执行的代码块
                    document.write("ok");            
                }
        匿名函数
            函数没有名字
            var text = function(x1,x2)
            {    
                return x1 + x2;
            ]
            
        封闭函数
            如果是普通的函数的话,如果有多个同名函数,只有一个可以被调用,但封闭函数可以做到让每个同名函数都可以执行里面的代码块
            
            <script>
                普通函数
                function func()
                {
                    alert(1);
                }
                func()
                
                第一种封闭函数
               ;(function()
               {
                    function func()
                    {
                        alert(2);
                    }
                    func()
               })()
                
                封闭函数的语法结构
                    第一种封闭函数的语法结构
                   !(function()
                   {
                      alert(3);
                   })()
                    第二种封闭函数的语法结构
                   ~(function()
                   {
                     alert(4);
                   })()
               
            </script>
                
    常见的数据类型
        number
            int/float
        boolean
            true/false
        string
        undefined
            未定义/未声明的
        object
            有空对象   var ret = null 
            有数据的对象(触发事件)  
    入口函数
        在hender标签中进行定义
        <header>
            <script>      
                window.onload = function()
                {
                    var oBtn = document.getElementById("btn");
                    var oDiv = document.getElementById("div");
                    
                    oBtn.onclick =function()
                    {
                        oDiv.style.textSize = 25px;
                        oDiv.style.lineHight = 20px;
                    }
                }
            
            </script>
        </header>    
        
    常见的鼠标的事件 
        onclick         当点击时执行什么
        onmouseover     当鼠标滑过时执行什么
        onmouseout      当鼠标离开时执行什么
        
        oBtn.onclick = function()
        {
            // 执行的代码块
            oDiv.style.display = "block";
        }
        
    js中的基本操作
        num = prompt("请输入字符串");  //相当于python中的 input()
        
        判断数据类型
            typeof()
            
        && || !     >>(往右移几位就除以2的n次方)  <<(往左移几位就乘以2的n次方)
        
        "=="     判断数值是否相等(不管数据类型是什么)  相对相等
        "==="    判断数字是否相等 + 数据类型       绝对相等
        
        条件语句
            if(条件语句){代码块}
            else if(条件语句){代码块}
            else{代码块}
    
        循环
            while循环
                var i=0;
                while(i>10)
                {
                    // 执行相应的代码块
                    i++;
                }
                
            for循环
                for(var i=0;i<10;i++)
                {
                    //执行相应的代码块          ;
                }
            switch  case 循环
                var date  = prompt("请输入内容")
                switch(date):
                {
                    case 1:
                        document.write("今天是星期一");
                        break;
                    case 2:
                        document.write("今天是星期二");
                        break;
                    case 3:
                        document.write("今天是星期三");
                        break;
                    case 4:
                        document.write("今天是星期四");
                        break;
                    case 5:
                        document.write("今天是星期五");
                        break;
                    case 6:
                        document.write("今天是星期六");
                        break;
                    case 7:
                        document.write("今天是星期日");
                        break;
                    default:
                        document.write("没有你要查找的这个星期数");
                }
            
        数组
            定义数组的两种方式
                var arr = []   //定义一个空数组
                var arr = new Array(1,2,3)  //里面包含1,2,3三个元素
            操作数组常用的方法
                length   获取数组的长度
                push()   在末尾增加一个元素
                pop()    删除末尾的元素
                splice()
                    splice(位置下标,删除元素的位置,增加元素的位置)
                    splice(位置下标,删除元素的位置)    只删除不增加
                    splice(位置下表)             从第几个位置后,该位置后面的所有元素都删除
                reserve()   数组中的元素翻转
                join()      将数组转换为字符串
                ret = arr.join("-")
                indexof()    返回元素中第一次出现的索引值
                
                数组去重
                    var arr = [11,22,33,88,22,44,55,44,22,,66];
                    var new_arr = [];
                    for(var i=0;i<arr.length;i++)
                    {                        
                        // document.write(arr[i]);
                        // 去重的条件
                        if(arr.indexOf(arr[i]) == i)
                        {
                            new_arr.push(arr[i]);
                        }
                    }
                    document.write(new_arr);
        字符串
            常用的操作方法
                parseInt() 去掉小数点后的的值
                    var num = 1.2
                    alert(parseInt(num))
                    -> 1
                parseFloat()
                    var num = 1.2
                    alert(parseInt(num))
                    -> 1.2
                    
                split()     将字符串进行切割
                indexof()   返回元素中第一次出现的索引值
                substring(start,end)  左闭右开
                
        定时器
            setTimeout()   只能执行一次的定时器
            setInterval()  可以进行无限次代码执行
            clearTimeout()
            clearIntveral() 
            两个定时器的参数相同
            var result = null;
            result = setIntveral(function()
            {
                ;// 里面需要执行的代码块
            },50);
            
            clearIntveral(result)
            result = null;
            
        内置的对象和方法
            自定义对象
                {name: "xiaoqiang", age: 18}
                -键不用加引号,加上也不出错
                -值如果是字符串必须写双引号
                new关键字形式
        
            内置的Date对象   --> Python中的内置模块
                var oDate = new Date();
        
            JSON对象 
              字符串转对象 --> obj = JSON.parse(string)
              对象转字符串 --> s   = JSON.stringify(obj)
            
            Math对象
                Math.ceil();  //向上取整。
                Math.floor();  //向下取整。 -->
                <!-- Math.round();  //四舍五入。
                Math.random();  //0.0 ~ 1.0 之间的一个伪随机数。【包含0不包含1】 //比如0.8647578968666494
                Math.ceil(Math.random()*10);      // 获取从1到10的随机整数 ,取0的概率极小。
                Math.round(Math.random());   //可均衡获取0到1的随机整数。
                Math.floor(Math.random()*10);  //可均衡获取0到9的随机整数。
                Math.round(Math.random()*10);  //基本均衡获取0到10的随机整数,其中获取最小值0和最大值10的几率少一半。
                因为结果在0~0.4 为0,0.5到1.4为1...8.5到9.4为9,9.5到9.9为10。所以头尾的分布区间只有其他数字的一半。 
        
            RegExp(正则)
                两种定义方式:
                    new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,11}$")
                    /new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,11}$")/
                匹配模式
                    g 全局
                    i 忽略大小写
          
                    正则表达式中间不能加空格
                    .test() --> .test(undefined) --> .test("undefined")
                    全局模式下会有一个lastIndex属性
posted @ 2020-08-13 20:35  inhocho  阅读(8)  评论(0)    收藏  举报