黑马程序员技术交流社区
标题: 【黑马程序员杭州】PHP课程笔记day10-JavaScript基础 [打印本页]
作者: 小江哥 时间: 2017-12-25 15:32
标题: 【黑马程序员杭州】PHP课程笔记day10-JavaScript基础
本帖最后由 小江哥 于 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() | |
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |