JavaScript--函数

函数

1)定义

函数是事件驱动或者调用才执行的可重复使用的代码块

 

2)函数的作用

①可以控制程序执行时间

②重复使用

 

3)函数的声明

①function命令法

语法:

function 函数名(形参1,形参2,..){

函数体

}

注意:

1、形参可以省略,多个形参之间用逗号隔开,最后一个形参后不加逗号

2、函数调用可以写在声明之前(js在代码执行之前会把函数声明提升到所有代码的最顶部)

 

②函数表达式法

var 变量名 = function(形参1,形参2,..){

函数体

};

注意:

1、调用不可以写在声明前面(变量声明提升到所有代码的最顶部,赋值留在原地)

 

③构造函数法(了解)

var 变量名 = new Function('形参1','形参2',...,'函数体');

注意:

1、调用不可以写在声明前面(变量声明提升到所有代码的最顶部,赋值留在原地)

2、参数都是string类型

 

4)函数的调用

函数名(实参1,实参2,...);

变量名(实参1,实参2,...);

注意:

1、实参可以省略,多个实参之间用逗号隔开,最后一个实参后不加逗号

 

5)函数的参数

①形式参数

简称形参

形参是函数声明时写在小括号内的参数

 

形参是局部变量,不用var声明,直接写名称,局部变量只能在函数内部使用

多个形参之间用逗号隔开,最后一个形参后面不加逗号

 

②实际参数

简称实参

实参是函数调用时写在小括号内的参数

实参实际是给形参赋值

多个实参用逗号隔开,最后一个实参后面不加逗号

实参和形参最好一一对应

当实参个数大于形参个数时,多余的实参直接忽略

当形参个数大于实参个数时,多余的形参为undefined

 

栈:

基础数据类型、局部变量

特点:先进后出 first in last out

后进先出 last in first out

 

存储数据:压栈 push

弹出数据:弹栈 pop

 

函数的局部变量会在栈中开辟一个栈帧,存储局部变量

 

堆:

引用数据类型

 

6)重载 overload

重载:函数名相同,形参列表数量不同,表示不同的函数

js中没有重载,函数名相同时,后面的函数会覆盖前面的函数

 

7) 函数的返回值:

函数执行完毕之后,函数自身得到的一个结果。

① 如果一个函数没有显式的返回任何的数据,那么默认返回undefined。也可以认为返回undefined的函数是没有返回值的。

②如果希望一个函数执行完毕之后返回一个你需要的结果,那么必须在函数体内使用关键字 return 将你需要的结果返回。

③如果只是希望定义的函数执行某个功能,而不希望得到一个结果,那么就不需要返回值,也不需要使用return 带回任何的结果。

④return的个数没有限制,可能在不同的条件下使用return 返回不同的值。

⑤ 当函数中一旦执行了return,那么该方法立即结束执行。并返回return 后的值。

 

isNaN(num): 是一个全局函数,直接使用即可。

作用:用来判断参数 num 是否是NaN的。如果是,返回true。否则返回false。

 

typeof js的关键字,

语法:typeof 表达式;

作用:用来返回表达式的返回值的类型。返回的结果是string类型的数据。

 

8)var 和 let 的相同点和不同点。

相同点:

1:都是js的关键字,都是用来定义变量的。

 

不同点:

1:var 和 let 出现的时间点不同。var 和js语言一起诞生的。

let 是在ES6 这个版本出现的。

 

2:var 定义的变量只有局部作用域和全局作用域。

let 定义的变量有局部作用域,全局作用域、块级作用域。

代码中的一对大括号就是一个js代码块。

 

3: 使用var 可以重复定义变量。let不可以。

 

4: 使用var 定义的全局变量,会作为window对象的属性存在。

let定义的全局变量不能作为window对象的属性存在。

 

9)函数的执行符。

():称为函数的执行符。

1: 回调函数的应用:在一个函数的内部调用实参传入的函数。

2:匿名立即执行函数,该函数,执行且仅执行一次。

如果某个功能希望js加载的时候就执行,而且就执行一次,那么可以使用该方式。

了解:

函数内定义的函数。局部函数。

1:局部函数是否可以在全局中使用。

2:局部函数可以作为闭包使用。

//全局函数。

function max(a, b) {

return a > b ? a : b;

}

 

//局部函数。

function test() {

//局部函数

var innerFun = function () {

console.log ("我是局部函数");

}

//可以直接在内部调用执行。

// innerFun();

return innerFun;

}

 

//不能直接调用内部函数,间接调用。

var fn = test();

fn();

 

10) 函数的属性和功能介绍:

函数是一个对象。任何的对象都可以具有属性和功能。

属性:对象自身的特征。

功能:能做什么,方法。

 

函数对象也有功能和属性。

 

属性:name、length

 

name属性:函数的名字,或者是指向匿名函数的变量名。

函数名.name

函数名["name"]

 

length属性:函数的形参的个数。

函数名.length

函数名["length"]

 

函数功能:

函数名.toString();

返回当前函数的字符串表示形式。

 

11)函数的分类:

1:根据参数

有参函数

无参函数

2:根据返回值

有返回值函数

无返回值函数

3:根据定义者

js的内置函数:isNaN、isArray、Math.random()

开发者自定义函数:

 

4: 根据函数的调用者

实例函数|实例方法

对象实例调用的函数。

数组.forEach().

实例方法操作的数据是当前实例对象。

静态函数|静态方法

类型直接调用。

Array.isArray() Math.random()

静态方法一般都是工具方法,要么不操作任何对象数据,要么操作实参数据。

 

和数组有关的静态方法:

语法:Array.isArray(obj)

作用:用来判断obj是否是数组。 如果obj是数组,那么返回true,否则返回false。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值