7.22

一、函数

1.函数的概念

函数:就是封装了一段可被重复调用执行的代码。通过此代码可以实现大量代码的重复使用。

2.函数的使用

2.1声明函数

 

2.2调用函数 

 

注意:函数本身不会自己执行代码,只有调用代码才可以执行代码

2.3函数封装

 

3.函数的参数

3.1形参和实参

 3.2形参和实参的匹配问题

 注意:

4.函数返回值

return语句可以实现将函数的值返回给调用者。

return返回值:return只能返回一个值,如果逗号隔开多个值,以最后一个值为准。

我们的函数如果有return,则返回的是return后面的值,如果函数美哦与return,则返回undefined。

break,continue和return的区别:

5.arguments的使用

 5.1 概念:当我们不确定有多少个参数传递时,可以用arguments来获取。在JavaScript中,arguments实际上它是当前函数的一个内置参数,所有函数都被内置了一个arguments对象,arguments对象中存储了传递的所有实参。

 5.2 伪数组,并不是真正意义的数组

     1.具有数组的length属性

    2.按照索引的方式进行存储

    3.它没有真正数组的一些方法pop(),push()等。

例:

二、作用域

1.作用域概述:通常来说,一段程序代码中所用到的名字并不总是有效和可用的,而限定这个名字的可可用性的代码范围就是这个名字的作用域。作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突。

2.全局变量和局部变量

 全局变量:在全局作用域下的变量

局部变量:在局部作用域下(函数内部)的变量

 注意:在函数内部没有声明直接使用的变量也是全局变量。

            函数的形参也可以看作是局部变量。

从执行效率来看:

        全局变量只有在浏览器关闭时才会销毁,比较占内存资源;

        局部变量程序运行完毕就会销毁,比较节约内存资源。

3.作用域链

内部函数访问外部函数的变量,采取链式的方法决定取哪个值,这种结构我们称作为作用域链,即就近原则。

三、JavaScript预解析

1.预解析

1.1 js引擎运行js分为两步:预解析    代码执行

(1)预解析:js引擎会把js里面的所有var 还有function提升到当前作用域的最前面

(2)代码执行:按照代码书写顺序从上往下执行

1.2预解析分为变量预解析(变量提升)和函数预解析(函数提升)

(1)变量提升:就是把所有的变量声明提升到当前作用域最前面,不提升赋值操作

(2)函数提升:把所有的函数声明提升到当前作用域的最前面,不调用函数

四、JavaScript对象

1.对象

1.1什么是对象

在JavaScript中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。

对象是由属性和方法组成的。

属性:事物的特征; 方法:事物的行为。

1.2为什么需要对象

保存一个值时,可以使用变量,保存多个值(一组值)时,可以使用数组,保存一个人的完整信息可以用对象。

 2.创建对象的三种方式

2.1利用对象字面量创建对象

对象字面量:就是{ }里面包含了白哦大这个具体事物(对象)的属性和方法。

{ }里面采取键值对的形式表示。

键:相当于属性名

值:相当于属性值,可以是任意类型

对象调用:

变量、属性、函数、方法总结

2.2利用new Object创建对象

 

2.3利用构造函数来创建对象

 

 注意:

 3.new关键字

new在执行时会做的四件事:

(1)在内存中创建一个新的空对象。

(2)让this只想这个新的对象。

(3)执行构造函数里面的代码,给这个新对象添加属性和方法。

(4)返回这个新对象(所以构造函数里面不需要return)。

4.遍历对象属性

for ...in语句用于对数组或者对象的属性进行循环操作。

语法结构:

 

 语法中的变量是自定义的,它需要符合命名规范,通常我们会将这个变量写为k或者key.

 5.小结

 五、内置对象

1.内置对象

JavaScript中队象分为三类:自定义对象、内置对象、浏览器对象

内置对象就是指JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用或是最基本而必要的功能(属性和方法)。

JavaScript提供了多个内置对象:Math、Date、Array、Srting等。

2. Math对象

猜数字游戏

3.Date

计时器

 4.创建数组的两种方式

(1)利用数组字面量

       var arr=[1,2,3];

       console.log(arr[0]);

(2)利用new Array()

        var arr1=new Array(2,3);

        console.log(arr1);

 5.数组对象

5.1检测是否为数组

(1)instanceof  运算符 可以用于检测是否为数组

(2)Array.isArray()

5.2 添加删除数组元素的方法

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值