美文网首页
JavaScript学习三

JavaScript学习三

作者: qianxun0921 | 来源:发表于2018-09-19 13:42 被阅读0次

    数组

    面向对象的方式创建
    var arr01 = new Array(1,3,6,'abc');
    直接创建
    var arr02 = [1,2,3,'def'];

    alert(arr02.length);//输出数组的长度

    var arr03 = [[1,2,3],['a','b','c','d'],[true,false]];
    alert(arr03[1].length);

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>数组</title>
        <script type="text/javascript">
            //面向对象的方式创建
            var aRr01 = new Array(1,2,3,'abc');
            //直接创建
            var aRr02 = [1,2,3,'def'];//推荐使用,性能更高
    
            //获取数组的成员数量(长度)
            // alert(aRr02.length);//弹出4
            // alert(aRr02[3]);//弹出cdf
    
            var aRr03 = [[1,2,3],['a','b','c','d'],[true,false]];
            // alert(aRr03.length);//弹出3
            // alert(aRr03[1].length);//弹出3
            alert(aRr03[1][2]);//弹出c
        </script>
    </head>
    <body>
        
    </body>
    </html>
    

    数组的常用方法

    用-连接数组元素并转为字符串

    var sTr = aRr.join("-");//用-连接数组元素并转为字符串,弹出1-2-3-4

    join 连接

    var sTr = aRr.join('');//用空串连接
    alert(sTr);//弹出1234

    push 向数组最后追加元素

    aRr.push(5);
    alert(aRr);//1,2,3,4,5

    pop 删除末尾元素

    aRr.pop();
    alert(aRr);//1,2,3

    unshift 向最前面插入元素0

    aRr.unshift(0);
    alert(aRr);//0,1,2,3,4

    shift 删除第一个(索引为0的)元素

    aRr.shift();
    alert(aRr);//2,3,4

    reverse 反转

    aRr.reverse();
    alert(aRr);//4,3,2,1

    查找字母'b'第一次出现的索引

    var aRr2 = ['a','b','c','d','a','b','c','d'];
    var num = aRr2.indexOf('b');
    alert(num);//1

    从第2索引元素开始,删除1个元素

    aRr2.splice(2,1);//删除c
    alert(aRr2);//a,b,d,a,b,c,d

    从第2索引元素开始,删除1个元素,再插入e

    aRr2.splice(2,1,'e');//把c替换成e
    alert(aRr2);//a,b,e,d,a,b,c,d

    删除后面的abcd,改为fghi

    aRr2.splice(4,4,'f','g','h','i');
    alert(aRr2);//a,b,c,d,f,g,h,i

    通过标签获取元素

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>通过标签获取元素</title>
        <script type="text/javascript">
            window.onload = function(){
                // //获取页面上所有的li
                // var aLi = document.getElementsByTagName('li');
    
                //获取id为list01的ul
                var oList = document.getElementById('list01');
                //再获取这个ul下的所有li
                var aLi = oList.getElementsByTagName('li');
                alert(aLi.length);//8
                // aLi.pop();//错误用法,aLi是一个类似数组的选择集,没有数组通用的一些方法
    
                aLi[0].style.backgroundColor = 'gold';
                aLi[1].style.backgroundColor = 'gold';
            }
        </script>
    </head>
    <body>
        <ul id="list01">
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
            <li>6</li>
            <li>7</li>
            <li>8</li>
        </ul>
    
        <ul id="list02">
            <li>9</li>
            <li>10</li>
            <li>11</li>
            <li>12</li>
        </ul>
    </body>
    </html>
    

    循环语句

    通过循环语句可以反复的执行一段代码多次
    

    while循环
    语法:
    while(条件表达式){
    语句...
    }

    while语句在执行时,先对条件表达式进行求值判断,如果值为true,则执行循环体,循环体执行完毕以后,继续对表达式进行判断
    如果为true,则继续执行循环体,以此类
    如果值为false,则终止循环

    数组去重

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>数组去重</title>
        <script type="text/javascript">
            var aRr = [1,3,4,1,6,9,1,2,5,3,1,6,5,4,4];
            var aRr2 = [];
    
            for(var i=0; i<aRr.length; i++){
                //判断元素第一次出现的位置,恰好是当前索引时,就将元素放入新数组
                if(aRr.indexOf(aRr[i]) == i){
                    aRr2.push(aRr[i]);
                }
            }
    
            alert(aRr2);//1,3,4,6,9,2,5
        </script>
    </head>
    <body>
        
    </body>
    </html>
    }
    

    字符串处理方法

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>字符串处理的方法</title>
        <script type="text/javascript">
            /*字符串切断转成数组*/
            var sTr = '2018-06-20';
            var aRr = sTr.split('-');
            // alert(aRr);//2018,06,20
            // console.log(aRr);
    
            var aRr2 = sTr.split('');
            // console.log(aRr2);
    
            /*实际上就是修改了<title>标签的内容*/
            // document.title = aRr2;
    
            var sTr2 = '#div1';
            var sTr3 = '.div1';
    
            /*获取指定索引的字符*/
            var sTr4 = sTr2.charAt(0);
            if(sTr4 == '#'){
                // alert('id选择器');
            }
    
            /*查看子串第一次出现的位置*/
            var sTr5 = 'Microsoft Yahei';
            var num = sTr5.indexOf('Yahei');
            // alert(num);//10
    
            var num2 = sTr5.indexOf('xihei');
            // alert(num2);//没有找到就弹出-1
    
            /*substring截取子串*/
            //从10开始,截到15(包括开始位置,不包括结束位置)
            // var sTr6 = sTr5.substring(10,15);//Yahei
            //从10开始截取到末尾
            var sTr6 = sTr5.substring(10);//Yahei
            // alert(sTr6);
    
            /*全部转为大写字母*/
            // alert(sTr6.toUpperCase());//YAHEI
            /*全部转为小写字母*/
            alert(sTr6.toLowerCase());//yahei
        </script>
    </head>
    <body>
        
    </body>
    </html>
    

    字符串反转

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>字符串反转</title>
        <script type="text/javascript">
            var sTr = "123asdf79888asdfe21";
            //1、split字符串转成数组
            //2、reverse数组反转
            //3、join数组转成字符串
            var sTr2 = sTr.split('').reverse().join('');
            alert(sTr2);//12efdsa88897fdsa321
        </script>
    </head>
    <body>
        
    </body>
    </html>
    

    定时器的基本用法

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>定时器的基本用法</title>
        <script type="text/javascript">
            //单次定时器
            var timer = setTimeout(function(){
                alert('hello!');
            }, 3000);
    
            //清除单次定时器
            clearTimeout(timer);
    
            //反复循环定时器
            var timer2 = setInterval(function(){
                alert('hi~~~');
            }, 2000);
    
            //清除反复循环定时器
            clearInterval(timer2);
        </script>
    </head>
    <body>
        
    </body>
    </html>
    

    定时器动画

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>定时器动画</title>
        <style type="text/css">
            .box{
                width: 100px;
                height: 100px;
                background-color: gold;
                position: fixed;
                left: 20px;
                top: 20px;
            }
        </style>
        <script type="text/javascript">
            window.onload = function(){
                var oBox = document.getElementById('box');
    
                var left = 20;
                //反复循环定时器,每30毫秒修改一次盒子的left值
                var timer = setInterval(function(){
                    left += 2;
                    oBox.style.left = left + 'px';
    
                    //当left值大于700时停止动画(清除定时器)
                    if(left > 700){
                        clearInterval(timer);
                    }
                },30);
            }
        </script>
    </head>
    <body>
        <div class="box" id="box"></div>
    </body>
    </html>
    

    时钟

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>时钟</title>
        <style type="text/css">
            
        </style>
        <script type="text/javascript">
            window.onload = function(){
                var oBox = document.getElementById('box');
    
                function timeGo(){
                    var now = new Date();
                    // alert(now);//弹出美式时间:Wed Jun 20 2018 15:27:13 GMT+0800 (中国标准时间)
                    var year = now.getFullYear();//2018年
                    var month = now.getMonth() + 1;//6月弹出5//范围0-11
                    var date = now.getDate();//20号
                    var week = now.getDay();//3//星期几,西半球时间,范围0-6,星期日为一周的第一天,为0
    
                    var hour = now.getHours();
                    var minute = now.getMinutes();
                    var second = now.getSeconds();
    
                    // alert(hour + ":" + minute + ":" + second);//15:33:9
    
                    oBox.innerHTML = '当前时间是:' + year + '年' + toDouble(month) + '月' + toDouble(date) + '日 ' + toWeek(week) + ' ' + toDouble(hour) + ":" + toDouble(minute) + ":" + toDouble(second);
                }
    
                timeGo();
                setInterval(timeGo, 1000);
            }
    
            //此函数将星期的数字转为汉字表示
            function toWeek(num){
                switch(num){
                    case 0:
                        return '星期天'; 
                        break;
                    case 1:
                        return '星期一'; 
                        break;
                    case 2:
                        return '星期二'; 
                        break;
                    case 3:
                        return '星期三'; 
                        break;
                    case 4:
                        return '星期四'; 
                        break;
                    case 5:
                        return '星期五'; 
                        break;
                    case 6:
                        return '星期六'; 
                        break;
                }
            }
    
            //此函数将不足两位的数字前面补0
            function toDouble(num){
                if(num < 10){
                    return '0' + num;
                }else{
                    return num;
                }
            }
        </script>
    </head>
    <body>
        <div id="box"></div>
    </body>
    </html>
    

    倒计时

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>倒计时</title>
        <script type="text/javascript">
            window.onload = function(){
                //活动第二天要将页面下线,直接跳转到其它页面,不会走后面的代码了
                // window.location.href = "http://www.baidu.com";
    
                var oDiv = document.getElementById('div1');
    
                function timeLeft(){
                    //实际开发中此时间从服务器获取,避免客户端调整时间
                    var now = new Date();
                    var future = new Date(2018,5,20,16,30,20);
    
                    // alert(future - now);//弹出与当前时间相差的毫秒数:12469935436
                    var milli = parseInt((future - now)/1000);
    
                    //活动当天页面下线,避免倒计时到点后继续计负时
                    // if(milli <= 0){
                    //  //页面跳转,不执行下面的代码了
                    //  window.location.href = "http://www.baidu.com";
                    // }
    
                    var day = parseInt(milli / 86400);
                    var hour = parseInt(milli % 86400 / 3600);
                    var minute = parseInt(((milli % 86400) % 3600) / 60);
                    var second = milli % 60;
    
                    oDiv.innerHTML = '距离2018年11月12日00时00分00秒还有' + day + '天' + toDouble(hour) + '时' + toDouble(minute) + '分' + toDouble(second) + '秒';
                }
                
                timeLeft();
                setInterval(timeLeft, 1000);
            }
    
            function toDouble(num){
                if(num < 10){
                    return '0' + num;
                }else{
                    return num;
                }
            }
        </script>
    </head>
    <body>
        <div id="div1"></div>
    </body>
    </html>
    

    变量的作用域

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>变量的作用域</title>
        <script type="text/javascript">
            /*
            全局变量:函数外部定义的变量,函数内部和外部都可以访问,它的值可以共享
    
            局部变量:函数内部定义的变量,函数内部可以访问,外部无法访问。函数内部访问变量时,先在内部查找是否有此变量,如果有,就使用内部变量,如果没有,就去外部查找
    
            函数内部如果不用'var'关键字定义变量,变量可能会变成全局变量,如果用严格模式解析会报错
            */
            var a = 12;
    
            function aa(){
                // var a = 5;
                var b = 7;
    
                // alert(a);
            }
    
            // alert(a);
            // alert(b);//报错
    
            aa();
        </script>
    </head>
    <body>
        
    </body>
    </html>
    

    相关文章

      网友评论

          本文标题:JavaScript学习三

          本文链接:https://www.haomeiwen.com/subject/imhinftx.html