本帖最后由 小江哥 于 2017-12-25 16:24 编辑
零、数组【重新规划】
0.1什么是数组?
数组是一组数据有序的集合。数组它是属于复合数据类型。至少可以存储一个值。
0.2 为什么要使用数组?
0.3 数组的相关概念
0.3.1数组元素
指数组中的每一个数据!我们就把它们称之为数组元素
0.3.2数组下标
每一个数组元素都对应着一个数组下标 数组的下标是从0开始 第一个数组元素的下标是0,第二个数组元素的下标为1 第三个数组元素的下标为2 依此类推!
0.3.3如何访问数组里面的元素
格式:
0.3.4数组的长度
数组的长度:数组中元素的总个数 如何去计算数组的长度: 数组变量名.length 数组变量名其实就是一个数组对象 对象.属性 在JS中 数组对象下面有一个length的属性 这个属性可以得到数组的长度
0.4 定义数组
0.4.1使用[]来定义数组
0.4.2使用new关键和Array()方法来定义数组
注意: 在工作中一般都是使用[]来创建数组 基本上不会使用new关键字和Array方法来创建
一、多维数组
1.1一维数组
简单来说,一个数组内所有的元素的都不是数组,就是一维数组。
1.2多维数组
超过一维都是可以叫多维,多维数组指的是一个数组中的元素又是一个数组。
1.3如何访问二维数组的里面的数组元素呢?
格式: 数组变量名[一维数组的下标][二维数组的下标];
二、数组的遍历
2.1什么是数组的遍历?
操作数组中的每一个数组元素
2.2使用for循环来遍历数组
因为数组的下标是连续的,数组的下标是从0开始。 我们也可以得到数组的长度。 格式: [PHP] 纯文本查看 复制代码 for(var i=0;i<数组的长度;i++){
数组变量名
}
注意:条件表达式的写法 l i<数组的长度 l i<=数组的长度-1
2.3使用for..in语句来遍历数组
for..in它本身是用来遍历对象的,因为数组也是属于对象的一种,那么也可以使用for..in语句来遍历数组
格式: [PHP] 纯文本查看 复制代码 for(var 变量名 in 数组名){
数组变量名[变量名]
} 注意: 一般情况下我们都会使用for循环来遍历数组,因为使用for循环遍历数组非常直观。
三、遍历二维数组
四、函数
4.1什么是函数?
函数是可以被命名的,它是为了解决某些功能的代码段! 可以被命名:表示函数是可以有名字的,也是可以没有名字的。 代码段:函数体
4.2为什么要使用函数?
为了解决代码的重用! 减少代码量。
4.3函数的分类
系统内置函数和程序猿自定义函数
4.4定义函数
结构说明: - function它是定义函数的关键字 不可以省略。
- 函数名它的命名规则与变量名是一样的
可以使用大小写英文字母、下划线(_)、美元符号($)、数字组成
不能使用数字开头
不能使用JS中的关键字和保留字作为函数名
如果函数是由多个单词组成的,那么可以使用下划线连接法和驼峰法- 函数名后面紧跟着一对小括号 这一对小括号不能省略
- 小括号里面可能有参数,我们将其称之为形参
- 小括号后面紧跟着一对大括号 这一对大括号不能省略
- 大括号里面是函数体
注意:函数定义了一定要调用函数
4.5调用函数
格式: 函数名([实参列表])
4.6函数的参数
函数的参数分为两种: 形式参数和实际参数 形式参数:在定义函数的时候的参数就称之为形式参数,简称“形参” 实际参数:在调用函数的时候的参数就称之为实际参数,简称“实参”
提问: 实际参数是否可以使用变量名? 使用函数来动态的输出M行N 列的表格
4.7return
return在英文中表示“返回”的意思 return关键字是在函数体里面使用。 它在函数体使用有两层含义: 1. 当函数体里面遇到了return关键字以后,当前的这个函数就不会再往下进行执行了。 2. 它会向函数的调用者返回数据 (重点) 格式:return 数据; 注意: 我们在以后的工作中,函数体里面尽量不要有输出语句,尽量的使用return关键字将数据返回给函数的调用者。
我们以后去公司工作: 主管写好了一个公共的函数,这个函数是用来向body标签内输出一个“hello” 小明,他需要调用主管写的这个函数,小明就是用这个函数向body标签内输出hello 小强,他也需要调用主管写的这个函数,小强它是使用这个函数来要浏览器中弹出一个hello 现在就出现问题:因为主管写的这个函数它只能在body标签内输出hello并不能向浏览器中弹出一个hello 当主管发生此问题以后,他就不再输出hello,不管小明还是小强你们到底是输出还是弹出都没有关系。主管将这个“hello”这个数据返回给你们 ,你们想输出就输出想弹出就弹出。
特别强调: 在一个函数里面,return只会执行一次,return关键字可以有多个。 return关键字它只能返回一个数据,如果需要返回多个数据,我们可以将多个数组使用数组的方式来保存,然后再将数组返回。
4.8调用函数时候 带小括号与不带小括号的区别
五、匿名函数
5.1什么是匿名函数?
没有名字的函数 称之为匿名函数! 注意:匿名函数在JS中使用最多
5.2变量是可以保存任意数据类型
5.3变量也是可以保存函数的
5.4匿名函数也是需要调用的!
第一种:将匿名函数赋值给变量或者是事件 a) 将匿名函数赋值给变量,然后通过变量名加上小括号来调用匿名函数 b) 将匿名函数赋值给事件 将匿名函数赋值给事件 那么匿名函数什么时候才会执行?它要等到事件触发了以后 匿名函数才会执行。 window.onload onload表示当页面加载完成后
第二种:匿名函数自调用 格式: 函数名(); (function(){})();
六、变量的作用域
6.1什么是变量的作用域?
指变量在什么地方可以使用,什么地方不可以使用。
6.2变量作用域的分类
变量作用域分为:全局作用域和局部作用域。 在函数外面定义的变量我们将其称为全局变量,它的作用域是全局的。 在函数里面定义的变量我们将其称为局部变量,它的作用域是局部的。 变量的作用域是通过函数来进行划分的。 全局作用域:变量在函数外面和函数里面都可以使用。 局部作用域:变量只能在函数里面使用,在函数外面不可以使用。 问:是否能够提升局部变量的作用域呢?将局部变量的作用域提升至全局作用域。 在函数里面定义的变量也能够在函数外面访问到。 只需要将函数里面定义的变量的var关键字给去掉就可以实现将局部变量的作用域提升至全局作用域。 但是:并不建议直接就var 关键字给省略,我们建议在函数的外面定义一个同名的全局变量。
七、值传递与引用传递
7.1值传递
将一个变量的值赋值给另外一个变量,如果修改其中一个变量的值,不会影响到另外一个变量的值!这两个变量之间是没有任何的联系。
7.2引用传递
将一个变量的值赋值给另外一个变量,如果修改其中一个变量的值,会影响到另外一个变量的值,这两个变量之间是有联系的。
注意: 在JS中,基本数据类型之间的赋值操作都是值传递,复合数据类型之间的赋值操作都是引用传递。
八、对象
8.1什么是对象?
对象是由属性与方法组成。 对象中的属性其实就是我们之前学习的变量 对象中的方法其实就是我们之前学习的函数
8.2对象的分类
自定义对象和内置对象
8.3如何创建自定义对象
1) 使用new关键字和Object()方法来创建自定义对象 this一般是在匿名函数中使用,它是表示代表当前对象,哪个对象来调用当前的匿名函数这个this就会指向哪个对象。 2) 使用{}来创建 格式: [JavaScript] 纯文本查看 复制代码 var 变量 = {
属性名:值,
属性名:值,
方法名:匿名函数
}
8.4内置对象分类
- String对象:提供了处理字符串的属性与方法。
- Array对象:提供了一些操作数组的属性与方法
- Math对象:提供了一些操作数学方面的方法
- Date对象:提供了一些对时间日期操作的方法
- Number对象:它主要是提供了一个操作数值的方法
- Event对象:提供对JavaScript事件的处理信息。
九、String对象
9.1如何创建String对象
1) 定义的字符串变量名其实就是一个字符串对象 2) 使用new关键字和String()方法来创建!
9.2String对象的属性
属性名 | | | 得到字符串对象的长度 注意:这里的长度指的字符的个数! |
9.3 String对象的方法
方法名 | | StringObject.charAt(index) | 返回一个指定下标的字符! 参数说明: index:指定的下标值! |
案例:判断用户名中是否含有特殊符号? 方法名 | | StringObject.indexOf(substr) | 查找substr这个字符串或者是字符在StringObject这个对象中首次出现的位置 如果找的到就返回其下标[size=10.5000pt] 反之如果没有就返回-1 如果查找的是多个字符 如果找的到就返回第一个字符的下标 |
方法名 | | StringObject.lastIndexOf(substr) | 查找substr这个字符或者是字符串在StringObject这个对象中最后出现的位置 如果找的到就返回其下标 反之如果没有就返回-1 如果查找的是多个字符 如果找的到就返回第一个字符的下标 |
方法名 | | StringObject.substring(startIndex[,endIndex]) startIndex:开始下标 endIndex:结束下标 (可缺省 可有可无) | 截取字符串[size=10.5000pt] 从startIndex(开始下标)处开始截取 如果endIndex(结束下标)没有书写 表示一直截取取字符串的末尾 如果有写则表示截取结束下标为止 |
注意: 如果使用第二个参数,也就是endIndex结束下标,那么记得要+1 方法名 | | StringObject.substr(startIndex,[length]) 参数说明: startIndex:开始下标 length:可缺省的 表示的是要截取的长度 | 截取字符串 从startIndex(开始下标)处开始截取 如果length (长度)没有书写 表示一直截取到字符串的末尾 如果有写则表示截取的长度 |
方法名 | | StringObject.toLowerCase() | | StringObject.toUpperCase() | |
|