1、循环结构
1、要素
1、循环条件
2、循环操作
2、while循环
while(条件){
循环操作
更新循环变量
}
3、do...while循环
do{
循环体
}while(条件);
特点:
先执行循环体,再判断循环条件
4、for循环
while循环的简化体
for(表达式1;表达式2;表达式3){
循环操作
}
表达式1:声明循环条件
表达式2:循环条件的判断
表达式3:更新循环条件
2、函数
语法:
function 函数名(参数列表){
函数体
}
参数列表:
声明时,是一个由,隔开的参数名称列表
调用时,按照位置和类型传递进来
返回值:
如果需要返回值的话,则通过 return 返回
匿名函数:
是一个没有名称的函数,专门为了某一特殊功能而存在
window.onload = function(){
... ...
}
3、数组
1、创建数组
var arr = [];
var arr = [1,2,3,4,5];
var arr = new Array();
var arr = new Array(5,4,3,2,1);
2、数组的使用
1、使用 下标 来取值
数组名[下标] = 值;
console.log(数组名[下标]);
2、length
获取数组的长度
使用场合:
1、循环遍历数组中的每个元素
for(var i=0;i<arr.length;i++){
}
for(var i=arr.length-1;i>=0;i--){
}
2、找到数组中,最新要插入的位置
arr[arr.length]=值;
==================================================
1、数组
1、关联数组
1、什么是数组
JS中的数组分为索引数字组 和 关联数组
索引数组:由数字做下标的数组都是索引数组
关联数组:由字符串做下标的数组都是关联数组
2、声明一个关联数组
var names = [];
names["xiyouji"] = "古代神话故事";
names["hongloumeng"] = "古代言情小说";
注意:length属性只能统计出 索引数组的长度
3、使用for ... in 遍历数组
for(var i in 数组){
i : 表示数组中所有的下标索引和字符串所有
}
2、数组的常用API
1、toString()
作用:将数组转换为字符串,并返回
2、join(seperator)
作用:返回一个,由指定连接符连接的数组元素的字符串
3、concat()
作用:拼接多个数组到一起,并返回结果
语法:arr.concat(arr2,arr3,...);
注意:该函数不会改变现有数组,会返回一个拼接后的副本
4、reverse()
作用:反转
语法:arr.reverse()
注意:该函数会改变现有数组的结构
练习:
1、随意从弹框中输入一个数字
2、将数组转换为二进制,并打印输出
5、sort()
1、作用:
对现有的数组进行排序
默认情况下,按照元素的Unicode码进行排序的
2、注意
sort()函数会直接改变现有数组的内容
3、允许通过自定的排序规则(函数)来指定数字的排序方式
语法:arr.sort(排序函数);
1、使用排序函数
//指定升序的排序函数
function sortAsc(a,b){
return a-b;
}
1、将sortAsc 指定为排序函数
2、数组会自动的将相邻的两个数组传递到参数位置处
3、如果返回值是 > 0的数字,则交换两个数字的位置,否则不变
/*指定降序的排序函数*/
function sortDesc(a,b){
return b-a;
}
为数组指定排序函数
arr.sort(sortAsc);
2、使用匿名函数
6、进出栈操作
栈式操作:提供了快速操作数组头部和尾部的元素
1、push()
入栈,向数组的尾部添加新元素,并返回新数组的长度
2、pop()
出栈,删除并返回数组尾部的元素
3、unshift()
向数组的头部添加新元素并返回新数组的长度
4、shift()
删除并返回数组头部的元素
3、二维数组
1、什么是二维数组
在一个数组中的每个元素又是一个数组
2、声明二维数组
var names = [
["孙悟空","猪八戒","沙悟净"],
["潘金莲","马蓉","李小璐"]
];
取出猪八戒:
names[0][1]
2、字符串 - String
1、声明字符串
var str1 = "字符串1";
var str2 = String("字符串2");
var str3 = new String("字符串3");
2、length
作用:返回当前字符串中字符的个数
3、常用函数 - String API
1、大小写转换函数
1、toUpperCase()
返回字符串的完全大写形式
2、toLowerCase()
返回字符串的完全小写形式
2、获取指定为的字符 或 Unicode码
1、charAt(index)
返回指定下标位置处的字符
var msg = "Hello World";
var r = msg.charAt(6);
console.log(r);//W
2、charCodeAt(index)
返回指定下表位置处的字符的Unicode码(十进制 )
var msg = "Hello World";
var r = msg.charCodeAt(0);//H的Unicode码
3、检索字符串
1、作用
查找子字符串在指定字符串中的位置
2、函数
1、indexOf(value,fromIndex)
value : 要查找的子字符串
fromIndex : 从哪个位置处开始查找,如果省略的话则从第一个字符的位置处开始查找
返回值:返回第一次出现子字符串的下标,如果没查询到子字符串的话,则返回-1
2、lastIndexOf(value,fromIndex)
作用:查找value最后一次出现的下标
注意:该函数的查找方式是从后向前找
判断一个字符串是否满足邮箱的格式:
zhangsanfeng@163.com
sanfeng.zhang@163.com
1、字符串中必须有 @ 符号
2、字符串中必须有 . 符号
3、最后一个 . 的位置 必须在 @ 之后
4、截取子字符串
函数:substring(start,end)
作用:返回从start到end-1之间的子字符串,如果省略end的话,则截取到字符串的尾部
练习:(5分钟)
1、从指定邮箱地址中提取用户名
zhangsanfeng@163.com
2、从指定邮箱地址中提取邮箱服务商名称
zhangsanfeng@163.com
3、从指定的身份证号中提取生日日期
220101196012123311
1960年12月12日
5、分割字符串
函数:split(seperator)
作用:使用seperator 对字符串进行拆分,并返回后的数组
ex:
var msg = "张三丰|男|65|19280202";
var arr = msg.split("|");
console.log(arr);
6、模式匹配
1、作用
配合着正则表达式来完成字符串的查找,替换..
2、正则表达式
约束字符串格式的表达式
语法:
/正则格式/修饰符
修饰符:
i :忽略大小写 (Ignorecase)
g :全局匹配 (Global)
m :允许多行匹配 (Multiple)
3、函数
1、replace(substr/regexp,replacement)
2、match(substr/regexp)
按照指定的格式匹配字符串,并将满足格式的字符串进行返回(数组)
3、search(substr/regexp)
返回满足substring或regexp格式的子字符串第一次出现的下标,没有找到返回-1
注意:search函数不支持全局匹配,将自动或略 g
练习:
Microsoft is a big company,microsoft's color is red and has MICROSOFT logo like microsoft
1、将所有的microsoft(大小写)替换成"微软"
2、输出 共替换了多少处
3、其他内置对象
1、JS对象概述
对象是JS中重要的API
JS中包含多种对象
1、内置对象 - ES 定义
2、外部对象
1、window (BOM)
2、document (DOM) - W3C
3、自定义对象
function
对象:包含属性 和 方法
对象.属性
对象.方法()
2、RegExp 对象
RegExp : RegularExpressioin - 正则表达式
1、创建RegExp对象
1、var regExp = /匹配模式/修饰符;
2、var regExp = new RegExp("匹配模式","修饰符");
2、RegExp对象的常用方法
1、regExp.test(string);
string :要验证的字符串
如果string符合regExp的格式的话,则返回true,否则返回false
2、exec(str)
检索并返回满足指定格式的子字符串对象
3、Math对象
1、作用
执行与数学相关的运算和数据
2、属性
Math.PI
Math.E
3、方法
1、三角函数
Math.sin(x)
Math.cos(x)
Math.tan(x)
... ...
2、计算函数
Math.sqrt(x) : 开平方
Math.log(x) : 求对数
Math.pow(x,y) : 求x的y次方
3、数值比较函数
Math.abs(x) : 获取绝对值
Math.max(a,b,c,d,...) : 获取最大值
Math.min(a,b,c,d,...) : 获取最小值
Math.random() : 返回一个 0-1 之间的随机小数
Math.round(x) : 将x进行四舍五入到整数
4、Date对象
1、创建Date对象
1、获取当前系统的日期时间
var now = new Date();
2、初始化自定义日期时间对象
var date = new Date("2018/01/08 17:50:48");
2、方法
1、读取或设置当前时间的毫秒数
1、getTime()
返回子 1970.1.1 00:00:00 到 date 时间为止所经过的毫秒数
2、setTime(毫秒数)
2、读取时间分量函数
1、getFullYear()
读取当前时间对象的年份
2、getYear()
返回子1900年以来,到当前日期对象所经过的年数
3、getMonth()
返回 0-11 的数字来表示 1-12月
4、getDate()
返回当前时间对象的日
5、getDay()
返回当前时间对象的星期?
返回0-6来表示星期日-星期六
0 :星期日
1 :星期一
... ...
6 :星期六
6、获取时间
getHours() : 获取小时
getMinutes() :获取分
getSeconds() :获取秒
getMilliseconds() :获取毫秒
7、转换为字符串
1、toString()
2、toLocaleTimeString()
返回当前的时间字符串(时分秒)
3、toLocaleDateString()
返回当前的日期字符串(年月日)
3、作业
1、获取当前系统的日期时间
2、按照以下格式进行输出
xxxx年xx月xx日 xx时xx分xx秒 星期?
************************************
2017.6.5
1900 ~ 2016 共多少天
2017.1 ~ 2017.5
累加 5
2018
1
日 一 二 三 四 五 六
1 2 3 4 5 6
7 8 9 10 11 12 13
arr = [1,2,3]
console.log("数组的内容为"+arr);
if(arr[j]>arr[j+1]){
交换两个元素的位置
}
1、要素
1、循环条件
2、循环操作
2、while循环
while(条件){
循环操作
更新循环变量
}
3、do...while循环
do{
循环体
}while(条件);
特点:
先执行循环体,再判断循环条件
4、for循环
while循环的简化体
for(表达式1;表达式2;表达式3){
循环操作
}
表达式1:声明循环条件
表达式2:循环条件的判断
表达式3:更新循环条件
2、函数
语法:
function 函数名(参数列表){
函数体
}
参数列表:
声明时,是一个由,隔开的参数名称列表
调用时,按照位置和类型传递进来
返回值:
如果需要返回值的话,则通过 return 返回
匿名函数:
是一个没有名称的函数,专门为了某一特殊功能而存在
window.onload = function(){
... ...
}
3、数组
1、创建数组
var arr = [];
var arr = [1,2,3,4,5];
var arr = new Array();
var arr = new Array(5,4,3,2,1);
2、数组的使用
1、使用 下标 来取值
数组名[下标] = 值;
console.log(数组名[下标]);
2、length
获取数组的长度
使用场合:
1、循环遍历数组中的每个元素
for(var i=0;i<arr.length;i++){
}
for(var i=arr.length-1;i>=0;i--){
}
2、找到数组中,最新要插入的位置
arr[arr.length]=值;
==================================================
1、数组
1、关联数组
1、什么是数组
JS中的数组分为索引数字组 和 关联数组
索引数组:由数字做下标的数组都是索引数组
关联数组:由字符串做下标的数组都是关联数组
2、声明一个关联数组
var names = [];
names["xiyouji"] = "古代神话故事";
names["hongloumeng"] = "古代言情小说";
注意:length属性只能统计出 索引数组的长度
3、使用for ... in 遍历数组
for(var i in 数组){
i : 表示数组中所有的下标索引和字符串所有
}
2、数组的常用API
1、toString()
作用:将数组转换为字符串,并返回
2、join(seperator)
作用:返回一个,由指定连接符连接的数组元素的字符串
3、concat()
作用:拼接多个数组到一起,并返回结果
语法:arr.concat(arr2,arr3,...);
注意:该函数不会改变现有数组,会返回一个拼接后的副本
4、reverse()
作用:反转
语法:arr.reverse()
注意:该函数会改变现有数组的结构
练习:
1、随意从弹框中输入一个数字
2、将数组转换为二进制,并打印输出
5、sort()
1、作用:
对现有的数组进行排序
默认情况下,按照元素的Unicode码进行排序的
2、注意
sort()函数会直接改变现有数组的内容
3、允许通过自定的排序规则(函数)来指定数字的排序方式
语法:arr.sort(排序函数);
1、使用排序函数
//指定升序的排序函数
function sortAsc(a,b){
return a-b;
}
1、将sortAsc 指定为排序函数
2、数组会自动的将相邻的两个数组传递到参数位置处
3、如果返回值是 > 0的数字,则交换两个数字的位置,否则不变
/*指定降序的排序函数*/
function sortDesc(a,b){
return b-a;
}
为数组指定排序函数
arr.sort(sortAsc);
2、使用匿名函数
6、进出栈操作
栈式操作:提供了快速操作数组头部和尾部的元素
1、push()
入栈,向数组的尾部添加新元素,并返回新数组的长度
2、pop()
出栈,删除并返回数组尾部的元素
3、unshift()
向数组的头部添加新元素并返回新数组的长度
4、shift()
删除并返回数组头部的元素
3、二维数组
1、什么是二维数组
在一个数组中的每个元素又是一个数组
2、声明二维数组
var names = [
["孙悟空","猪八戒","沙悟净"],
["潘金莲","马蓉","李小璐"]
];
取出猪八戒:
names[0][1]
2、字符串 - String
1、声明字符串
var str1 = "字符串1";
var str2 = String("字符串2");
var str3 = new String("字符串3");
2、length
作用:返回当前字符串中字符的个数
3、常用函数 - String API
1、大小写转换函数
1、toUpperCase()
返回字符串的完全大写形式
2、toLowerCase()
返回字符串的完全小写形式
2、获取指定为的字符 或 Unicode码
1、charAt(index)
返回指定下标位置处的字符
var msg = "Hello World";
var r = msg.charAt(6);
console.log(r);//W
2、charCodeAt(index)
返回指定下表位置处的字符的Unicode码(十进制 )
var msg = "Hello World";
var r = msg.charCodeAt(0);//H的Unicode码
3、检索字符串
1、作用
查找子字符串在指定字符串中的位置
2、函数
1、indexOf(value,fromIndex)
value : 要查找的子字符串
fromIndex : 从哪个位置处开始查找,如果省略的话则从第一个字符的位置处开始查找
返回值:返回第一次出现子字符串的下标,如果没查询到子字符串的话,则返回-1
2、lastIndexOf(value,fromIndex)
作用:查找value最后一次出现的下标
注意:该函数的查找方式是从后向前找
判断一个字符串是否满足邮箱的格式:
zhangsanfeng@163.com
sanfeng.zhang@163.com
1、字符串中必须有 @ 符号
2、字符串中必须有 . 符号
3、最后一个 . 的位置 必须在 @ 之后
4、截取子字符串
函数:substring(start,end)
作用:返回从start到end-1之间的子字符串,如果省略end的话,则截取到字符串的尾部
练习:(5分钟)
1、从指定邮箱地址中提取用户名
zhangsanfeng@163.com
2、从指定邮箱地址中提取邮箱服务商名称
zhangsanfeng@163.com
3、从指定的身份证号中提取生日日期
220101196012123311
1960年12月12日
5、分割字符串
函数:split(seperator)
作用:使用seperator 对字符串进行拆分,并返回后的数组
ex:
var msg = "张三丰|男|65|19280202";
var arr = msg.split("|");
console.log(arr);
6、模式匹配
1、作用
配合着正则表达式来完成字符串的查找,替换..
2、正则表达式
约束字符串格式的表达式
语法:
/正则格式/修饰符
修饰符:
i :忽略大小写 (Ignorecase)
g :全局匹配 (Global)
m :允许多行匹配 (Multiple)
3、函数
1、replace(substr/regexp,replacement)
2、match(substr/regexp)
按照指定的格式匹配字符串,并将满足格式的字符串进行返回(数组)
3、search(substr/regexp)
返回满足substring或regexp格式的子字符串第一次出现的下标,没有找到返回-1
注意:search函数不支持全局匹配,将自动或略 g
练习:
Microsoft is a big company,microsoft's color is red and has MICROSOFT logo like microsoft
1、将所有的microsoft(大小写)替换成"微软"
2、输出 共替换了多少处
3、其他内置对象
1、JS对象概述
对象是JS中重要的API
JS中包含多种对象
1、内置对象 - ES 定义
2、外部对象
1、window (BOM)
2、document (DOM) - W3C
3、自定义对象
function
对象:包含属性 和 方法
对象.属性
对象.方法()
2、RegExp 对象
RegExp : RegularExpressioin - 正则表达式
1、创建RegExp对象
1、var regExp = /匹配模式/修饰符;
2、var regExp = new RegExp("匹配模式","修饰符");
2、RegExp对象的常用方法
1、regExp.test(string);
string :要验证的字符串
如果string符合regExp的格式的话,则返回true,否则返回false
2、exec(str)
检索并返回满足指定格式的子字符串对象
3、Math对象
1、作用
执行与数学相关的运算和数据
2、属性
Math.PI
Math.E
3、方法
1、三角函数
Math.sin(x)
Math.cos(x)
Math.tan(x)
... ...
2、计算函数
Math.sqrt(x) : 开平方
Math.log(x) : 求对数
Math.pow(x,y) : 求x的y次方
3、数值比较函数
Math.abs(x) : 获取绝对值
Math.max(a,b,c,d,...) : 获取最大值
Math.min(a,b,c,d,...) : 获取最小值
Math.random() : 返回一个 0-1 之间的随机小数
Math.round(x) : 将x进行四舍五入到整数
4、Date对象
1、创建Date对象
1、获取当前系统的日期时间
var now = new Date();
2、初始化自定义日期时间对象
var date = new Date("2018/01/08 17:50:48");
2、方法
1、读取或设置当前时间的毫秒数
1、getTime()
返回子 1970.1.1 00:00:00 到 date 时间为止所经过的毫秒数
2、setTime(毫秒数)
2、读取时间分量函数
1、getFullYear()
读取当前时间对象的年份
2、getYear()
返回子1900年以来,到当前日期对象所经过的年数
3、getMonth()
返回 0-11 的数字来表示 1-12月
4、getDate()
返回当前时间对象的日
5、getDay()
返回当前时间对象的星期?
返回0-6来表示星期日-星期六
0 :星期日
1 :星期一
... ...
6 :星期六
6、获取时间
getHours() : 获取小时
getMinutes() :获取分
getSeconds() :获取秒
getMilliseconds() :获取毫秒
7、转换为字符串
1、toString()
2、toLocaleTimeString()
返回当前的时间字符串(时分秒)
3、toLocaleDateString()
返回当前的日期字符串(年月日)
3、作业
1、获取当前系统的日期时间
2、按照以下格式进行输出
xxxx年xx月xx日 xx时xx分xx秒 星期?
************************************
2017.6.5
1900 ~ 2016 共多少天
2017.1 ~ 2017.5
累加 5
2018
1
日 一 二 三 四 五 六
1 2 3 4 5 6
7 8 9 10 11 12 13
arr = [1,2,3]
console.log("数组的内容为"+arr);
if(arr[j]>arr[j+1]){
交换两个元素的位置
}