【前端】JavaScript入门及实战81-85

发布于:2024-07-26 ⋅ 阅读:(168) ⋅ 点赞:(0)

81 Date

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset = "utf-8">
<script type="text/javascript">
	/*
		Date
		在JS中使用Date对象来表示一个时间
	*/
	
	// 创建一个Date对象
	// 如果直接使用构造函数创建一个Date对象,则会封装为当前代码执行的时间
	var d = new Date();
	console.log(d); // 星期 月份 日期 年份 时间 东八区
	
	// 创建一个指定的时间对象
	// 需要在构造函数中传递一个表示时间的字符串作为参数
	// 日期的格式 月/日/年 时:分:秒
	var d2 = new Date("12/03/2016 11:10:30");
	console.log(d2);
	
	/*
		getDate()
		获取当前日期对象是几日
	*/
	var date = d.getDate();
	
	/*
		getDay()
		获取当前日期对象是周几
		会返回一个0-6的值,0表示周日
	*/
	var day = d.getDay();
	
	/*
		getMonth()
		获取当前时间对象的月份
		会返回一个0-11的值,0表示1月, ..., 11表示12月
	*/	
	var month = d.getMonth();
	
	/*
		getFullYear()
		获取当前时间对象的年份
		四位数字
	*/		
	var year = d.getFullYear();
	
	/*
		getTime()
		获取当前时间对象的时间戳
		时间戳指的是,从格林威治标准时间的1970年1月1日,0时0分0秒,到当前日期所花费的毫秒数(1秒=1000毫秒)
		
		计算机底层在保存时间时使用都是时间戳
	*/		
	var time = d.getTime();
	
	console.log(time / 1000 / 60 / 60 / 24 / 365); // 年
	
	var d3 = new Date("1/1/1970 0:0:0"); // 中国时间
	time = d3.getTime();
	console.log(time); // -28800000,八小时
	
	//可以利用时间戳来测试代码的执行性能,执行前后各获取一次时间戳,然后相减
	//获取当前的时间戳
	time = Date.now(); // 该行代码执行时刻的时间戳
	
	var start = Date.now();
	for(var i = 0; i < 100; i++){
		console.log(i);
	}
	var end = Date.now();
	console.log(end - start);
</script>
<style>
</style>
</head>
<body>
</body>
</html>

82 Math

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset = "utf-8">
<script type="text/javascript">
	/*
		Math
			Math和其他的对象不同,他不是一个构造函数,
			它属于一个工具类,不用创建对象,里面封装了数学运算相关的属性和方法
			
			比如
				Math.PI:圆周率				
				
	*/
	
	console.log(Math.PI); // 3.141592653589793
	
	// abs():用来计算一个数的绝对值
	console.log(Math.abs(-1)); // 1
	
	// ceil():向上取整,小数位只要有值就自动进1
	console.log(Math.ceil(1.5)); // 2
	
	// floor():向下取整,小数部分会被舍掉
	console.log(Math.floor(1.5)); // 1
	
	// round():四舍五入
	console.log(Math.round(1.4)); // 1
	
	// random():生成一个0-1之间的随机数
	console.log(Math.random()); 
	// 生成一个0-10的随机数
	console.log(Math.random() * 10);
	// 生成一个0-x之间的随机数
	console.log(Math.random() * x);
	// 0-10的整数
	console.log(Math.round(Math.random() * 10));
	// 1-10
	console.log(Math.round(Math.random() * 9) + 1);
	// 生成一个x-y之间的随机数
	console.log(Math.round(Math.random() * (y - x)) + x);
	
	/*
		max()可以获取多个数中的最大值
		min()可以获取多个数中的最小值
	*/
	var max = Math.max(10, 45, 30, 100); // 100
	var min = Math.min(10, 45, 30, 100); // 10
	
	// pow(x, y):返回x的y次幂
	console.log(Math.pow(12, 3));
	// sqrt():用于对一个数开方运算
	console.log(Math.sqrt(4)); // 2
</script>
<style>
</style>
</head>
<body>
</body>
</html>

83 包装类

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset = "utf-8">
<script type="text/javascript">
	/*
		基本数据类型:String Number Boolean Null Undefined
		引用数据类型:Object		
		JS中为我们提供了三个包装类,通过这三个包装类可以将基本数据类型转换为对象
			String():可以将基本数据类型字符串转换为String对象
			Number():可以将基本数据类型的数字转换为Number对象
			Boolean():可以将基本数据类型的布尔值转换为Boolean对象
			
		注意:我们在实际应用中不会使用基本数据类型的对象,如果使用基本数据类型的对象,再做一些比较时,可能会带来一些不可预料的结果
		
	*/
	
	var a = 123;
	var num = new Number(3);
	var num2 = new Number(3);
	var str = new String("hello");
	var bool = new Boolean(true);
	var bool2 = true;
	
	//向num中添加一个属性
	num.hello = "abcdefg";
	
	var a = 3;
	a.hello = "你好"; // a.hello -> undefined
	
	console.log(num == num2); // false
	console.log(bool == bool2); // true
	
	var b = new Boolean(false);
	// 对象转为布尔值都是true
	if(b){
		alert("运行了"); // 运行了
	}
	
	/*
		方法和属性只能添加给对象,不能添加给基本数据类型
		当我们对一些基本数据类型的值去调用属性和方法时,浏览器会临时使用包装类将其转换为对象,然后再调用对象的属性和方法
		调用完以后,再将其转换为基本数据类型
	*/
	var s = 123;
	s = s.toString();
	
	s.hello = "你好"; // 临时的,用完就销毁
	console.log(s.hello); // undefined
