A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小江哥 于 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对象的属性

属性名
功能
StringObject.length
得到字符串对象的长度
注意:这里的长度指的字符的个数!


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()
将小写字母转换为大写字母










0 个回复

您需要登录后才可以回帖 登录 | 加入黑马