赞助
 1,数组的操作
            定义:
                var arr = [];
                var arr = new Array();

            调用:
                arr[索引下标]
                索引下标是从0开始

            新增:
                对不存在的索引下标进行赋值

            修改:
                对已经存在的索引下标进行赋值

            删除:
                通过length来删除

        2,数组的函数
            
            两个写入和两个删除
                数组.push()     末位写入
                数组.pop()      末位删除

                数组.unshift()  首位写入
                数组.shift()    首位删除

            数组删除指定单元
                数组.splice(起始索引,删除个数,之后都是替换内容)

            数组的排序
                数组.sort()
                数组.sort(function(a,b){return a-b;})   从小到大
                数组.sort(function(a,b){return b-a;})   东大到小

            数组和字符串的转化
                数组.join(间隔符号)    数组转字符串
                字符串.split(间隔符号) 字符串转数组

            数组的倒叙
                数组.reverse()  

            判断是否是数组的数据
                数组.indexOf(查询数据,起始索引)
                    如果有匹配的数据,返回值是索引下标
                    如果没有匹配的数据,返回值是-1

        3,数组的循环遍历
            for(var i = 0 ; i <= 数组.length-1 ; i++){程序}
                可以通过操作i的数值,控制数组循环遍历的进程

            for(var 变量 in 数组){程序}
                变量中存储,数组的索引下标

            数组.forEach(function(v,k){程序})
                第一个参数存储数组的数据,第二个参数存储数组的索引
                第二个参数可以不写

        4,数组的去重
            (1) , 先排序,再去重
                相邻的两个单元,如果数值相同,就删除后面的,同时要防止数组坍塌的影响
                var arr = [];
                arr.sort(function(a,b){return a-b;})
                for(var i = 0 ; i <= arr.length-1-1 ; i++){
                    if(arr[i] === arr[i+1]){
                        arr.splice(i+1 , 1);
                        i--;
                    }
                }

            (2) , 双层for循环
                从第一个单元的数值开始,跟之后每一个单元比较数据,如果相同就删除之后单元,反之数组坍塌的影响

                var arr= [];
                for(var i = 0 ; i <= arr.length-1-1 ; i++){
                    for(var j = i+1 ; j <= arr.length-1 ; j++){
                        if(arr[i] === arr[j]){
                            arr.splice( j , 1);
                            j--;
                        }
                    }
                }

            (3) ,  新建一个数组,从原始数组中获取数据,写入到新数组中
                   新数据组中没有的原始数组中的数据,再执行写入操作

                var arr = [];
                var newArr = [];

                arr.forEach(function(v){
                    if(newArr.indexOf(v) === -1){
                        newArr.push(v);
                    }
                })

            
            (4) , 利用对象不会有重复的键名
                var arr = [];
                var obj = {};
                var newArr = [];

                arr.forEach(function(v){
                    obj[v] = '随便';
                })

                for(var key in obj){
                    newArr.push(key);
                }


        5,数组的排序算法
            冒泡排序
                核心概念:相邻的两个单元比较数值,如果前面的数据较大,交换存储位置
                核心优化:当前单元和下一个单元比较,只需要循环到倒数第二个单元
                        已经比较出的最大值,不参与下一次比较
                        n个单元比较,只需要执行 n-1 次循环


            选择排序
                核心概念:默认第一个单元是最小数值单元,从下一个单元开始比较存储的数据,如果有更小值,存储这个单元你的索引
                        循环结束,判断索引下标是否是默认起始单元的索引下标,如果不是,交换存储的数据
                核心优化:已经比较出的最大值,不参与下一次比较
                        n个单元比较,只需要执行 n-1 次循环


        6,字符串的操作
            字符串是一个包装类型,支持通过搜索引下标操作获取字符串中的独立字符
            支持length属性

            字符串.indexOf()                     获取第一次出现的索引下标
            字符串.lastIndexOf()                 获取最后一次出现的索引下标
            字符串.substr(起始位置,字符个数)      截取字符串
            字符串.substring(起始位置,结束位置)   截取字符串
            字符串.toUpperCase()                 字符大写
            字符串.toLowerCase()                 字符小写
            字符串.replace(原始内容,替换内容)      字符串内容替换

            demo: 屏蔽关键词  随机验证码

        7, Math内置对象
            Math.random()     0-1的随机数,可以是0,不能是1
                              生成 a - b 的随机整数,可以是a可以是b
                              parseInt(Math.random()*(b+1-a)+a)

            浮点数取整
                Math.round()  四舍五入取整
                Math.floor()  向下取整
                Math.ceil()   向上取整

            Math.pow()      幂运算 
            Math.abs()      绝对值 
            Math.sqrt()     平方根 
            Math.PI         圆周率


            保留指定位数的小数
                方法1 :  乘以 100
                         使用 Math 内置对象提供的方法,获取整数部分
                         除以 100
            
                方法2 :  数值.toFixed(保留小数位数)
                        执行结果是字符串
                        只能四舍五入保留小数

        8, Date()内置对象
            设定获取时间对象
                (1),不定义参数  获取当前时间
                    var d = new Date()

                (2),设定字符串参数 
                    var d = new Date('2020-7-6 10:19:50');

                (3),设定数值参数  月份的数值是 0-11 对应 1-12月 
                    var d = new Date(2020,6,6,10,19,50);

            获取时间对象中的时间数据
                时间对象.getFullYear()       获取4位年份
                时间对象.getMonth()          获取月份   0-11 对应 1-12月
                时间对象.getDate()           获取日期
                时间对象.getDay()            获取星期   0-6 对应 日一二三四五六
                时间对象.getHours()          获取小时
                时间对象.getMinutes()        获取分钟
                时间对象.getSeconds()        获取秒
                时间对象.getTime()           获取时间戳  距离格林尼治时间标准时间:1970年1月1日0点0分0秒的时间差,单位是毫秒

            设定时间对象中的时间数据

                时间对象.setFullYear()       设定4位年份
                时间对象.setMonth()          设定月份   0-11 对应 1-12月
                时间对象.setDate()           设定日期
                时间对象.setDay()            设定星期   0-6 对应 日一二三四五六
                时间对象.setHours()          设定小时
                时间对象.setMinutes()        设定分钟
                时间对象.setSeconds()        设定秒
                时间对象.setTime()           设定时间戳

            demo,时钟,倒计时

        9,DOM操作
            获取标签对象的方法
                不管使用什么方法,获取的都是标签对象,包括匹配标签的所有设定(所有的属性和属性值)和内容

            document.getElementById('id属性值');
            document.getElementsByClassName('class属性值');
            document.getElementsByTagName('标签名称');
            document.getElementsByName('标签name属性值');

            document.querySelector('匹配方式')
            document.querySelectorAll('匹配方式')

            说明:
                1,在标签中写id和class,别写 # 和 点
                2,getElementById , getElementsByClassName 只写属性值,也是没有 # 和 点的
                3,querySelector 和 querySelectorAll
                    写标签名称就直接写 div
                    写id属性值,添加 #
                    写class属性值,添加 点
                4,推荐使用 querySelector 和 querySelectorAll 可以匹配任意HTML和CSS支持的语法
                5,区别:
                    getElementById           匹配id属性值,结果是唯一对象
                    getElementsByClassName   匹配class属性值,结果是伪数组,不能forEach
                    getElementsByTagName     匹配标签名称,结果是伪数组,不能forEach
                    getElementsByName        匹配name属性值,结果是伪数组,可以forEach

                    querySelector            匹配第一个符合条件的标签对象,结果还是唯一对象
                    querySelectorAll         匹配所有符合条件的标签对象,结果是伪数组,可以forEach


            属性操作
                可以直接操作的
                    标签对象.id
                    标签对象.className

                其他属性操作方法
                    标签对象.setAttribute(属性,属性值)   设定属性和属性值
                    标签对象.getAttribute(属性)          获取属性的属性值
posted on 2020-11-29 23:24  Tsunami黄嵩粟  阅读(59)  评论(0编辑  收藏  举报