JavaScript:字符串+日期对象+行走的方块+汉字显示当前日期+秒表的制作

Posted 勇敢*牛牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript:字符串+日期对象+行走的方块+汉字显示当前日期+秒表的制作相关的知识,希望对你有一定的参考价值。

javascript:字符串+日期对象

字符串

var str="aaa";
var str=new String("aa");
console.log(str);
var str1="aaa";

//字符串的length是只读属性,不能修改
//str1.length

字符串本身是不能被修改
console.log(str1[0])
str1[0]="b";//无法修改
console.log(str1)//aaa

指定获取Unicode编码

var str = "0Abcdef";
console.log(str.charAt(2))//指定下标
console.log(str.charCodeAt(0));//获取指定元素的Unicode编码

连缀

        console.log(Array(75).fill(1).map(function (t, i) return i));
        var str = Array(75).fill(1).map(function (t, i) 
            // 0~74
            return i
        ).filter(function (t, i) 
            //过滤出符合这个条件的unicode值
            return (i >= 0 && i < 10) || (i >= 17 && i < 43) || (i >= 49 && i < 75);
        ).map(function (t) 
            //返回转换成这个unicode值所对应的字符
            return String.fromCharCode(t+48)
        ).sort(function()
            //返回这个乱序的字符数组
            return Math.random()-0.5;
        ).join("").slice(0,4);
            //转换为字符串,最后截取四位输出
    
       console.log(str)

方法描述
search查找元素的下标 比indexOf更强大,因为它可以使用正则
match查找元素 应用于正则,大量使用
substring(0,4)没有负数,使用负数代表0之前
str.substring(6,2)可以从右到左获取
str.substr(2,3)从下标几开始获取长度多少的字符串
replace主要使用于正则
str.replace(查找的字符,替换的字符);str.replace(查找的字符,function(查找到元素,(群组1…),查找到元素的下标,原字符串) return 要替换的内容 );

split 适用于正则

var url="http://localhost/news/a/index.html";
var str=url.split("/").pop();
console.log(str)//index.html

模拟重构jquery获取网址参数

 var url="https://www.163.com/news/index.html?a=1&b=2&c=3";

 function getQuery(url)
     var index=url.indexOf("?");
     var str=url.slice(index+1);//a=1&b=2&c=3
     var arr=str.split("&");//['a=1','b=2','c=3']
     var o=;
     for(var i=0;i<arr.length;i++)
         var arr1=arr[i].split("=");//['a','1']
         var key=arr1[0];
         var value=arr1[1];
         o[key]=isNaN(value) ? value : Number(value);
     
     return o
 
 function getQuery(url)
       return url.split("?")[1].split("&").reduce(function(v,t)
            var arr=t.split("=");
            v[arr[0]]=isNaN(arr[1]) ? arr[1] : Number(arr[1]);
            return v;
       ,);
    
方法功能
str.toUpperCase()大写
str.toLowerCase()小写
str.trim()去掉首尾空格
str.trimEnd()去除头部空额
str.trimStart()去除尾部空格
str.repeat(3)重复
str.padEnd(2,0)判断字符串的长度是否是2位,如果不足两位,后方补0
str.padStart(4,0)判断字符串的长度是否是4位,如果不足两位,前方补0
str.startsWith(“a”)从第一位开始起始是不是a
str.startsWith(“b”,1)从哪一位开始算起始
str.endsWith(“f”)判断f是不是最尾部元素
str.endsWith(“e”,5)判断第五位之前是不是e结尾

日期对象

创建日期对象
输出时会被自动隐式转换Wie字符串

var date=new Date();
方法功能
date.getFullYear();
date.getMonth();0-11
date.getDate();日期
date.getDay();星期0-6
date.getHours();小时
date.getMinutes();分钟
date.getSeconds();
date.getMilliseconds()毫秒
set的一套设置时间
date.setHours(18);设置小时
Date.now()时间戳
date.getTime()1970.1.1到现在的毫秒数

