通常我们会看到以下两种定义函数的方式:

// 函数语句
function fn(str)
{console.log(str);
};
// 表达式定义
var fnx=function(str)
{console.log(str+ ' from fnx');
};

两种方式都创建了新的函数对象, 但函数声明语句的函数名是一个变量名, 变量指向函数对象,
和通过var声明变量一样,函数定义语句中的函数被显示地提前到了脚本或函数的顶部, 因此它们在整个脚本和函数内都是可见的,但是使用var 表达式定义函数,
只有变量声明提前了,变量初始化代码仍然在原来的位置, 用函数语句创建的函数, 函数名称和函数体均被提前,所以我们可以在声明它之前就使用它。

   console.log(typeof(fn)); // functionfn('abc'); // abc
console.log(typeof(fnx)); // undefinedif(fnx)fnx('abc');  // will not executeelseconsole.log('fnx is undefined'); // fnx is undefined// 函数语句function fn(str){console.log(str);};// 表达式定义var fnx=function(str){console.log(str+ ' from fnx');};

转载于:https://www.cnblogs.com/disneyland/p/3924480.html

javascript 用函数语句和表达式定义函数的区别详解相关推荐

  1. (小白)函数一: 声明函数的方法—语句定义法和表达式定义法的区别

    一.函数的定义: 在说明什么是函数前先举一个小例子: 大家都知道印刷术是我国的四大发明(科普一下:中国四大发明:造纸术.印刷术.火药.指南针)之一,之所以有印刷术,是因为重复的抄写既浪费时间,效率又很 ...

  2. python函数中可变参数的传递方式是_详解Python函数可变参数定义及其参数传递方式...

    Python函数可变参数定义及其参数传递方式详解 python中 函数不定参数的定义形式如下 1. func(*args) 传入的参数为以元组形式存在args中,如: def func(*args): ...

  3. C++友元函数和友元类(C++ friend)详解

    在看VISP视觉库的时候遇到友元函数: Friends void swap (vpDetectorAprilTag &o1, vpDetectorAprilTag &o2) 在定义一个 ...

  4. python中sort函数字符串_python中的sort方法使用详解

    < Python树莓派编程>--3.3 Python入门 本节书摘来自华章出版社<Python树莓派编程>一书中的第3章,第3.3节,作者:[美]沃尔弗拉姆·多纳特(Wolfr ...

  5. jQuery height()、innerHeight()、outerHeight()函数的区别详解

    参考来源:http://www.jb51.net/article/84897.htm 代码示例(可复制到编辑器直接打开): 1 <!DOCTYPE html> 2 <html lan ...

  6. php根据元素返回可以,array_search()函数按元素值返回键名步骤详解

    这次给大家带来array_search()函数按元素值返回键名步骤详解,array_search()函数按元素值返回键名的注意事项有哪些,下面就是实战案例,一起来看一下. array_search() ...

  7. php判断参数_php检查函数必传参数是否存在的实例详解

    php检查函数必传参数是否存在的实例详解 在php实际编程中,接口经常会接收到前端传来的参数,其中有些参数不是必传的,有些参数是必传的,如何"检查函数必传参数是否存在"呢?为了解决 ...

  8. python中search和match的区别_Python中正则表达式match()、search()函数及match()和search()的区别详解...

    match()和search()都是python中的正则匹配函数,那这两个函数有何区别呢? match()函数只检测RE是不是在string的开始位置匹配, search()会扫描整个string查找 ...

  9. JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解

    JS 字符串编码函数(解决URL特殊字符传递问题):escape().encodeURI().encodeURIComponent()区别详解 参考文章: (1)JS 字符串编码函数(解决URL特殊字 ...

最新文章

  1. [WinAPI] API 5 [遍历驱动器并获取驱动器属性]
  2. 旅行商问题(Traveling Saleman Problem,TSP)
  3. 论文浅尝 | 基于多原型mention向量的文本-实体联合学习
  4. Python——腾讯笔试编程题(函数练习)
  5. 小姐姐公开征婚高智商 IT 男:微信号竟要质数解密?
  6. 实用主义学python_麻瓜编程《实用主义学Python》课程全集下载地址 – 爱学知识网...
  7. 一个有意思的VMP破解 旺旺吧上网经营管理系统
  8. 设置计算机从u盘启动的英文,如何在BIOS中设置U盘启动
  9. Ubuntu 18.04 安装 Wine
  10. win7系统备份还原软件_十分不错的系统还原工具 一键还原备份系统软件 一键还原备份SGIMINI4.0通用版本...
  11. HDRP高清渲染管线-学习资料汇总
  12. Bagging 和 Boosting理解、区别与联系
  13. 听风的插件-正在战斗中
  14. 详细解析图像处理 直方图均衡化计算
  15. 访问局域网另外一台电脑虚拟机中CentOS7
  16. 科创人·派拉软件CEO谭翔:零信任本质是数字安全,To B也要深研用户心智
  17. NIR近红外光谱简介
  18. WC .exe C语言实现
  19. 金属有机骨架mof载药|阿霉素药物载体La/Tm-MOFs@SiO复合材料|PCN-224负载环丙沙星
  20. 家庭新成员:德牧听泉

热门文章

  1. Matlab 中prod函数的使用
  2. HTML-meta标签
  3. 去哪儿-18-detail-list
  4. MFC浅析 8 CArchive 原理
  5. 计算机视觉基础-图像处理(图像滤波)cpp+python
  6. OPENSSL 的深入理解
  7. phpmyadmin 导出mysql_PhpMyAdmin创建/导入/导出MySQL数据库教程[图文]
  8. 爬虫怎么处理python_python 爬虫怎么处理json内容
  9. netty心跳过程中 发送消息失败_netty心跳机制和断线重连(四)
  10. 技术面试问项目难题如何解决的_同轴线如何当网线使用?解决改造项目中难题...