什么是函数:

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

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

函数方便管理和维护。

自定义一个函数:

通过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. hdoj 1827 Summer Holiday【强连通分量&&缩点】

    Summer Holiday Time Limit: 10000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  2. JavaScript面向对象继承方法

    JavaScript的出现已经将近20多年了,但是对这个预言的褒贬还是众说纷纭.很多人都说JavaScript不能算是面向对象的变成语言.但是JavaScript的类型非常松散,也没有编译器.这样一来 ...

  3. ASP.NET【2】

    从上一节我们了解到ASP.NET是一种动态网页技术,在服务器端运行.Net代码,服务器端接收处理动态生成HTML代码,然后发送给浏览器,再由浏览器解析HTML代码将数据呈现给用户. 那么,下面我来介绍 ...

  4. eclipse中建立tomcat容器

    步骤 1.  new - orther - server 出现下图,选择tomcat版本, 2. 选择已有的web项目至tomcat容器中,如果尚未建立,可不选. 3. 点击完成后,就会发现一个新建项 ...

  5. Hadoop的辉煌还能延续多久?

    摘要:Hadoop已经成为大数据的代名词.短短几年间,Hadoop从一种边缘技术成为事实上的标准.而另一方面,MapReduce在谷歌已不再显赫.当企业瞩目MapReduce的时候,谷歌好像早已进入到 ...

  6. Android开发学习之LauncherActivity开发启动的列表

    Android开发学习之LauncherActivity开发启动的列表 创建项目:OtherActivity 项目运行结果:   建立主Activity:OtherActivity.java [jav ...

  7. App升级时数据库的迁移更新

    前一段时间在进行App升级的时候,由于一开始版本初期没有考虑完善,导致走了很多弯路,后来经过自己的一些思考,总结出了一些在app升级的时候,数据库内文件同步保持更新的经验,希望能给大家带来帮助. 总体 ...

  8. [转]cookie、session、sessionid 与jsessionid

    cookie.session.sessionid 与jsessionid,要想明白他们之间的关系,下面来看个有趣的场景来帮你理解. 我们都知道银行,银行的收柜台每天要接待客户存款/取款业务,可以有几种 ...

  9. Chapter 5. The Gradle Wrapper 关于gradle wrapper

    Most tools require installation on your computer before you can use them. If the installation is eas ...

  10. Memcache简介

    简介 Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果等.简单的说就是将数据调 ...