分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

JS函数声明和函数表达式的关系

发布时间:2023-09-06 01:46责任编辑:傅花花关键词:暂无标签

1、函数声明

1 ????// 函数声明2 ????function funDeclaration(type){3 ????????return type==="Declaration";4 ????}

2、函数表达式

 ???// 函数表达式 ???var funExpression = function(type){ ???????return type==="Expression"; ???}

JS代码在解析时会进行函数提升,因此在同一个作用域内,不管函数声明在哪里定义,该函数都可以进行调用。而函数表达式的值是在JS运行时确定,并且在表达式赋值完成后,该函数才能调用。

这个微小的区别,可能会导致JS代码出现意想不到的bug,让你陷入莫名的陷阱中。如下代码:

1 ????funDeclaration("Declaration");//=> true2 ????function funDeclaration(type){3 ???????return type==="Declaration";4 ???}
1 ?????funExpression("Expression");//=>error2 ?????var funExpression = function(type){3 ????????return type==="Expression";4 ????}

出现上面的错误是因为用函数声明创建的函数可以在函数解析后调用(解析时进行等逻辑处理);

而用函数表达式创建的函数是在运行时进行赋值,且要等到表达式赋值完成后才能调用。其本质原因体现在这两种类型在Javascript function hoisting(函数提升)和运行时机(解析时/运行时)上的差异。

JS函数声明和函数表达式的关系

原文地址:https://www.cnblogs.com/endlessmy/p/8631376.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved