什么是函数:

函数是完成某一功能的代码段。

函数是可重复执行的代码段。

函数方便管理和维护。

自定义一个函数:

通过function关键字来定义一个函数。

语法:

  function 函数名称([可以带参数,也可以不带参数,可以带一个参数,可以带多个参数]){

     执行的代码段;

      return返回值;

 <script>
alert(demo()) //这个函数是一个全局函数,调用函数的时候可以在函数声明前调用,或者函数声明后调用都可以
function demo(){ //通过function关键字来声明一个函数
alert("this is a function") //alert()是执行的一个代码段
return 1 //return是这个函数的返回值
}
</script>

 注意:

涵数名称不要包含特殊字符。

函数名字名称最好含义明确。

函数名称最好遵循驼峰标记法或者下划线法。

函数名称严格区分大小写。

涵数名称如果重复会产生覆盖。此例有演示代码:

 <script>
//同名函数会被第最后一个覆盖
function demo(){
alert("这是第一个demo1")
}
function demo(){
alert("这是第二个demo2")
}
demo() //=>输出结果为 这是第二个demo2
</script>

函数可以有参数也可以没有参数,可以有一个参数也可以有多个参数

参数的注意:

如果定义了参数,在调用函数时候没有传值,默认设置为undefined 此处有演示代码

 <script>
function demo(num1,num2){
return num1+num2 //num1和num2进行了隐式转换,undefined转换成number类型,结果为NaN,两个NaN相加为NaN
}
alert(demo()) //=>返回值为NaN
</script>

如果在调 用函数时如果传递参数超过了定义时的参数,js将会默认忽略掉多余的参数 此处有演示代码块

 <script>
function demo(num1,num2){
return num1+num2
}
alert(demo(1,2,3,4,5)) //=>3 因为多余的参数将会被js自动忽略
</script>

js中不能直接写默认值,可以通过arguments对象来实现默认值效果,此处有演示代码:

 <script>
//如果在参数里直接设置值,结果会报错,比如(num1=1,num2=2),这种情况下就会报错
function demo(num1,num2) {
/* num1= num1 != undefined?num1:1; //这个是用三元运算符来设置默认参数
num2= num2 != undefined?num2:3;*/
num1 = num1 || 1 //当如果调用函数传参的话则使用传参的参数,否则用后面的默认参数
num2 = num2 || 3
return num1+num2
}
alert(demo(1,4)) //=>5 这个是设置了参数
alert(demo()) //=>4 这个是用了默认设置的参数
</script>

函数通过return加返回值,如果没有return,默认返回undefined,此处有演示代码:

 <script>
function demo(){
alert("这个是一个有返回值的函数,可以返回所有原始类型的值")
return "如果return后面再做什么操作都没起任何效果,遇到第一个return则直接返回值"
alert("没有任何效果") //第一个return后面的执行语句和
return false //返回值都不起任何作用
}
alert(demo()) //调用时,第一个先弹出alert语句,然后再返弹出返回这个函数的值
</script>

js 通过function来定义函数的更多相关文章

  1. js function定义函数的4种方法

    js function定义函数的4种方法 1.最基本的作为一个本本分分的函数声明使用. 复制代码代码如下: 复制代码代码如下: function func(){} 或 var func=functio ...

  2. JS中 (function(){...})()立即执行函数

    (function(){...})() (function(){...}()) 这是两种js立即执行函数的常见写法. 基本概念: 函数声明:function fname(){...}; 使用funct ...

  3. JS:JS中常见的 “函数名 is not a function” 错误

    js中常见的错误,例如Uncaught TypeError: x is not a function 其原因除了函数本身有错之外,还有一种很奇怪的情况:函数本身没有错,但是运行时就是不能正常运行.这种 ...

  4. JS function 是函数也是对象, 浅谈原型链

    JS function 是函数也是对象, 浅谈原型链 JS 唯一支持的继承方式是通过原型链继承, 理解好原型链非常重要, 我记录下我的理解 1. 前言 new 出来的实例有 _proto_ 属性, 并 ...

  5. JS特殊函数(Function()构造函数、函数直接量)区别介绍

    函数定义 函数是由这样的方式进行声明的:关键字 function.函数名.一组参数,以及置于括号中的待执行代码. 函数的构造语法有这三种: 1.function functionName(arg0, ...

  6. JS学习笔记 (五) 函数进阶

    1.函数基础 1.1 函数的基本概念 函数是一段JavaScript代码,只被定义一次,但是可以被调用或者执行许多次.函数是一种对象,可以设置属性,或调用方法. 函数中的参数分为实参和形参.其中,形参 ...

  7. 【Mocha.js 101】钩子函数

    前情提要 在上一篇文章<[Mocha.js 101]同步.异步与 Promise>中,我们学会了如何对同步方法.异步回调方法以及 Promise 进行测试. 在本篇文章中,我们将了解到 M ...

  8. JS 关于(function( window, undefined ) {})(window)写法的理解

    JS 关于(function( window, undefined ) {})(window)写法的理解 [网络整理] (function( window, undefined ) {})(windo ...

  9. JS魔法堂:函数重载 之 获取变量的数据类型

    Brief 有时我们需要根据入参的数据类型来决定调用哪个函数实现,就是说所谓的函数重载(function overloading).因为JS没有内置函数重载的特性,正好给机会我们思考和实现一套这样的机 ...

随机推荐

  1. CentOS搭建GIT服务器【一】-仓库搭建以及基于gitosis的SSH方式访问

    1.安装GIT核心 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel gcc g ...

  2. 【杭州(含嘉兴,绍兴,金华,湖州,义乌)】Uber优步司机奖励政策(2月1日~2月7日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  3. light oj 1019【最短路模板】

    1019 - Brush (V) PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Tanvir r ...

  4. hdoj 1083 Courses【匈牙利算法】

    Courses Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total S ...

  5. MINA学习之体系介绍

    基于MINA应用程序结构图: 我们可以看出,MINA是应用程序(客户端或服务端)和底层基于TCP,UDP等通讯协议的网络层之间的粘合剂.而且各个模块之间是相互独立的,你只需要在MINA体 系基础上设计 ...

  6. (7/18)重学Standford_iOS7开发_视图、绘制、手势识别_课程笔记

    第七课: 1.View 一般来说,视图是一个构造块,代表屏幕上一块矩形区域,定义了一个坐标空间,并在其中绘制及添加触控事件等. ①视图的层级关系 一个视图只能有一个父视图,可以有多个子视图 - ( - ...

  7. [ES7] Exploring ES2016 Decorators

    Original artial --> link How descorator looks like: @mydecorator function myFun(){ ... } Descorat ...

  8. Shell变量之自定义变量、环境变量

    1:环境变量        环境变量可以帮我们达到很多功能-包括家目录的变换啊.提示字符的显示啊.运行文件搜寻的路径啊等等的那么,既然环境变量有那么多的功能,问一下,目前我的 shell 环境中, 有 ...

  9. oracle多表查询

    多表查询首先要避免笛卡尔集,要避免笛卡尔集,那么查询条件不得少于表的个数-1. 1.显示雇员名,雇员工资以及雇员所在的部门: 2.显示部门号为10的部门名.员工名和工资: 3.显示各个雇员的姓名,工资 ...

  10. WisDom.Net 框架设计(八) 持久层

    WisDom.Net ---持久层  1.什么是持久层        持久层负责最基础的功能支撑,为项目提供一个高层,统一,和并发的数据持久机制,提供了比如建立数据库连接,关闭数据库连接,执行sql语 ...