【javascript】 声明函数与函数表达式 的区别

什么是声明函数?

function myFunc(){
    // 这里是函数代码
}

声明函数必须是以function 开头,再加上函数名称.

特点:

1.在一个页面中, js 解析器会优先解析带有function的 函数,因此如果在一个页面中的script标签内调用该函数,可以不用担心它的位置.情况如下:

<script>
var ob = new observable();
subscribable.call(observable);

console.log(observable._id);
function observable(){

}
function subscribable(){
    this._id = 1; // 这里的 this 表示 函数

}
</script>

2.声明函数会有一些自带的属性,如name属性.

<script>
function myFunc(){

}

console.log(myFunc.name); // 会输出 myFunc 字符串

</script>

什么是函数表达式?

var myFunc2 = function(){

};

函数表达式,类似与js 赋值变量的写法.myFunc2是一个变量名,它指向了一个匿名的函数.使得这个匿名函数不会游离在我们的使用之外.

特点:

1.函数表达式不同于声明函数,它必须在使用前被定义.以下情况会出现变量 undefined情况.

myFunc(); // 会报错

var myFunc = function(){
    return true;
};

2.函数表达式引用的函数如果是匿名函数,则不会有name属性.而如果引用的是一个声明函数,则name属性为声明函数的名称.

var myFunc = function(){};
 
console.log(myFunc.name); // 结果为 空字符串

function myFunc2(){

}
myFunc = myFunc2;

console.log(myFunc.name); // 结果为 myFunc2

小结:

一般情况下使用函数表达式会比较常见,因为写法与赋予一个变量十分类似.在多变量赋值情况下经常使用函数表达式.

函数声明一般在声明内部函数,创建某一个对象类型会使用,具体情况下具体使用.





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值