一、数组
1.数组中新增元素
①修改length长度
②修改索引号
结果:pink可直接出现。
这里和c不一样,不用重新定义,直接追加就可以实现
2.筛选数组
①常规筛选
②利用length
这个方法更加简单!比较巧妙
3.冒泡排序
4.翻转数组
二、函数
就是封装了 一段可被重复调用执行的代码块
1.函数的使用
(1)函数的声明
①利用函数关键字function 函数名()
**** 函数名一般是动词
②函数表达式(匿名函数)
var 变量名=function(){}
注意!!!!!匿名函数调用只能在匿名函数之后,而函数关键字不存在这样的问题
(2)调用函数
注意:
2.函数封装
是把一个或者多个功能同各国函数的方式封装起来,对外只提供一个简单的函数接口
3.函数的参数
(1)形参
形参不需要声明
例:
(2)实参
**** 调用函数时,传递的参数
编辑
多个参数之间用逗号隔开,形参可以看作不用声明的变量
(3)函数形参和实参个数不匹配问题
形参默认值是undefined
①实参个数多余形参个数
多余的实参没有进去,只取到形参个数那位。 比如形参2个,实参3个,实参只取到两个
②实参个数小于形参个数
出现undefined
4.函数的返回值
(1)实现:return 需要返回的值;
(2)终止函数作用:return后面不会被执行
(3)return只能返回一个值,如果存在多个值返回,返回分号前面一个值
(4)
(5)break,continue,return区别
5.arguments使用
(1)使用情景:不确定有多少个参数传递的时候
(2)使用:
编辑
结果:
(3)
只有函数才有arguments对象
(4)案例:求任意个数的最大值
6.函数相互调用
函数之间可以相互调用
三、作用域
1.作用域
就是代码名字在某个范围内起作用和效果,目的是提高程序的可靠性,更重要的是减少命名冲突
(1)全局作用域:整个script标签,或者是一个单独的js文件
注意!:如果在函数内部没有声明就直接复制的变量也属于全局变量
(2)局部作用域(函数作用域):这个代码的名字只在函数内部其效果和作用
函数的形参也是局部变量
(3)执行效率
全局变量只有浏览器关闭的时候才会销毁,局部变量在程序结束后就会销毁
2.作用域链
例:
就近原则,一级一级往上查找,所以此时num是20
四、预解析
1.预解析
js引擎运行js分为两步:预解析和代码执行。 预解析会把js里面所有的var和function提升到当前的作用域最前面
(1)编辑
就解释了为什么函数关键字,调用没有顺序,而匿名函数有。
(2)案例①
结果:
编辑
按照预解析,分析代码,找出正确顺序,就近原则,最后num是undefined。
②
注意var a=b=c=9;的含义
最后的结果:都是9,最后一个报错。因为a是局部变量
五、对象
1.对象
2.创建对象的三种方式
(1)利用字面量创建对象
注意:①多个属性用逗号隔开
②采用键值对的形式:键 属性名:值 属性名
调用:①对象名. 属性名
②对象['属性名']
变量和属性的区别:
函数和方法的区别:
总结:
(2)利用new Object
var 变量=new Object();
方式:
①使用等号赋值;
②每个属性后面是分号结束
(3)利用构造函数创建对象
因为我们前两种创建对象的方式只能一次创建一次对象。利用函数的方法,重复代码,这个函数就称为构造函数。
①语法格式
调用时:new 函数名();
例:
对象中的函数赋值,在调用时赋值
注意最后一行代码显示属性的方式,中括号里面的是想要显示的属性,注意要加单引号
②注意:
构造函数名字首字母大写
构造函数不需要return就可以返回结果
3.new关键字
4.遍历对象属性
实现:
例:
注意如何得到属性值和属性名!
六、内置对象
1.内置对象
就是JS语言自带的一些对象,能帮助我们快速开发
2.查文档
(1)MDN
如何学习对象中的方法:
3.Math对象
(1)我们可以直接使用,不用new调用
编辑
注意,字符型的数字会被隐式转化为数字型,如果输入不是数字,结果出现NaN
例:
(2)随机数方法random()
① 括号里面不跟参数。返回一个随机小数,0<=x<1,
②得到两个数之间的随机整数,并且包括这两个整数
7.21-7.22学习汇报总结
1.问题解决
(1)问题:显示num2not defined
解决:一定要先调用函数,此时num2才不会出问题