什么是函数:

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

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

函数方便管理和维护。

自定义一个函数:

通过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. Centos6.4 xen编译部署

    ruiy亲测成功,现将步骤总结如下,一步步往下将可 原文链接 http://blog.csdn.net/liyakun1992421/article/details/9071061 xen 与 kvm ...

  2. Linux下SVN命令总结

    目录 一.从版本库获取信息... 1 二.从版本库到本地... 2 三.从本地到版本库... 2 四.高级应用... 4 一.从版本库获取信息 svn help command 获取子命令说明 svn ...

  3. 黑马程序员_<<GUI(图形用户界面)--------1>>

    --------------------ASP.Net+Android+IOS开发..Net培训.期待与您交流! -------------------- 1.  GUI图形用户界面 1.简述 Gra ...

  4. CentOS源码安装搭建LNMP全过程(包括nginx,mysql,php,svn)【转】

    转自:http://blog.csdn.net/yanzi1225627/article/details/49123659 服务器环境为:CentOS6.5 64位 目标:搭建LNMP(Linux + ...

  5. DateTime.TryParseExact 万能时间格式转化

    本文转载:http://blog.csdn.net/gaofang2009/article/details/6073231 前天同事问C#有没有相关的方法能把"年月日时分秒"这样的 ...

  6. 读书雷达 l 业务分析师(BA)篇

    http://chuansong.me/n/412991951441 ThoughtWorks BA社区从2011年起就建立了BA书橱,根据大家的推荐选择了来自软件需求.商业分析.设计思维.软技能,以 ...

  7. mysql 超时设置

      在Mysql的默认设置中,如果一个数据库连接超过8小时没有使用(闲置8小时,即   28800s),mysql server将主动断开这条连接,后续在该连接上进行的查询操作都将失败,将   出现: ...

  8. android中的样式和主题

    有的时候我们一个页面要用很多个textview,而且这些textview的样式非常相像,这种情况下我们可以把这些样式抽取出来,然后在每个textview中引用即可,这样修改起来也方便. 我们来看一个简 ...

  9. CentOS 6.7安装Hadoop 2.6.3集群环境

    在CentOS 6.7 x64上搭建Hadoop 2.6.3完全分布式环境,并在DigitalOcean上测试成功. 本文假设: 主节点(NameNode)域名(主机名):m.fredlab.org ...

  10. linux下安装redis并自启动

    最近需要使用redis作为tomcat集群的session存储介质,因此记录redis的安装步骤.redis是一款高性能的nosql,支持异步将缓存写入到磁盘中,避免宕机的意外情况导致的缓存信息丢失. ...