本帖最后由 武汉分校-小舞 于 2019-3-28 15:33 编辑
JavaScript 提供多个内建对象,比如 String、Date、Array 等等。 对象只是带
有属性和方法的特殊数据类型。 学习 JavaScript 对象就像学习 Java 的 API 一样。
Array 数组对象
Array 表示数组,用来存储多个元素的容器。和 Java 数组不同的是 JavaScript
数组长度是可变的,而且类型也是可变的
创建数组对象
//创建一个数组,元素为 1,2,3,4,5
var arr=new Array(1,2,3,4,5);
//创建一个数组,数组长度为 5
var arr=new Array(5;
//创建一个数组,元素为 1,2,3,4,5
var arr = [1,2,3,4,5];
数组元素遍历
//创建输出,并初始化元素
var arr = [1,2,3,4,5;
//arr.length 获取数组的长度
for(var i=0;i<arr.length;i++){
document.write(arr+" ");
}
调用数组的方法
join(参数):将数组中的元素按照指定的分隔符拼接为字符串
push() 向数组的末尾添加一个或更多元素,并返回新的长度。
var arr = [1,2,3,4,5];
//将数组中的元素按照","分隔拼接成一个字符串
var str=arr.join(",");
document.write(str);
//向数组的末尾添加 6,7,8 三个元素
var length=arr.push(6,7,8);
for(var i=0;i<length;i++){
document.write(arr+" ");
}
alert(length);
Date 对象
Date 对象用于处理日期和时间。
创建 Date 对象
//本地系统时间
var d = new Date();
//以距离 1970 年 1 月 1 日的毫秒值,创建 Date 对象
var d = new Date(1000);
//以年、月、日、时、分、秒、毫秒等时间值创建 Date 对象. 参数根据需要是可选
var d = new Date(2008, 8, 8, 18, 8, 8, 100);
调用 Date 的方法
对于时间的操作有获取时间、设置时间、计算时间
//设置毫秒值
setTime() 方法以毫秒设置 Date 对象。
//设置年、月、日
setFullYear() 设置 Date 对象中的年份(四位数字)。实际上年、月、日、时、分、秒都可以设置。
setMonth() 设置 Date 对象中月份 (0 ~ 11)。
setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。
//设置时、分、秒、毫秒
setHours() 设置 Date 对象中的小时 (0 ~ 23)。
setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。
setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。
setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)。
//获取毫秒值
getTime() 返回 1970 年 1 月 1 日至今的毫秒数。
//获取年、月、日
getFullYear() 从 Date 对象以四位数字返回年份。
getMonth() 从 Date 对象返回月份 (0 ~ 11)。
getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
//获取星期中的某一天
getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。
//获取时、分、秒、毫秒
getHours() 返回 Date 对象的小时 (0 ~ 23)。
getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。
getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。
getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。
//转换字符串
toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。 如
2018/10/27
toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。 如 下午
8:58:58
toLocaleString() 据本地时间格式,把 Date 对象转换为字符串。如 2018/10/27 下午 8:59:08
方法很多就不一一演示了。做一个练习题,把常用的方法练习一下
需求 1: 计算 1992 年 8 月 26 日出生的人,现在活了多少天?
//创建日期对象
var birthdayDate=new Date();
//设置 1992 年 8 月 26 日,月份从 0 开始,第 2 个参数 7 表示 8 月
birthdayDate.setFullYear(1992,7,26);
//获取生日那天的毫秒值
var birthdayTime=birthdaydate.getTime();
//创建当前时间 Date 对象
var currentDate=new Date();
//获取当前时间的毫秒值
var currentTime=currentDate.getTime();
//计算当前时间 距离 生日那天时间 的时间间隔(单位毫秒)
var livetime=currentTime-birthday;
//把毫秒转换为天
livetime=livetime/1000/60/60/24;
alert("1992 年 8 月 26 日出生的人活了"+livetime+"天");
需求 2:显示一个时钟
<html>
<head>
<script>
function startTime(){
var d=new Date();
//获取时、分、秒
var h=d.getHours();
var m=d.getMinutes();
var s=d.getSeconds();
//检查时、分、秒是为个位数
h=checkTime(h);
m=checkTime(m);
s=checkTime(s);
//把时、分、秒拼接成字符串
var time=h+":"+m+":"+s;
document.getElementById("time").innerHTML="北京时间 "+time;
//每隔 500 毫秒,调用 startTime()方法重置一下时间
setTimeout('startTime()',500);
}
//检查时间是否为个位数,如果为个位数就在前面补 0 并返回。
function checkTime(i){
if(i<10){
i="0"+i;
}
return i;
}
</script>
</head>
<!-- onload 表示当页面加载的时候,调用 startTime()方法-->
<body onload="startTime()">
<p id='time'></p>
</body>
</html>
Math 对象
Math 提供了用于数学计算的常用方法,这些方法不需要创建对象,直接调用即
可。
abs(x) 返回 x 的绝对值。
round() 四舍五入。
random() 来返回 0 到 1 之间的随机数。 max(x,y,z,...,n) 返回 x,y,z,...,n 中的最高值
min(x,y,z,...,n) 返回 x,y,z,...,n 中的最低值。
ceil(x) 对数进行上舍入。
floor(x) 对 x 进行下舍入。
pow(x,y) 返回 x 的 y 次幂。
var num1=Math.abs(-1); //绝对值 1
var num2=Math.round(3.5); //四舍五入 4
var num3=Math.random(); //随机数 0.88788676 范围[0,1)
var num4=Math.ceil(3.2);//向上取整 4
var num5=Math.floor(3.6);// 向下取整 3
var num6=Math.max(3,4,5,1,2,6); //最大值 6
var num7=Math.min(3,4,5,1,2,6); //最小值 1
var num8=Math.pow(2,3);//2 的 3 次方 8
//随机生成 1~10 之间的整数
var num9=Math.ceil(Math.random()*10);
//随机生成 0~9 之间的整数
var num10=Math.floor(Math.random()*10);
RegExp 对象
RegExp 表示正则表达式对象。正则表达式用于对字符串模式匹配及检索替换,
是对字符串执行模式匹配的强大工具。
正则表达式本质上是一窜由特殊字符组成的字符串,用它来表示字符串的组成规
则。常用于校验用户录入的数据是否符合要求。
比如手机号码必须是 11 为数字组成,用户名要求包含字母、数字和下划线,密
码必须是 6 位字符已上等。
正则表达式的组成规则
1. 单个字符:[]
[a] 一个字符 a
[ab] 一个字符 a 或 b
[a-b] 一个小写字母
[0-9] 一个 0~9 的字符
[a-zA-Z0-9_] 一个字母、数字、或下划线
[^ab] 一个不是 a 或者 b 的字符
[^a-b] 一个不是小写字母的字符
[^0-9] 一个不是数字的字符
[^a-zA-Z0-9_] 一个不是字母、数字、或下划线的字符
\d:单个数字字符 [0-9]等价
\D:单个非数字字符 [^0-9]等价
\w:单个单词字符 [a-zA-Z0-9_]等价
\W:单个单词字符 [^a-zA-Z0-9_]等价
2. 量词符号:
?:表示出现 0 次或 1 次
*:表示出现 0 次或多次
+:出现 1 次或多次
{m,n}:表示 m<= 数量 <= n
{,n}:最多 n 次
{m,} 最少 m 次
3. 开始结束符号
* ^:开始
* $:结束
创建 RegExp 对象
//创建手机号码的正则表达式:首字母为 1 的 11 为数字字符组成
//[1] 表示第一个字符为 1
//[0~9] 表示第二个字符为 0~9 中的一个
//{10} 表示[0~9]从第二个字符开始出现 10 次。加上第一个字符一共就 11 个字符
var patt=new RegExp(^[1][0-9]{10}$");
//或者更简单的方式:
var patt=/^[1][0-9]{10}$/;
注意:第二种格式不需要写“”号 用/正则表达式内容/把正则表达式包裹起来。
正则表达式的方法
test() 检索字符串中指定的值。返回 true 或 false。
代码演示,检索手机号码是否正确
var phone="13797167788";
var patt=/^[1][0-9]{10}$/;
var flag=patt.test(phone);
alert(flag); //校验成功 true
全局对象
全局对象,这个 Global 中封装的方法不需要对象就可以直接调用。 方法名();
encodeURI():url 编码
decodeURI():url 解码
encodeURIComponent():url 编码,编码的字符更多
decodeURIComponent():url 解码
parseInt():将字符串转为数字
* 逐一判断每一个字符是否是数字,直到不是数字为止,将前边数字部分转为 number
isNaN():判断一个值是否是 NaN
* NaN 六亲不认,连自己都不认。NaN 参与的==比较全部问 false
eval():将 JavaScript 字符串,并把它作为脚本代码来执行。
URL 编码和解码
//url 编码
var rulCode=encodeURI("传智播客");
alter(rulCode);
//url 解码
var str=decodeURI(rulCode);
alter(str);传智播客 = %E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2
|
|