js 通过function来定义函数
什么是函数:
函数是完成某一功能的代码段。
函数是可重复执行的代码段。
函数方便管理和维护。
自定义一个函数:
通过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来定义函数的更多相关文章
- js function定义函数的4种方法
js function定义函数的4种方法 1.最基本的作为一个本本分分的函数声明使用. 复制代码代码如下: 复制代码代码如下: function func(){} 或 var func=functio ...
- JS中 (function(){...})()立即执行函数
(function(){...})() (function(){...}()) 这是两种js立即执行函数的常见写法. 基本概念: 函数声明:function fname(){...}; 使用funct ...
- JS:JS中常见的 “函数名 is not a function” 错误
js中常见的错误,例如Uncaught TypeError: x is not a function 其原因除了函数本身有错之外,还有一种很奇怪的情况:函数本身没有错,但是运行时就是不能正常运行.这种 ...
- JS function 是函数也是对象, 浅谈原型链
JS function 是函数也是对象, 浅谈原型链 JS 唯一支持的继承方式是通过原型链继承, 理解好原型链非常重要, 我记录下我的理解 1. 前言 new 出来的实例有 _proto_ 属性, 并 ...
- JS特殊函数(Function()构造函数、函数直接量)区别介绍
函数定义 函数是由这样的方式进行声明的:关键字 function.函数名.一组参数,以及置于括号中的待执行代码. 函数的构造语法有这三种: 1.function functionName(arg0, ...
- JS学习笔记 (五) 函数进阶
1.函数基础 1.1 函数的基本概念 函数是一段JavaScript代码,只被定义一次,但是可以被调用或者执行许多次.函数是一种对象,可以设置属性,或调用方法. 函数中的参数分为实参和形参.其中,形参 ...
- 【Mocha.js 101】钩子函数
前情提要 在上一篇文章<[Mocha.js 101]同步.异步与 Promise>中,我们学会了如何对同步方法.异步回调方法以及 Promise 进行测试. 在本篇文章中,我们将了解到 M ...
- JS 关于(function( window, undefined ) {})(window)写法的理解
JS 关于(function( window, undefined ) {})(window)写法的理解 [网络整理] (function( window, undefined ) {})(windo ...
- JS魔法堂:函数重载 之 获取变量的数据类型
Brief 有时我们需要根据入参的数据类型来决定调用哪个函数实现,就是说所谓的函数重载(function overloading).因为JS没有内置函数重载的特性,正好给机会我们思考和实现一套这样的机 ...
随机推荐
- hdoj 1827 Summer Holiday【强连通分量&&缩点】
Summer Holiday Time Limit: 10000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- JavaScript面向对象继承方法
JavaScript的出现已经将近20多年了,但是对这个预言的褒贬还是众说纷纭.很多人都说JavaScript不能算是面向对象的变成语言.但是JavaScript的类型非常松散,也没有编译器.这样一来 ...
- ASP.NET【2】
从上一节我们了解到ASP.NET是一种动态网页技术,在服务器端运行.Net代码,服务器端接收处理动态生成HTML代码,然后发送给浏览器,再由浏览器解析HTML代码将数据呈现给用户. 那么,下面我来介绍 ...
- eclipse中建立tomcat容器
步骤 1. new - orther - server 出现下图,选择tomcat版本, 2. 选择已有的web项目至tomcat容器中,如果尚未建立,可不选. 3. 点击完成后,就会发现一个新建项 ...
- Hadoop的辉煌还能延续多久?
摘要:Hadoop已经成为大数据的代名词.短短几年间,Hadoop从一种边缘技术成为事实上的标准.而另一方面,MapReduce在谷歌已不再显赫.当企业瞩目MapReduce的时候,谷歌好像早已进入到 ...
- Android开发学习之LauncherActivity开发启动的列表
Android开发学习之LauncherActivity开发启动的列表 创建项目:OtherActivity 项目运行结果: 建立主Activity:OtherActivity.java [jav ...
- App升级时数据库的迁移更新
前一段时间在进行App升级的时候,由于一开始版本初期没有考虑完善,导致走了很多弯路,后来经过自己的一些思考,总结出了一些在app升级的时候,数据库内文件同步保持更新的经验,希望能给大家带来帮助. 总体 ...
- [转]cookie、session、sessionid 与jsessionid
cookie.session.sessionid 与jsessionid,要想明白他们之间的关系,下面来看个有趣的场景来帮你理解. 我们都知道银行,银行的收柜台每天要接待客户存款/取款业务,可以有几种 ...
- Chapter 5. The Gradle Wrapper 关于gradle wrapper
Most tools require installation on your computer before you can use them. If the installation is eas ...
- Memcache简介
简介 Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果等.简单的说就是将数据调 ...