javascript引用类型--Function类型

本文介绍了JavaScript中函数作为对象的特点,包括属性和方法,并详细解释了函数声明与函数表达式的区别,以及函数声明提升的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数的理解:

在ECMAScript中函数是对象,每个函数都是Function类型的实例,有属性和方法。

正因为函数是对象,函数名实际上也是一个指向函数对象的指针,且该指针(函数名)不会与某个函数绑定

,因此,“函数是对象,函数名是指针”


函数的定义方式:

一般函数的定义方式有两种:函数声明与函数表达式。

函数声明:

function sum(num1, num2){
   return num1 + num2;
}


函数表达式:(注意,最后有分号) 

var sum = function(num1, num2){
    return num1+num2;
}<strong><span style="color:#ff0000;">;</span></strong>

区别:解析器在向执行环境中加载数据时,会率先读取函数声明,并使其在执行任何代码之前可用(可以访问)

        函数表达式,则必须等到解析器执行到它所在的代码行,才会真正被解析执行。


eg:

alert(sum(10,10));
function sum(num1,num2){
    return num1 + num2;
}

以上代码可正常运行。因在代码开始执行之前,解析器就已经通过一个名为函数声明提升(function declaraion hoisting)的过程,

读取并将函数声明添加到执行环境中。在代码求值时,js引擎在第一遍会声明函数并将它们放到源代码树的顶部。所以,即使声明

函数的代码在调用它的代码后面,js引擎也能把函数声明提升到顶部。

而下面这样则会报"unexpected identifier"错

alert(sum(10,10));var 
sum = function sum(num1, num2){
    return num1 + num2;
};


未完待续。。。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值