美文网首页
2019-06-12

2019-06-12

作者: Python黑户 | 来源:发表于2019-06-13 11:17 被阅读0次

    demo1时钟

    <!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 使用+1
    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>
    

    demo2倒计时

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>倒计时</title>
    <script type="text/javascript">
    window.onload = function(){
    //活动第二天要将页面下线,直接跳转到其它页面,不会走后面的代码了
    // window.location.href = "[图片上传失败...(image-797ae-1560395539516)]
    
    http://www.baidu.com";
    
    var oDiv = document.getElementById('div1');
    
    function timeLeft(){
    //实际开发中此时间从服务器获取,避免客户端调整时间
    var now = new Date();
    var future = new Date(2019,8,2,0,0,0);
    
    // alert(future - now);//弹出与当前时间相差的毫秒数:12469935436
    var milli = parseInt((future - now)/1000);
    
    //活动当天页面下线,避免倒计时到点后继续计负时
    if(milli <= 0){
    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 = '距离2019年08月02日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>
    

    变量的作用域

    全局变量:

    函数外部定义的变量,函数内部和外部都可以访问,它的值可以共享。
    

    局部变量:

    函数内部定义的变量,函数内部可以访问,外部无法访问。函数内部访问变量时,先在内部查找是否有此变量,如果有,就使用内部变量,如果没有,就去外部查找。
    
    函数内部如果不用‘var’关键字定义变量,变量可能会变成全局变量,如果用严格模式解析会报错。
    

    封闭函数

    例子:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>封闭函数</title>
    <script type="text/javascript">
    /*原来的写法
    function myAlert(){
    var str = '欢迎访问我的主页';
    alert(str);
    }
    
    myAlert();*/
    
    var str = function(){
    alert('test');
    }
    
    //封闭函数的一般写法
    //封闭函数定义:(function(){……})()
    /*
    ;;(function(){
    var str = '欢迎访问我的主页';
    alert(str);
    })();//最后的()表示马上执行
    */
    
    //封闭函数其他的写法:在匿名函数前加“!”或者“~”,之后加“()”
    ~function(){
    var str = '欢迎访问我的主页';
    alert(str);
    }();
    </script>
    </head>
    <body>
    
    </body>
    </html>
    

    用变量的方式定义函数

    例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>用变量的方式定义函数</title>
    <script type="text/javascript">
    /*
    原来的写法:可以提前
    myAlert();
    
    function myAlert(){
    alert('hello!');
    }*/
    
    //函数用变量方式定义:先定义再使用
    // myalert();//提前会报错
    var myAlert = function(){
    alert('hello!');
    }
    
    myAlert();//放在下面可以执行
    
    </script>
    </head>
    <body>
    
    </body>
    </html>
    

    闭包

    闭包的本质就是函数嵌套,就是在函数里面定义函数,内部函数可以引用外部函数的参数和变量,参数和变量不会被垃圾回收机制给回收。

    闭包的用途:可以存循环的索引值,做私有变量计数器。
    

    例:

    闭包的一般写法
    function aa(b){
    var a = 12;
    
    function bb(){
    alert(a);
    alert(b);
    }
    
    return bb;
    }
    //cc全局变量不会被垃圾回收
    var cc = aa(24);*/
    
    //闭包的封闭函数写法
    var cc = (function(b){
    var a = 12;
    
    function bb(){
    alert(a);
    alert(b);
    }
    
    return bb;
    })(24);
    
    cc();
    
    /*
    //只能调用一次的闭包
    (function(b){
    var a = 12;
    
    function bb(){
    alert(a);
    alert(b);
    }
    
    return bb;
    })(24)();
    

    闭包存循环的索引值

    例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>闭包存循环的索引值</title>
    <style type="text/css">
    li{
    height: 30px;
    background-color: gold;
    margin-bottom: 10px;
    }
    </style>
    <script type="text/javascript">
    //闭包的用途:存循环的索引值
    window.onload = function(){
    var aLi = document.getElementsByTagName('li');
    // alert(aLi.length);//8
    
    for(var i=0; i<aLi.length; i++){
    /*
    aLi[i].onclick = function(){
    alert(i);//每个li都弹出8,因为点击时循环已完毕,i最后为8
    }
    */
    
    (function(k){//这里的k是形参
    aLi[k].onclick = function(){
    alert(k);//弹出每个li的索引值
    }
    })(i);//这里的i是实参
    }
    }
    </script>
    </head>
    <body>
    <ul>
    <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>
    </body>
    </html>
    

    内置对象

    1、document

    document.referrer  //获取上一个跳转页面的地址(需要服务器环境)
    

    2、location

    window.location.href  //获取或者重定url地址
    window.location.search //获取地址参数部分
    window.location.hash //获取页面锚点或者叫哈希值
    

    3、Math

    Math.random 获取0-1的随机数
    Math.floor 向下取整
    Math.ceil 向上取整
    

    获取地址参数

    例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>获取地址栏参数</title>
    <script type="text/javascript">
    
    window.onload = function(){
    //url?aa=tom#12
    var data = window.location.search;//?aa=tom
    var hash = window.location.hash;//#12
    alert(hash);//#12
    
    var oSpan = document.getElementById('span01');
    // alert(data);//?aa=tom
    
    var arr = data.split('=');
    // alert(arr);/aa,tom
    
    var name = arr[1];
    oSpan.innerHTML = name;
    }
    </script>
    </head>
    <body>
    <div>欢迎<span id="span01"></span>访问我的主页</div>
    </body>
    </html>
    

    math

    例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Math</title>
    <script type="text/javascript">
    // var num = Math.random();
    // alert(num);//弹出0-1之间的随机数
    
    var a = 10;
    var b = 20;
    // var num = Math.random()*(b-a)+a;
    // alert(num);//弹出10-20之间的随机数
    
    var arr = [];
    for(var i=0; i<20; i++){
    // var num = Math.floor(Math.random()*(b-a)+a);//向下取整,10-19
    var num = Math.floor(Math.random()*(b-a + 1)+a);//向下取整,10-20
    
    arr.push(num);//生成一个数就放进数组
    }
    alert(arr);//17,20,20,11,11,19,17,16,10,11,16,11,18,13,13,11,17,14,19,19
    </script>
    </head>
    <body>
    
    </body>
    </html>
    

    相关文章

      网友评论

          本文标题:2019-06-12

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