一、数学对象
数学对象提供基本的数学函数和常数
数学对象不需要使用new运算符
属性 | 说明 |
LN10 | 返回10的自然对数 |
LN2 | 返回2的自然对数 |
LOG10E | 返回以10为底的e的对数 |
LOG2E | 返回以2为底的e的对数 |
PI | 返回圆周率,约3.141592653... |
SQRT1_2 | 返回0.5的平方根 |
SQRT2 | 返回0.2的平方根 |
E | 返回自然常量E,约2.718 |
方法 | 说明 |
abs(x) | 返回x的绝对值 |
cos(x)/acos(x) | 返回x的余弦/反余弦值 |
sin(x)/asin(x) | 返回x的正弦/反正弦值 |
atan(x) | 返回x的反正切值 |
ceil(x)/floor(x) | 对数进行上/下舍入 |
exp(x) | 返回e的指数 |
log(x) | 返回数的自然对数(底为e) |
max(x,y)/min(x,y) | 返回x和y中的最大/最小值 |
pow(x,y) | 返回x的y次幂 |
random() | 返回0-1之间的随机数。(0,1) |
round(x) | 把数四舍五入 |
sqrt(x) | 返回数的平方根 |
示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
console.log(Math.max(1,20,3,50))//最大值输出结果为:50
console.log(Math.pow(2,3))//2的3次方
console.log(Math.random())
//随机0-10以内的任意数
//[0,1]*10 [0,11]
console.log(Math.floor(12.6))//小于这个数的最大整数
console.log(Math.ceil(12.3))//大于这个数的最小整数
console.log(Math.round(12.6))//把数进行四舍五入
console.log(Math.floor(Math.random()*11))
</script>
</body>
</html>
动态时钟实现代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<!-- innerHTML:我们可以通过 document.getElementById(‘aa’).innerHTML
来获取id为aa的对象的内嵌内容;
也可以对某对象插入内容,如 document.getElementById(‘abc’).innerHTML=’
这是被插入的内容’;这样就能向id为abc的对象插入内容。-->
<span id="time"></span>
<script type="text/javascript">
setInterval(function() {
var date = new Date()
console.log(date)
var year = date.getFullYear() //获取年份
var month = date.getMonth() + 1 //0-11 获取月份
console.log(year, month)
var day = date.getDate() //获取日
console.log(day)
var hours = date.getHours() //获取小时
var minutes = date.getMinutes() //获取的是分钟
var seconds = date.getSeconds() //获取的是秒数
month = month > 9 ? month : "0" + month
day = day > 9 ? day : "0" + day
hours = hours > 9 ? hours : "0" + hours
minutes = minutes > 9 ? minutes : "0" + minutes
seconds = seconds > 9 ? seconds : "0" + seconds
var result = year + "年" + month + "月" + day + "日" + hours + ":" + minutes + ":" + seconds
document.getElementById("time").innerHTML=result
}, 1000)
</script>
</body>
</html>
二、数组对象
数组对象是一系列有序的值的集合,可以存放任何类型的数据,建议只存放一种类型数据
方法 | 说明 |
concat() | 将两个数组连接成新数组 |
join() | 将数组中的所有元素连接成字符串 |
pop() | 移除数组的最后一个元素 |
push() | 在数组最后添加一个元素 |
unshift() | 在数组开始添加一个元素 |
reverse() | 反转数组元素,倒叙 |
shift() | 移除数组的第一个元素 |
silce() | 获取子数组 |
splice() | 插入,删除或替换数组中的元素 |
sort() | 对数组排序 |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
//数组对象
var arr_1=new Array()
arr_1[0]="张三"
arr_1[1]="李四"
console.log(arr_1.length)
var arr_2=new Array(5)
arr_2[5]="移动5班"
console.log(arr_2.length)
var arr_3=["张三","李四","王五","赵六"]
for(var i=0;i<arr_3.length;i++){
console.log(arr_3[i])
}
for(var i in arr_3){
console.log(arr_3[i])
}
var str=""
for(var i=0;i<arr_3.length;i++){
str+=arr_3[i]+"*"
}
console.log(str)
var result=arr_3.join("*")//使用*号分隔符进行分割
console.log(result)
arr_3.push("张里")//在数组最后添加一个元素
for(var i in arr_3){
console.log(arr_3[i])
}
console.log("------------------------------")
var arr_4=["张三","李四","王五","赵六"]
arr_4.push("张里")//在数组最后添加一个元素
arr_4.unshift("张硕")
arr_4.pop()
arr_4.shift()
for(var i in arr_4){
console.log(arr_4[i])
}
var result_1=arr_4.splice(1,3)
console.log(result_1)
var result_2=arr_4.reverse()
console.log(result_2)
</script>
</body>
</html>
JavaScript不支持多维数组,但可以使用,例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
//数组对象
var citys=new Array()
//citys["河南"]=["郑州","开封","焦作","商丘"]
citys[0]=["郑州","开封","焦作","商丘"]
//citys[0][0]
citys[1]=["武汉","天门","黄石","赤壁"]
for(var i=0;i<citys.length;i++){
for(var j=0;j<citys[i].length;j++){
console.log(citys[i] [j])
}
}
</script>
</body>
</html>
三、正则表达式
正则表达式 | |
中文字符 | /^[\u4e00-\u9fa5]{2,4}$/ |
邮箱 | /^[0-9a-zA-Z_]+@[0-9a-zA-Z]+[\.]{1}[0-9a-zA-Z_]+$/ |
电话 | /^(\d{3,4}-)?\d{7,8}$/ |
月份 | /^((0?[1,9])|1[0-2])$/ |
天数 | /^((0?[1-9])|(1|2)[0-9])|30|31)$/ |
正则表达式主要用于表单验证,如手机号、邮箱、身份证等
匹配符 | 说明 |
\b | 匹配单词边界 |
\d | 匹配单个数字字符 |
\f | 匹配单个换页符 |
\n | 匹配单个换行符 |
\r | 匹配单个回车符 |
\s | 匹配任何空白符 |
\t | 匹配单个制表符 |
\v | 匹配单个垂直制表 |
\w | 匹配包含下划线的 |
^、$ | 匹配字符串的开始和结束位置 |
* | 匹配前面的子表达式0-多次 |
+ | 匹配前面的子表达式1-多次 |
? | 匹配前面的子表达式0-1次 |
{n,m} | 匹配前面的子表达式n-m次 |
. | 匹配除 "\n" 之外的任意字符 |
(x|y) | 匹配x或y |
[] | 匹配所包含的任意一个字符 |
[^] | 匹配非包含的任意一个字符 |
[-] | 匹配指定范围内的任意一个字符 |
一.在使用正则表达式之前你,首先要创建正则表达式对象,JavaScript提供了两种构建方法:
1.使用正则标识字符串:var reg=/pattern/[flags]
2.使用内置正则表达式对象:var reg=new RegExp("pattern",["flags"])
pattern表示要使用的正则表达式模式,也就是由的特殊字符或普通字符所组成的表达式。
flags标志位,课选项,有g(全文查找),i(忽略大小写),m(多行查找)三种
二.方法
compile()方法:把正则表达式编译为内部格式,从而执行更快 ,使用新正则去替换旧正则,主要用于提升比较复杂和耗时的处理过程的性能,一般情况下很少用。
exec()方法:用正则表达式在字符串中查找,并返回包含结果的一个数组。不仅用于判断给定的字符串是否匹配,而且会返回匹配结果的详细信息
test()方法:返回一个bool值:它指出被查找的字符串是否匹配给定的模式。使用频繁,主要用于匹配测试。匹配成功返回true,否则返回false。
test()方法的使用:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<input type="text" name="pwd" id="pwd" value="" />
<input type="button" name="checkpwd" id="checkpwd" value="验证" />
<script type="text/javascript">
//正则表达式
//密码长度至少为6位,且只能是数字、字母、下划线
document.getElementById("checkpwd").onclick=function(){
//实现密码的验证
//编写正则表达式
var reg=/^[0-9a-zA-Z_]{6,}$/
var pwd=document.getElementById("pwd").value
var isPwd=reg.test(pwd)
if(isPwd){
alert("密码格式正确")
}else{
alert("密码格式不正确")
}
}
</script>
</body>
</html>