数组:
常用的API:
toString()
将数组转换为字符串 默认是将数组的元素
使用逗号隔开 链接成字符串在进行返回
join(seperator)
将数组的元素使用seperator字符串作为分隔符
链接成字符串再进行返回
reverse()
将数组进行反转 该函数会改变现有数组的结构 不需要接受返回值
sort()
对数组的元素进行排序 默认按照Unicode码进行排序 对数字不准确
会改变原有数组的内容
特点:
允许自定义的排序规则(排序函数)用来指定数组的排序方式
语法:
arr.sort(排序函数);
排序函数:
升序的排序函数:
function sortAsc(a, b){
return a - b;
}
arr.sort(sortAsc);
匿名函数实现:
arr.sort(function(a, b){
return a - b;
})
降序排序:
排序后 reverse()
或
return b - a;
原理:(冒泡排序)
function sortAsc(a, b){
通过返回值表示 a和b 的大小关系
返回值:
正数:表示 a > b
交换两个数字的位置
零:表示 a = b
数字不动
负数:表示 a < b
数字不动
}
调用时只需将函数名传参给sort函数 内部自动实现调用
每次去两个元素的值进行比较 决定元素的位置是否交换
进出栈操作:
push()
入栈/压栈 向数组的尾部添加新的元素 并返回新数组的长度
等同于 :arr[arr.length] = "";
pop()
出栈/弹栈 删除数组中的最后一个内容 并返回删除的内容
unshift()
向数组头部添加一个新的元素并返回数组的长度
shift()
删除数组头部元素并返回删除的元素
二维数组:
声明二维数组:
var names = [
[1, 2, 3, 4, 5, 6, 7]
["a", "b", "c", "d", "f"]
]
获取 "b":
var sub_name = names[1];
var name = sub_name[1];
或
var name = names[1][1];
字符串-string:
声明字符串:
var str = "字符串";
var str = String("字符串");
var str = new String("字符串");
length 属性:
返回字符串的长度
String的API方法:
1.大小写转换函数:
toUpperCase()
返回完全大写
toLowerCase()
返回完全小写
2.去掉字符串两端的空格:
trim()
该方法不会改变现有字符串 是将去掉字符串后的内容进行返回
3.获取指定位置的字符:
charAt(index)
获取指定位置的字符
charCodeAt()
获取指定字符的Unicode码:
4.检索字符串:
indexOf(value, fromIndex)
value:
要查找的子字符串
fromIndex:
开始查找的位置 省略,默认重头开始
返回值:
返回字符串第一次出现字符的下标 如果没有查询 返回-1
lastIndexOf(value, fromIndex)
查找value最后一次出现的位置 查找方式是从后往前找第一次出现的
5.截取子字符串:
substring(start, end)
返回从start到end-1之间的字符串 如果省略则截取整个字符串
6.分隔字符串:
split(seperator)
将具备特殊链接的字符串拆成字符串数组
7.
模式匹配:
作用:
配合子字符串 和 正则表达式完成 字符串的查找、替换
正则:
语法:
/正则表达式/修饰符
修饰符:
i: ignorecase(忽略大小写)
g: global(全局匹配)
m: multiple(允许多行匹配)
函数:
relplace(substr/regexp, rep, acement)
字符串中 将substr或满足regexp格式的字符串替换成replacement
match(substr/regexp)
按照指定的字符串或正则表达式进行比配
并返回满足格式的字符串的个数
RegExp对象:
创建RegExp对象:
var reg = /正则表达式/装饰符;
var reg = new RegExp("匹配模式", "装饰符");
装饰符可以省略
RegExxp常用方法:
test(string)
string:要验证的字符串
如果reg能够匹配到string的话就返回True 否则返回False
Math对象:
属性:
Math.PI
Math.E
方法:
三角函数:
Math.sin()
Math.cos()
Math.tan()
计算函数:
Math.sqrt()
开平方
Math.log()
求对数
Math.pow(x, y)
求x的y次方
数值函数:
Math.abs(x)
绝对值
Math.max(a, b, c)求最大
Math.min(a, b, c)求最小
Math.random()
随机数(0~1)
Math.round(x)
将x四舍五入
Date对象:
获取客户端日期时间
创建Date对象:
获取当前日期对象
var date = new Date();
初始化自定义时间对象:
var date = new Date("2018-9-12 12:00:00");
方法:
读取或设置当前的毫秒数
getTime()
返回自1970年1月1日 到当前时间的毫秒数
setTime()
根据毫秒数计算日期时间
读取时间分量:
getFulYear()
获取当前时间对象的年份
getYear()
返回1900年以来到当前进过多少年
getMonth()
返回0~11的数字来表示1~12月 手动+1
getDate()
返回date对象对应的日
getDay()
返回0~6 表示星期几
获取时间:
getHours()
获取小时
getMinutes()
获取分钟
getSeconds()
获取秒
getMilliseconds()
获取毫秒
将日期时间转换为字符串
toString()
toLocaleString()
将日期对象转换为本地时间字符串
toLocaleTimeString()
转换为本地时间字符串(时分秒)
toLocaleTDateString()
转换为本地时间字符串(年月日)
1.随意从弹框中录入一个数字
2.将该数字转换为二进制,并输出
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<script type="text/javascript">
var num = Number(prompt());
var s = [];
while (true){
var x = num % 2;
s[s.length] = x;
num = num / 2 | 0;
if (num == 0){
break;
}
}
s.reverse()
console.log(num, "转换为二进制为: " + s.join(" "))
</script>
</head>
<body>
</body>
</html>
3.从身份证号中提取生日
220101199912056621
生日:1999年12月05日
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<script type="text/javascript">
function getBrith(){
var brith = prompt();
var birthday = brith.substring(6, 14);
var year = birthday.substring(0, 4);
var manth = birthday.substring(4, 6);
var day = birthday.substring(6, 8);
alert(year + "年" + manth + "月" + day + "日");
}
</script>
</head>
<body>
<button onclick="getBrith()">生日</button>
</body>
</html>
var str = "1001_5&1002_4&1053_1";
将字符串解析为如下格式
商品ID:1001
购买数量:5
商品ID:1002
购买数量:4
商品ID:1053
购买数量:1
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<script type="text/javascript">
var str = "1001_5&1002_3&1003_6";
var commodity = str.split("&");
for (var i = 0; i < commodity.length; i++){
var list = commodity[i].split("_");
console.log("商品ID:", list[0]);
console.log("商品数量:", list[1]);
}
</script>
</head>
<body>
</body>
</html>
模拟验证码的生成和验证
1.创建一个数组,初始化若干数据(英文大小写,数字)
2.生成一个四位的随机验证码 验证码需要从数组中获取 Math.random() : 生成一个0-1(取不到)之间的随机小数
3.将随机生成的验证码字符串通过prompt()展示给用户
4.比较用户输入的字符与生成的验证码是否一致并给出提示 (忽略大小写)
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<script type="text/javascript">
function generalCode(len){
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, "A", "B", "c", "d", "W", "F", "S", "x", "Z", "#", "$", "!", "*", "@", "&", "k", "g", "j"];
var Code = "";
for (var i = 0; i < len; i++){
var str = arr[Math.random() * arr.length | 0]
Code += str;
}
return Code;
}
function validateCode(){
var Code = generalCode(6);
var input = prompt("验证码为: " + Code)
if (input.toLowerCase() == Code.toLowerCase()){
alert("输入正确")
} else {
alert("输入错误")
}
}
</script>
</head>
<body>
<button onclick="validateCode()">验证码</button>
</body>
</html>