汉字显示日期时间

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="div1"></div>
    <script>
        var div;
        var arr=["零","一","二","三","四","五","六","七","八","九"];
        init()
        function init()
            div = document.getElementById('div1');
            setInterval(animation,500);

        
        function animation()
            var date = new Date();
            var str = ''
            str +=  '公元'+getYear(date.getFullYear())+'年'
            str += arr[date.getMonth()+1]+'月'
            str += getCN(date.getDate())+'日'
            str += date.getDay() === 0 ? " 星期日 ":" 星期"+arr[date.getDay()]+' '
            str += getCN(date.getHours())+'点'
            str += getCN(date.getMinutes(),true)+'分钟'
            str += getCN(date.getSeconds(),true)+'秒'
            str += getCN(date.getMilliseconds(),true)+'毫秒'

            div.innerHTML = str

        
        /* 获取年份,根据元素特性取值累计字符串 */
        function getYear(num)
            return num.toString().split('').reduce(function(v,t)
                return v+arr[t]
            ,'');
        
        function getCN(num,bool)
            num=~~num;
            // 真值缩小
            if(num<0 || num>1000) throw new RangeError("错误的数值")
            if(num<10) return bool ? "零"+arr[num] : arr[num];
            if(num===10) return "十";
            if(num<100)
                if(num%10===0) return arr[num/10]+"十";
                if(num<20) return "十"+arr[num%10];
                return arr[~~(num/10)]+"十"+arr[num%10];
            
            if(num%100===0)return arr[num/100]+"百";
            if(num%100<10) return arr[~~(num/100)]+"百零"+arr[num%100];
            if(num%10===0)return arr[~~(num/100)]+"百"+arr[num/10%10]+"十";
            return arr[~~(num/100)]+"百"+arr[~~(num/10)%10]+"十"+arr[num%10];         
        

    </script>
</body>
</html>

秒表制作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="div1">00:00:00</div>
    <button id="startBn">开始</button>
    <button id="stopBn">停止</button>
    <script>

        var div1,startBn,stopBn,startTime;
        var bool=false, prevTime=0;
           
        init();
        function init()
            div1=document.getElementById("div1");
            startBn=document.getElementById("startBn");
            stopBn=document.getElementById("stopBn");
            startBn.onclick=clickHandler;
            stopBn.onclick=clickHandler;
            setInterval(animation,1);
        

        function clickHandler()
            if(this===startBn)
                if(startBn.innerHTML==="开始")
                    startBn.innerHTML="暂停"
                    startTime=Date.now();
                    bool=true;
                else
                    startBn.innerHTML="开始";
                    bool=false;
                    prevTime+=Date.now()-startTime;
                
            else
                div1.innerHTML="00:00:00";
                prevTime=0;
                bool=false;
                startBn.innerHTML="开始";
            
        

        function animation()
            if(!bool) return;
            var num=Date.now()-startTime+prevTime;
            var str="";
            var m=(~~(num/1000/60));
            var s=~~((num-m*1000*60)/1000);
            str+=m.toString().padStart(2,0)+":";
            str+=s.toString().padStart(2,0)+":";
            str+=(~~((num%1000)/10)).toString().padStart(2,0);
            div1.innerHTML=str;
        
    </script>
</body>
</html>


点击事件行走的方块

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div
           
            height: 50px;
            width: 50px;
            background-color: red;
            text-align: center;
            line-height: 50px;
            position: relative;
        
    </style>
</head>
<body>
    <div>1</div>
    <div>2</div>
    <script>
        var dis;
        init();
        function init()
            dis = Array.from(document.querySelectorAll('div'));
            for(var i=0;i<dis.length;i++)
                dis[i]JavaScript 之日起对象(转)

javascript基础学习

谈谈javascript中的日期Date对象

将 Json 日期字符串转换为 JavaScript 日期对象

javascript内置对象(数组字符串日期)

Javascript:正确地将日期字符串转换为日期对象