1、for循环
语法:
for(表达式1;表达式2;表达式3){
循环操作
}
表达式1:循环条件初始化
表达式2:循环条件判断
表达式3:更新循环条件
1、表达式1,计算循环条件的值
2、表达式2,判断条件是true 还是 false
3、如果为true,则执行循环操作,否则退出循环
4、执行完循环操作后,再执行表达式3
2、函数
语法:
function 函数名(参数列表){
函数体
return 返回值;
}
参数列表:
由 , 隔开的参数名称列表
调用时,按照位置 和 类型进行传递
返回值:
返回给函数调用者的一个值
如果没有返回值的话,默认返回 undefined
匿名函数
没有名称的函数,专门为某一功能而存在
window.onload = function(){
}
3、数组
1、创建数组
var arr = []
var arr = [1,2,3,4,5];
var arr = new Array();
var arr = new Array(1,2,3,4,5);
2、数组的使用
使用 下标 来操作数组元素
arr[下标] = 值;
console.log(arr[下标]);
3、length 属性
获取数组的长度
使用场合:
1、循环遍历时使用
for(var i=0;i<arr.length;i++){
}
2、找到数组中的最新位置
arr[arr.length] = 值;
3、设置 length值为 0,来清空数组
arr.length=0;
================================================
1、数组
1、关联数组
1、什么是关联数组
JS中的数组分为索引数组 和 关联数组
索引数组:数字做下标的数组都是索引数组
关联数组:由字符串做下标的数组都是关联数组
2、声明方式
var names = [];
names["xiyouji"] = "古代神话故事";
names["hongloumeng"] = "古代言情小说";
names[0] = "西游记";
names[1] = "红楼梦";
注意:length 属性只能统计出索引数组的长度
3、使用 for ... in 遍历数组中的每个元素
for(var i in 数组){
i : 表示数组中所有的数字索引和字符串索引
数组[i];
}
2、数组的常用API
1、toString()
作用:返回数组转换成字符串后的形式
2、concat()
作用:拼接多个数组到一起,并返回拼接后的结果
语法:arr.concat(arr2,arr3,...);
注意:该函数不会改变现有数组,会返回一个拼接后的副本
3、join(seperator)
作用:返回一个由指定字符串连接的数组元素的字符串
4、reverse()
作用:对现有数组进行反转操作
语法:arr.reverse()
注意:该函数会改变现有数组的结构
练习:
1、随意从弹框中输入一个数字
2、将该数字转换成二进制数,并打印输出
while(num != 0){
r = num % 2;
num = parseInt(num / 2);
arr[arr.length]=r;
}
5、sort()
1、作用
对现有的数组进行排序
2、注意
1、sort()会直接改变现有数组的结构
2、默认按 字符的 Unicode码 升序排序
3、允许通过自定义的排序规则(函数)来指定数字的排序方式
1、声明排序函数
/*指定升序的排序函数*/
function sortAsc(a,b){
return a-b;
}
1、声明排序函数sortAsc(a,b)
2、将 sortAsc 函数,指定给 数组的 sort() 作为参数
3、数组会自动的将相邻的两个数字传递到两个参数的位置处
4、看排序函数的返回值,如果返回值是>0的话,则交换两个数字的位置,否则不变
2、使用匿名函数
6、进出栈操作
栈式操作:提供了快速操作数组头部和尾部元素的方法
1、push()
入栈,向数组的尾部追加新元素,并返回新数组的长度
类似于 arr[arr.length]="";
2、pop()
出栈,删除并返回数组尾部的元素
3、unshift()
向数组的头部添加新元素并返回新数组长度
4、shift()
删除并返回数组的头部元素(第一个元素)
3、二维数组
1、什么是二维数组
在一个数组中的每个元素又是一个数组
2、语法
var names = [
["孙悟空","猪八戒"],
["宋江","李逵"],
["刘备","关羽"],
["刘姥姥","贾宝玉"]
];
var n=names[1][1]; //获取李逵
2、字符串 - String
1、声明字符串
var str1 = "xxx";
var str2 = String("xxx");
var str3 = new String("xxx");
2、length
获取当前字符串中字符数
3、String - API
1、大小写转换函数
1、toUpperCase()
返回字符串的大写形式
2、toLowerCase()
返回字符串的小写形式
2、获取指定位置的字符 或 Unicode码
1、charAt(index)
返回指定下标位置处的字符
var msg = "Hello World";
var r = msg.charAt(3);
console.log(r); // l
2、charCodeAt(index)
返回指定下标位置处的字符的Unicode码(十进 制)
var msg = "Hello World";
var r = msg.charCodeAt(3);
console.log(r);
3、检索字符串
1、作用
查找子字符串在指定字符串中的下标位置
2、函数
1、indexOf(value,fromIndex)
value:要查找的字符串
fromIndex:从哪个位置处开始查找,如果省略的话则从第一个字符的位置处开始查找
返回值:返回第一次出现value的下标,如果没查询到value的话,则返回-1
2、lastIndexOf(value,fromIndex)
作用:查找value最后一次出现的下标
注意:还函数的查找方式是从后向前
练习:
判断一个字符串是否满足邮箱的格式
zhangsanfeng@163.com
sanfeng.zhang@163.com
1、字符串中必须有 @
2、字符串中必须有 .
3、最后一个 . 的位置必须在 @ 之后
4、截取字符串
语法:substring(start,end)
作用:返回从 start下标出开始 到 end-1下标位置处的子字符串。如果省略end的话,则截取到字符串的末尾
练习:
1、从邮箱字符串中提取用户名
zhangsanfeng@163.com
2、从邮箱字符串中提取服务商名称
zhangsanfeng@163.com
3、从指定身份证号中提取生日期
220102196001023311
生日:1960年01月02日
5、分割字符串
语法:split(seperator)
作用:使用 seperator 对字符串进行拆分,并返回拆分后的数组
ex:
var msg = "张三丰|28|男";
var arr = msg.split("|");
arr[0] : 张三丰
arr[1] : 28
arr[2] : 男
6、模式匹配
1、作用
配合着正则表达式来完成字符串的查找,替换
2、正则表达式
语法:
/正则格式/修饰符
修饰符:
i : 忽略大小写(Ignorecase)
g : 全局匹配(Global)
m : 允许多行匹配(Multiple)
3、函数
1、replace(substr/regexp,replacement)
替换
2、match(substr/regexp)
按照 substr/regexp 进行匹配,并将满足格式的字符串进行返回(数组)
3、search(substr/regexp)
返回满足substr/regexp格式的子字符串第一次出现的下标。没找到,则返回-1
注意:search 函数不支持全局匹配,将自动忽略 g
练习:
Microsoft is a big company,microsoft's color is red and has MICROSOFT logo like microsoft
1、将所有的 microsoft(大小写)替换成 "微软"
2、输出 共替换了多少处
3、Date对象
1、创建Date对象
1、获取当前系统的日期
var now = new Date();
2、初始化自定义日期时间对象
var date = new Date("2018/02/08 17:48:53");
2、函数
1、返回当前时间日期的毫秒数
date.getTime()
返回自1970.1.1 00:00:00 到 date 时间为止所经过的毫秒数
2、读取时间分量函数
1、getFullYear()
返回当前时间对象的年份
2、getYear()
返回自1900年以来,到当前日期对象所经过的年数
3、getMonth()
返回0-11来表示1-12月
4、getDate()
返回当前时间对象的日
5、getDay()
返回 星期 ?
0-6 表示 星期日 - 星期6
6、获取时间
getHours() : 返回小时
getMinutes() : 返回分
getSeconds() : 返回秒
getMilliseconds() : 返回毫秒
7、转换为字符串
1、toString()
2、toLocaleTimeString()
返回当前的时间字符串(时分秒)
3、toLocaleDateString()
返回当前的日期字符串(年月日)
4、toLocaleString()
返回当前的日期时间字符串
作业:
1、获取当前系统的日期时间
2、按照以下格式进行输出
xxxx年xx月xx日 xx时xx分xx秒 星期四
var codes = [0,1,2,3,5,6,7,8,9,'A','B','a','b'];
parseInt(Math.random()*codes.length);
1、声明一串验证码(4个字符(0-9,A-Z,a-z))
2、提示用户输入验证码
3、忽略大小写的比较,用户输入的码与生成的码是否一致,并给出提示
日一二三四五六
123
45678910