js函数的定义

  • 用函数声明语法定义
  • 用函数表达式定义
  • 使用Function的构造函数
  • 当分别用前两种方式定义同一个函数时

用函数声明语法定义

function add(num1,num2){var sum = sum1 + sum2;return sum;
}
console.log(add(1,2));//3

用函数表达式定义

形式一

var sum = function(num1,num2){var sum = sum1 + sum2;return sum;
}
console.log(sum(1,2));//3

形式二

var sum = function s(num1,num2){var sum = sum1 + sum2;return sum;
}
console.log(sum(1,2));//3

形式二的作用等同于形式一,而且原函数名s就不代表函数了,等同于一个匿名函数。如果执行s(1,2)将会报错

使用Function的构造函数

var sum = new Function("num1","num2","num=num1+num2;return num");
console.log(sum(1,2));//3

当分别用前两种方式定义同一个函数时

  • 首先我们知道:JS函数没有重载,后面定义的同名函数会覆盖掉之前的函数。函数名是一个指针,值是一段字符串。
    定义的先后顺序会导致不同的结果,看下面两个例子
  1. 后用函数表达式定义
    结果符合我们的预期
function fn1(){alert("Hello World!");
}
fn1();//Hello World!
var fn1 = function(){alert("Hello!");
}
fn1();//Hello!
  1. 先用函数表达式定义
    为什么第二次输出的还是Hello, 而不是Hello World!
    原有由下:解析器会首先读取函数声明,再执行代码;而函数表达式的函数则会在执行到的时候解析器才会去解析。所以JavaScript引擎会提升函数声明到顶端(即相当于先用了函数声明定义,再用了函数表达式定义),而变量声明只是变量的声明部分提升,赋值并不执行。
var fn1 = function(){alert("Hello!");
}
fn1();//Hello!
function fn1(){alert("Hello World!");
}
fn1();//Hello!

js函数的定义及同名函数覆盖问题相关推荐

  1. 前端:JS/22/函数(函数的概念,函数的定义格式,函数定义格式的说明,函数的调用,函数的参数),全局变量和局部变量,拷贝传值和引用传址,匿名函数,二维数组,对象,自定义对象的创建

    函数 1,函数的概念 函数,是将一段公共的代码进行封装,给它起个名字叫"函数" 函数可以一次定义,多次调用:函数可以将常用的功能代码,进行封装,如:用户名的验证,验证码函数,邮箱验 ...

  2. python函数定义与参数_Python函数的定义方式与函数参数问题实例分析

    本文实例讲述了Python函数的定义方式与函数参数问题.分享给大家供大家参考,具体如下: 涉及内容: 函数的定义方式 函数的文字描述 空操作语句 位置参数 默认参数 关键参数 可变长度参数 函数的定义 ...

  3. python 定义函数方法,python中函数如何定义?python函数的调用方法介绍

    本篇文章给大家带来的内容是关于python中函数如何定义?python函数的调用方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1. 函数的概念,函数是将具有独立功能的代码块 ...

  4. node.js 函数外定义的变量 函数内赋值后为什么不能带出_(44)python少儿编程之函数(五)--- 作用域...

    函数嵌套 在一个函数内定义了另一个函数 如图,定义了一个outer函数,然后在outer函数里面又定义了一个inner()函数,此时我们只能在outer函数调用inner()函数,如果在outer函数 ...

  5. python函数参数定义顺序_Python函数定义-位置参数-返回值

    原标题:Python函数定义-位置参数-返回值 1 函数介绍 函数在编程语言中就是完成特定功能的一个词句组(代码块),这组语句可以作为一个单位使用,并且给它取一个名字.可以通过函数名在程序的不同地方多 ...

  6. 可以在一个函数中定义另一个函数_第5周 定义一个函数

    亲爱的观众老爷们,早上好! 编程大师Martin Fowler先生曾经说过:"代码有很多种坏味道,重复是最坏的一种!",要写出高质量的代码首先要解决的就是重复代码的问题. 那么有什 ...

  7. gdb 笔记(03)— 某一行设置断点、为函数(单个唯一函数、多个同名函数、使用正则)设置断点、设置条件断点、设置临时断点

    断点 breakpoint,即为了调试的需要,在程序中设置一些特殊标志,代码执行到这些具有特殊标志的位置时会暂停.一旦程序暂停,我们就可以查看或者修改程序运行的一些信息,比如内存信息.堆栈信息等,并且 ...

  8. matlab创建一个函数,matlab定义一个新函数

    本文收集整理关于matlab定义一个新函数的相关议题,使用内容导航快速到达. 内容导航: Q1:matlab怎么建立自定义函数 自定义函数的格式: function 函数名(参数) 函数表达式 end ...

  9. Python中函数的定义和参数传递

    前言 什么是函数,为什么它又叫做函数? 一.函数的定义 以前在中学阶段我们就学习过函数,那时的函数的定义是给定一个数集A,假设其中的元素为x,对A中的元素x施加对应法则f,记作f(x),得到另一数集B ...

最新文章

  1. MyEclipse数据库连接配置(以Oracle为例)
  2. 多维DP UVA 11552 Fewest Flop
  3. java企业人事管理系统源码_企业人事管理系统完美版源代码 - 源码下载|行业应用软件|企业管理(财务/ERP/EIP等)|源代码 - 源码中国...
  4. fastdfs-配合nginx-麻烦的
  5. 自定义的ViewGroup中添加自定义View 造成的无法显示问题(个人)
  6. TCP文件上传Java_Java 理解TCP通信案例:文件上传案例
  7. ZigBee简介(不断补充)
  8. 简单游戏代码_简单游戏
  9. mysql怎么导入sql文件_如何将sql文件导入mysql
  10. 高等代数——大学高等代数课程创新教材(丘维声)——2.3笔记+习题
  11. Android图形图像处理,主流app开发工具
  12. cad2006激活未找到html文件,[转载]AutoCAD2006启动时提示“许可证系统出现问题”解决方法...
  13. css特效之水滴效果
  14. python实现kindle每天推送博客2----python实现爬取博客内容
  15. 15K服务器硬盘对齐分数,第七代15000RPM硬盘 希捷捷豹15K.7评测
  16. python opencv 常用增强 dct变换+侵蚀+扩张+索贝尔算子+直方图均衡化+光照平衡+
  17. 一般迭代法与steffensen迭代法matlab实现
  18. Python全国计算机等级考试(2021)
  19. 关于视频转码后只有声音没有画面的问题
  20. Base64编码和其隐写术

热门文章

  1. FANUC机器人的连续回转功能使用说明
  2. IOTE 2019第十一届国际物联网展--苏州站
  3. RAW(裸) 与 QCOW2(写时复制) 的区别
  4. 太阳直射点经纬度计算方法
  5. 为什么老板总觉得员工笨,员工天天骂老板?
  6. 2020计算机顶级大会_2020年数据科学的顶级编程语言
  7. 阿里大咖精心烹饪整理85道Java微服务面试题(附答案)
  8. andorid popwindow全屏显示时获取到的屏幕高度偏小
  9. linux系统管理之进程管理(连载)
  10. Docker启动失败,报错Cannot connect to the Docker daemon at unix:///var/run/docker.sock.