</script>
<style>
</style>
</head>
<body>
</body>
</html>

84 字符串的相关方法

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset = "utf-8">
<script type="text/javascript">

	// 创建一个字符串
	var str = "Hello";

	/*
		在底层,字符串是以字符数组的形式保存的:["H", "e", "l", "l", "o"]
		字符串的绝大部分方法都不会对原字符串产生影响		
	*/
	
	// length属性:用来获取字符串长度
	a = str.length;
	b = str[0];
	
	// charAt():返回字符串中指定位置的字符,根据索引获取指定字符
	res = str.charAt(0); // "H"
	
	// charCodeAt():获取指定位置字符的Unicode编码
	res = str.charCodeAt(0); // 72,"H"的Unicode编码
	
	// String.fromCharCode():可以根据字符编码去获取字符
	res = String.fromCharCode(72); // "H"
	
	// concat():连接两个或多个字符串,作用和“+”一样
	res = str.concat("你好", "再见");
	
	/*
		indexOf():检索一个字符串是否含有指定内容,如果字符串中含有该内容,则会返回其第一次出现的索引,如果没有找到指定的内容,则返回-1
				   可以指定第二个参数,指定开始查找的位置
	*/
	res = str.indexOf("h"); // 0,索引为0
	res = str.indexOf("p"); // -1
	str = "hellooh"
	res = str.indexOf("h", 1); // 6
	
	/*
		lastIndexOf():该方法的用法与indexOf()一样,不同的是indexOf()从前往后找,lastIndexOf()从后往前找
					   也可以指定开始查找的位置
	*/
	res = str.lastIndexOf("h"); // 6
	
	/*
		slice():可以从字符串中截取指定的内容
				 不会影响原字符串,而是将截取到的内容返回
				 参数:1. 开始位置的索引(包括开始位置)
					   2. 结束位置的索引(不包括结束位置)
					   如果省略第二个参数,则会截取到后边所有的,
					   也可以传递一个负数作为参数,负数从后面计算
	*/		
	str = "abcdefghijk";
	res = str.slice(1, 4);
	res = str.slice(1);
	res = str.slice(1, -1);
	
	
	/*
		substring():可以用来截取一个字符串,可与slice()类似
					 参数:1. 开始截取位置的索引(包括开始位置)
						   2. 结束位置的索引(不包括结束位置)
						   
						   不同的是,这个方法不能接收负值,如果传递了一个负值,默认为0,
									 而且自动调整参数的位置,如果第二个参数小于第一个,则自动交换位置
	*/
	res = str.substring(1, 2);
	res = str.substring(1, -1);
	
	/*
		substr():用来截取字符串
				  参数:1. 截取开始位置的索引
						2. 截取的长度
	*/
	str = "abcdefg";
	res = str.substr(1, 2);
	
	/*
		split():可以将一个字符串拆分为一个数组
				 参数:需要一个字符串作为参数,将会根据该字符串去拆分数组
	*/
	str = "abc, bcd, efg, hij";
	res = str.split(","); // 数组
	
	/*
		如果传递一个空串作为参数,则会将每个字符都拆分为数组中的一个元素
	*/
	res = str.split("");
	
	/*
		toUpperCase():将一个字符串转换为大写并返回
		toLowerCase():将一个字符串转换为小写并返回
	*/
	str = "abcdg";
	res = str.toUpperCase();
	res = str.toLowerCase();		
</script>
<style>
</style>
</head>
<body>
</body>
</html>

85 正则表达式

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset = "utf-8">
<script type="text/javascript">

	/*
		正则表达式:
					admin
					admin@atguigu.com
					admin@.com, adminatguigu.com // 邮件错误格式
					
					邮件的规则:1. 前面可以是xxxx
								2. 跟着一个@
								3. 后面可以是xxxx
								4. .com获取其他的
								
					正则表达式用于定义一些字符串的规则,计算机可以根据正则表达式,来检查一个字符串是否符合规则,
					或者将字符串中符合规则的内容提取出来
		
	*/
	
	// 创建正则表达式的对象
	/*
		语法:var 变量 = new RegExp("正则表达式", "匹配模式");
			  使用typeof检查正则对象,返回object
			  
			  var reg = new RegExp("a");
			  这个正则表达式可以检查一个字符串中是否含有"a",严格区分大小写
			  
			  在构造函数中可以传递一个匹配模式作为第二个参数
			  可以是:i:忽略大小写
					  g: 全局匹配模式
			  
	*/
	var reg = new RegExp("a"); // "/a/", object
	var str = "a";
	
	/*
		正则表达式的方法:test():使用这个方法可以用来检查一个字符串是否符合正则表达式的规则,
								  如果符合则返回true,否则返回false
	*/
	var res = reg.test(str); // true
	var res = reg.test("abc"); // true
	var res = reg.test("bc"); // false
	var res = reg.test("Abc"); // false
	
	var reg = new RegExp("a", "i"); // "a" / "A"
</script>
<style>
</style>
</head>
<body>
</body>
</html>

网站公告

今日签到

点亮在社区的每一天
去签到