zoukankan      html  css  js  c++  java
  • 8、日期对象和字符串

    1、对象语法

    对象语法:
    1、new 创建对象
    【注】格式: 对象.属性
          对象.函数名
    【注】对象通过下标访问,一定要传字符串。
    2、省略new创建对象

                // var car = new Object();
    			// var car = Object();
    			/*var car = {};
    			//<1>添加属性和函数
    			//属性  
    			car.name = "凯迪拉克";
    			// car.color = "red";
    			car["color"] = "red";
    			//功能 => 函数
    			car.run = function(){
    				alert("跑的非常的块");
    			}*/
    
    			var car = {
    				name: "凯迪拉克",
    				age: 18,
    				run: function(){
    					alert("跑的块");
    				}
    			}
    
    			alert(car.name);
    
    			//删除某一个属性
    			delete car.name;
    			alert(car.name);
    
    			alert(car.color);
    
    			//调用
    			car.run();
    

    2、日期对象

    对象:JS中万事万物皆对象。
    面试官:举例。
    时间也是对象。

    1、不传参数的时候,默认获取的时当前系统时间。
    var d = new Date();

        Wed May 23 2018 09:29:01 GMT+0800 (CST)
    				北京: 东八区
    				GMT  格林尼治
    

    2、可以传参
    <1>"2018/05/22"   加引号
    <2>"2018-05-22"   加引号
    <3>2016,04,13,14,34,50
    <4>毫秒数 1秒 = 1000毫秒

    var d = new Date();
    简写后面获取年月日等不好使
    var d = Date();
    alert(d);

                /*var d = new Date("2018/05/22");
    			alert(d);*/
    
    			//Tue May 22 2018 08:00:00 GMT+0800 (CST)
    			/*var d = new Date("2018-05-22");
    			alert(d);*/
    
    			/*var d = new Date(2016,04,13,14,34,50);
    			alert(d); //Fri May 13 2016 14:34:50 GMT+0800 (CST)*/
    
    
    			//Thu Jan 01 1970 08:00:01 GMT+0800 (CST)
    			/*
    				毫秒数,用这个毫秒数从1970年1月1日0时0分0秒为参照点,进行计算,过了这个毫秒数的时候。
    
    				1970 unix诞生日 世界上第一个操作系统。
    			*/
    			/*var d = new Date(1000);
    			alert(d);*/
    
    			var d = new Date();
    			/*
    				输出日期对象的形式。
    			*/
    			alert(d.toLocaleDateString());//本地日期转成字符串输出年月日
    			alert(d.toLocaleTimeString());//本地时间转成字符串输出时分秒
    

    3、日期对象方法

    Date.parse()
       格式:
         Date.parse()
      日期字符串 "2015-08-22"
      返回值:毫秒数

    功能:将日期传进行,计算该日期到1970年的毫秒数

                var time = Date.parse("2015-08-22");
    			 alert(time);
    			var d = new Date(time);
    			alert(d);
    

    日期对象的方法
       d是日期对象
      d.getTime();
      获取该日期对象距离1970年的毫秒数
      返回值:毫秒数
      d.setTime();

    		设置距离1970年的毫秒数      
                var d = new Date();
    			// alert(d.getTime());
    			d.setTime(1000);
    			alert(d);
    

    set/getDate() 从Date对象中返回一个月中的某一天(1~31)
    getDay() 从Date对象返回一周中的某一天(0~6)
    set/getMonth() 从Date对象中返回月份(0~11)
    set/getFullYear() 从Date对象以四位数返回年份
    set/getHours() 返回Date对象的小时(0~23)
    set/getMinutes() 返回Date对象的分钟(0~59)
    set/getSeconds() 返回Date对象的秒数(0~59)
    set/getMilliseconds()返回Date对象的毫秒
    set/getTime() 返回1970年1月1日至今的毫秒数
    getTimezoneOffset() 返回本地时间与格林威治标准时间(GMT)的分钟差

    4、强调日期函数细节

    /*
    getMonth() 【注】月份 0~11月
    返回值:月份
    */

    var d = new Date();
    			// var res = d.getMonth();
    			// alert(d.getMonth()); //获取月份
    			d.setMonth(5); //重设月份
    			alert(d);
    

    /*
    getDay() 【注】星期几
    只能获取
    */

                var d = new Date("2018-05-27");
    			alert(d.getDay());
    

    5、显示当前年月日,星期,时分秒。

    1、显示当前时间

                    function showTime(){
    				//<1>获取当前时间
    				var d = new Date();
    				//<2> 2018年5月23日 星期三 10:47:50
    				var year = d.getFullYear();
    				var month = d.getMonth() + 1;
    				var date = d.getDate();
    
    				var hour = d.getHours();
    				var min = d.getMinutes();
    				var sec = d.getSeconds();
    
    				var week = d.getDay();
    				week = numToChinese(week);
    
    				//<3>进行字符串拼接
    				var str = year + "年" + month + "月" + date + "日" + " 星期" + week + " " + hour + ":" + min + ":" + sec;
    				return str;
    			}
    
    
    			//数字和中文互换  传入数字  传出中文
    			function numToChinese(num){
    				var charStr = "";
    				switch(num){
    					case 1:
    						charStr = "一";
    						break;
    					case 2:
    						charStr = "二";
    						break;
    					case 3:
    						charStr = "三";
    						break;
    					case 4:
    						charStr = "四";
    						break;
    					case 5:
    						charStr = "五";
    						break;
    					case 6:
    						charStr = "六";
    						break;
    					case 0:
    						charStr = "日";
    						break;
    					default:
    						alert("error");
    						break;
    				}
    				return charStr;
    			}
    
    
    			var res = showTime();
    			
    

    2、拓展:实现计时,记录时间(获取当前的时间,开始计时,计时过程相当于你的手机时钟)xxxx年xx月xx日 xx时xx分xx秒

        <body>
    		<div id = "div1"></div>
    	</body>
    	<script>
    		var oDiv = document.getElementById("div1");
    		oDiv.innerHTML = showTime();
    		//启动定时器
    		setInterval(function(){
    			oDiv.innerHTML = showTime();
    		}, 1000);
    	</script>
    

    6、练习

    	1、复合数据类型:数组 函数 对象 日期对象
    		
    				<1>获取当前时刻
    				<2>getDate()
    				   setDate(23 + 10)
    		
    		var d = new Date();
    		function dateAdd(n){
    			var date = d.getDate();
    			d.setDate(date + n);
    			alert(d);
    		}
    		dateAdd(10);
    	
    
    		
    	2、判断两个日期相差的天数
    				2018-05-20
    				2018-04-10
    				参照时间点: 1970
    				
    			function getNumOfDate(date1, date2){
    				//1、找一个参照的时间点
    				var time1 = date1.getTime();
    				var time2 = date2.getTime();
    				//2、两个时间点相差毫秒数
    				var time = Math.abs(time1 - time2);
    				return time / 1000 / 3600 / 24;
    			}
    
    			var d1 = new Date("2018-4-18");
    			var d2 = new Date("2018-5-24");
    
    			var num = getNumOfDate(d1, d2);
    			alert(num);
    			
    

    7、定时器

    系统提供的函数
       setInterval()
    格式:setInterval(函数名, 毫秒数);
    功能:每隔毫秒数,去执行一次函数。
    【注】用chrome运行

                var i = 0;
    			function show(){
    				document.write(i++ + "<br/>");
    			}
    			setInterval(show, 1000);
    
    拓展
    			系统提供的函数
    
    			setInterval()
    			格式:setInterval(函数名, 毫秒数);
    				 setInterval(匿名函数, 毫秒数)
    			功能:每隔毫秒数,去执行一次函数。
    

    返回值:当前定时器的ID,我们可以通过ID找到定时器。

    			clearInterval(ID);
    

    功能:通过ID找到定时器,清除定时器。

    			【注】用chrome运行
    		*/
    		var i = 0;
    		/*function show(){
    			document.write(i++ + "<br/>");
    		}*/
    
    		/*var show = function(){
    			document.write(i++ + "<br/>");
    		}*/
    
    		// setInterval(show, 1000);
    
    		//开房
    		var ID = setInterval(function(){
    			if(i == 5){
    				//退房 ID 房卡
    				clearInterval(ID);
    			}
    			document.write(i++ + "<br/>");
    		}, 1000);
    

    8、计时器

    <head>
    		<meta charset="UTF-8">
    		<title>Document</title>
    		<style>
    			#timer{
    				 150px;
    				height: 200px;
    				background-color: orange;
    				border: 1px solid black;
    				margin: 100px auto;
    				text-align: center;
    				padding: 20px
    			}
    			#timer span{
    				color: green;
    				font-size: 30px
    			}
    			#timer button{
    				 100px;
    				height: 30px;
    				background-color: black;
    				color: yellow;
    				font-size: 16px;
    				margin-top: 15px
    			}
    
    		</style>
    	</head>
    	<body>
    		<div id = "timer">
    			<span id = "hour">00</span>
    			<span>:</span>
    			<span id = "min">00</span>
    			<span>:</span>
    			<span id = "sec">00</span>
    			<br/>
    			<button id = "start">开始</button><br/>
    			<button id = "pause">暂停</button><br/>
    			<button id = "stop">停止</button>
    		</div>
    	</body>
    	<script>
    		//<1>获取所有要用到的标签。
    		var oHour = document.getElementById("hour");
    		var oMin = document.getElementById("min");
    		var oSec = document.getElementById("sec");
    
    		var oStart = document.getElementById("start");
    		var oPause = document.getElementById("pause");
    		var oStop = document.getElementById("stop");
    
    
    		var ID = null;
    		//<2>给三个按钮添加函数
    		var i = 0; //总秒数
    		oStart.onclick = function(){
    			// alert("开始");
    			// 开始计数
    			ID = setInterval(function(){
    				i++;
    				// document.title = i;
    				//将总秒数显示成 时分秒
    				oSec.innerHTML = doubleNum(i % 60);
    				oMin.innerHTML = doubleNum(parseInt(i / 60) % 60);
    				oHour.innerHTML = doubleNum(parseInt(i / 3600));
    			}, 1000);
    		}
    
    		//封装函数,传入数字,如果不足两位,前面补0
    		function doubleNum(num){
    			if(num < 10){
    				return "0" + num;
    			}else{
    				return num;
    			}
    		}
    
    		oPause.onclick = function(){
    			clearInterval(ID);
    		}
    
    		oStop.onclick = function(){
    			//<1>不管是否正在计数,先运行一起取消定时器
    			clearInterval(ID);
    			//<2>数据清零
    			i = 0;
    			oSec.innerHTML = "00";
    			oMin.innerHTML = "00";
    			oHour.innerHTML = "00";
    		}
    
    	</script>
    

    9、innerHTML

    <head>
    		<meta charset="UTF-8">
    		<title>Document</title>
    	</head>
    	<body>
    		<div id = "div1"><h2>div内容</h2></div>
    	</body>
    	<script>
    		var oDiv = document.getElementById("div1");
    
    		//1、获取访问标签间的内容,包括其中的标签,一起获取
    		// alert(oDiv.innerHTML);
    
    		//2、设置innerHTML,可以改变标签间内容的值,并且文本中含有标签,会自动解析。
    		oDiv.innerHTML = "<strong>修改的内容</strong>";
    	</script>
    

    10、字符串方法_重点

      字符串:带单引号或双引号的都叫做字符串,在JS中单引号和双引号的作用是一样的,但是不能混用。
    【注】字符串无论是object还是string使用起来都没有任何区别。

    复合数据类型:数组、函数、对象、日期对象、字符串。
    【注】复合数据类型全是对象,万事万物皆对象。都是引用。存储的都是地址。

    1、字符串可以通过new运算符声明、
    			参数:任意数据类型的数据,都会生成一个字符串。
    
                // var str = new String(true);
    			// alert(typeof str); //object
    			// alert(str + 1);              
    
    2、可以省略new创建字符串
                // var str = String(1000);
    			// alert(str + 22);
    			// alert(typeof str); //string
    
    3、通过常量赋值
                /*var str = "hello";
    			alert(typeof str);*/
    

    字符串的属性 length
    【注】字符串的长度。

                var str = "hello";
    			// alert(str.length);
    

    访问字符串中的某一个字符。
    charAt()
    格式:字符串.charAt(下标)
    返回值:对应下标的字符

    // alert(str.charAt(1));
    

    【注】字符串一旦被声明,就没有办法被修改,只读的。如果非要修改,只能讲原字符串销毁,重新赋值。

                /*str = "hxllo";
    			alert(str);*/
    

    【注】字符串可以类似于数组,通过下标访问每一个字符。

                    var str = "hello";
    			// alert(str[1]);
    			// alert(str);
    

    循环输出每一个字符

                for(var i = 0; i < str.length; i++){
    				alert(str[i]);
    			}
    

    11、字符串方法__重点

    charAt()

                /*var str = "hello";
    			alert(str.charAt(1)); //等价
    			alert(str[1]);*/
    

    charCodeAt()
    格式:字符串.charCodeAt(下标)
    功能:访问对应下标字符的ASCII码值。

                /*var str = "hello";
    			alert(str.charCodeAt(1));*/
    

    格式:String.fromCharCode()
    参数:ASCII码值,个数不定。
    返回值:该ASCII码值对应的字符所组成的字符串。

                /*var str = String.fromCharCode(97, 101, 102);
    			alert(str);*/
    

    数字验证码代码:

    <head>
    		<meta charset="UTF-8">
    		<title>Document</title>
    		<style>
    			#div1{
    				 100px;
    				height: 30px;
    				background-color: black;
    				color: white;
    				text-align: center;
    				line-height: 30px;
    				font-size: 18px
    			}
    		</style>
    		<script>
    			/*
    				charAt()
    			*/
    			/*var str = "hello";
    			alert(str.charAt(1)); //等价
    			alert(str[1]);*/
    
    
    			/*
    				charCodeAt()
    				格式:字符串.charCodeAt(下标)
    				功能:访问对应下标字符的ASCII码值。
    			*/
    			/*var str = "hello";
    			alert(str.charCodeAt(1));*/
    
    
    			/*
    				格式:String.fromCharCode()
    				参数:ASCII码值,个数不定。
    				返回值:该ASCII码值对应的字符所组成的字符串。
    			*/
    			/*var str = String.fromCharCode(97, 101, 102);
    			alert(str);*/
    
    
    			/*
    				封装函数,传入一个n,生成n位数字验证。
    			*/
    			function testCode(n){
    				var arr = []; //用来记录生成的验证码
    				for(var i = 0; i < n; i++){
    					var num = parseInt(Math.random() * 10);
    					arr.push(num);
    				}
    
    				// alert(arr);
    				return arr.join("");
    			}
    
    			/*var str = testCode(6);
    			alert(str);*/
    		</script>
    	</head>
    	<body>
    		<div id = "div1">
    		
    		</div>
    	</body>
    	<script>
    		var oDiv = document.getElementById("div1");
    		oDiv.innerHTML = testCode(6);
    	</script>
    
    带字母的验证码
    <head>
    		<meta charset="UTF-8">
    		<title>Document</title>
    		<style>
    			#div1{
    				 100px;
    				height: 30px;
    				background-color: black;
    				color: white;
    				text-align: center;
    				line-height: 30px;
    				font-size: 18px
    			}
    		</style>
    		<script>
    			/*
    				随机带字母的验证码:
    				关键点:1、先随机ASCII码值
    					   2、再通过ASCII码值转成字母
    
    				0-9 a-z A-Z
    				0-9
    				a-z 97-122    17-42 + 80
    				A-Z 65-90
    			*/
    
    			function testCode(n){
    				var arr = []; //存放随机数
    				for(var i = 0; i < n; i++){
    					var tmp = parseInt(Math.random() * 100);
    					if(tmp >= 0 && tmp <= 9){
    						arr.push(tmp);
    					}else if(tmp >= 65 && tmp <= 90){
    						//大写字母
    						var bigStr = String.fromCharCode(tmp);
    						arr.push(bigStr);
    					}else if(tmp >= 17 && tmp <= 42){
    						//小写字母
    						var smallStr = String.fromCharCode(tmp + 80);
    						arr.push(smallStr);
    					}else{
    						//如果随机到没用的数,让他多随机一次
    						i--;
    					}
    
    				}
    				return arr.join("");
    			}
    		</script>
    	</head>
    	<body>
    		<div id = "div1">
    		
    		</div>
    	</body>
    	<script>
    		var oDiv = document.getElementById("div1");
    		oDiv.innerHTML = testCode(6);
    	</script>
    

    12、字符串方法__重点

    concat()

    功能:拼接字符串,新生成一个字符串。
    格式:字符串1.concat(字符串2)

    功能:拼接

                /*var str1 = "hello";
    			var str2 = "world";
    			// var str = str1.concat(str2);
    			var str = str1 + str2;
    			alert(str);
    			alert(str1);
    			alert(str2);*/
    
    indexOf()

    格式:父字符串.indexOf(子字符串, start);
    参数:子字符串 要查找的字符串 start 开始查找的下标
    【注】如果start不写的话,默认从下标0开始去查
    功能:在父字符串中查子字符串第一次出现的位置,从start开始去查。
    返回值:如果没有查找到 -1 如果查找到了是>=0的值。

    lastIndexOf()

    格式:父字符串.lastIndexOf(子字符串);
    功能:查找最后一次出现的位置。
    返回值:如果没有查找到 -1 如果查找到了是>=0的值。

                /*var supStr = "abcabcabc";
    			var subStr = "abcd";
    			var index = supStr.indexOf(subStr);
    			alert(index);*/
    
    			/*var supStr = "abcabcabc";
    			var subStr = "abc";
    			var index = supStr.lastIndexOf(subStr);
    			alert(index);*/
    

    格式:父字符串.search(子字符串/正则表达式);
    功能:在父字符串中查找,子字符串第一次出现的位置。
    返回值:如果查找不到 -1

    【注】正则和字符串的使用方式一致。

    var supStr = "Abcabcabc";
    			// var subStr = "abc";
    			var subStr = /abc/;
    			var index = supStr.search(subStr);
    			alert(index);
    

    13、replace

    replace(oldStr, newStr);
    			格式:父字符串.replace(oldStr, newStr);      
    			功能:用newStr将oldStr替换掉,并且生成新字符串。           
    			通过字符串替换只能替换一个。    
    			通过正则表达式替换所有。    
    

    正则表达式
    超级字符串
    修饰符:g 全局匹配
    i 忽略大小写

    /*var supStr = "How Are are you!";
    			// var newStr = supStr.replace("are", "old are");
    			var newStr = supStr.replace(/are/gi, "old are");
    			alert(newStr);
    			alert(supStr);*/
    
    substring()
    			格式:字符串.substring(start, end)        
    			功能:从提取start到end的字符,生成新字符串。      
    			返回值:提取到的字符串。        
    
                /*var str = "helloworld";
    			var subStr = str.substring(2, 6);
    			alert(subStr);
    			alert(str);*/
    
    split
    			格式:字符串.split(分隔符, 数字)   
    			参数:第一个参数,代表用什么字符串去分割  
    			     第二个参数,分割完成以后数组的长度(一般情况下不传)   
    			返回值:装有分割完毕的子串的数组。    
    

    字符串 -> 数组 split
    数组 -> 字符串 join

    /*var str = "This is Tom";
    			var arr = str.split(" ");
    			alert(arr);
    			alert(arr.join("+"))*/
    

    toLowerCase()方法用于把字符串转换成小写
    toUpperCase()方法用于把字符串转换成大写

            var str = "helloWROLD";
    			alert(str.toLowerCase());
    			alert(str.toUpperCase());
    
  • 相关阅读:
    [网络技术][转]网卡的offload概念
    [网络技术][转]路由表查找过程(ip_route_input_slow)
    [linux-内核][转]内核日志及printk结构浅析
    [DPDK][转]DPDK编程开发(4)—lcore
    [技术新闻]相关网站
    [计算机、网络相关历史]unix简史
    [编辑器]sublime使用入门
    [CDN]CDN的系统架构
    [windows操作系统]windows管理
    [安卓]创建一个视图类
  • 原文地址:https://www.cnblogs.com/zhongchao666/p/9275497.html
Copyright © 2011-2022 走看看