【前端——JavaScript】:数组、函数、作用域、预解析、对象、内置对象

40 阅读6分钟

 一、数组

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

网址:MDN Web Docs (mozilla.org)

如何学习对象中的方法:

3.Math对象

(1)我们可以直接使用,不用new调用

​编辑

注意,字符型的数字会被隐式转化为数字型,如果输入不是数字,结果出现NaN

例: 

 (2)随机数方法random()

       ①  括号里面不跟参数。返回一个随机小数,0<=x<1,

       ②得到两个数之间的随机整数,并且包括这两个整数

7.21-7.22学习汇报总结

1.问题解决

(1)问题:显示num2not defined

 解决:一定要先调用函数,此时num2才不会出问题