js函数-构成
前言
函数是一种封装,在任何语言中都是一个核心概念。在js中,函数是做为对象的子类型存在的。可以拥有自己的属性和方法,可以做为值进行传递,这两个特性让js拥有使用函数式编程的能力。
函数的声明
字面量声明:就是使用function关键字后面跟上固定语法。
function fnName(option1,option2){
// 这里是代码块
}
作为函数表达式:只要函数出现的地方,不是函数本身的function 关键字打头的,都叫函数表达式。
// 作为函数表达式的函数
var fn = function(){}
函数的构成
形参:函数定义的时候在小括号里面定义的参数列表。用来接收实际参数。
实参:实际调用函数的时候传入的参数。
return:结束函数执行的同时把后面 跟着的值返回出去,作为函数的产出。是可选的。不显示返回参数的话执行后会默认返回undefined。
函数的执行:函数表达式后跟一对圆括号()就会执行。
作为对象的函数:js中的函数作为对象类型是可以拥有自己的属性的。
// 一个做作的加法函数
function add(a,b){
return add.calculate();
}
// 为作为对象的函数定义一个calculate属性 这个属性的值指向一个匿名的function。
add.calculate = function(){
let num = 0;
Array.prototype.map.call(this.arguments,function(item){
num += item;
})
return num;
}
console.log(add(1,3)); //
函数的两个属性
js中函数的形参和实际运行时传入的实参个数可以是不对等的。默认的从左到右一一对应,多传或少传也不会报错的。
arguments:可以在函数体内通过函数名访问argument获得函数运行时的实参列表。
length:可以获取函数定义时,指定的形参个数。
使用arguments定义一个重载的函数(根据不同实参个数做不同操作,jq的重载从概念上是这么干的)
function getSum(){
// 获取实参列表
var arg = getSum.arguments;
// 没有参数就直接返回 -1
if(arg.length === 0){return -1}
// 只有一个参数就直接返回这个参数
if(arg.length === 1){
return arg[0];
}
var sum = 0;
Array.prototype.map.call(arg,function(item){
// item就是实参
sum += item;
})
return sum;
}
js函数-构成的更多相关文章
- 3.3 js函数
1.函数语法: 函数声明的方式:function 函数名(参数1,参数2-){//函数体;}函数调用:函数名(参数1,参数2-); 函数内不一定都指定返回值. 如果需要指定返回值,可用 return ...
- Js函数function基础理解
正文:我们知道,在js中,函数实际上是一个对象,每个函数都是Function类型的实例,并且都与其他引用类型一样具有属性和方法.因此,函数名实际上是指向函数对象的指针,不与某个函数绑定.在常见的两种定 ...
- js函数表达式和函数声明的区别
我们已经知道,在任意代码片段外部添加包装函数,可以将内部的变量和函数定义"隐 藏"起来,外部作用域无法访问包装函数内部的任何内容. 例如: var a = 2; function ...
- 通用js函数集锦<来源于网络> 【二】
通用js函数集锦<来源于网络> [二] 1.数组方法集2.cookie方法集3.url方法集4.正则表达式方法集5.字符串方法集6.加密方法集7.日期方法集8.浏览器检测方法集9.json ...
- 通用js函数集锦<来源于网络/自己> 【一】
通用js函数集锦<来源于网络/自己>[一] 1.返回一个全地址2.cookie3.验证用户浏览器是否是微信浏览器4.验证用户浏览器是否是微博内置浏览器5.query string6.验证用 ...
- 100多个基础常用JS函数和语法集合大全
网站特效离不开脚本,javascript是最常用的脚本语言,我们归纳一下常用的基础函数和语法: 1.输出语句:document.write(""); 2.JS中的注释为//3.传统 ...
- JS函数
1.document.write(""); 输出语句2.JS中的注释为//3.传统的HTML文档顺序是:document->html->(head,body)4.一个浏 ...
- js函数和运算符
函数是由事件驱动或者它被调用时执行可重复使用的代码块. <script> function myFunction(){ Alert(“hello World!”): } </scri ...
- JavaScript学习03 JS函数
JavaScript学习03 JS函数 函数就是包裹在花括号中的代码块,前面使用了关键词function: function functionName() { 这里是要执行的代码 } 函数参数 函数的 ...
- JSF页面中使用js函数回调后台bean方法并获取返回值的方法
由于primefaces在国内使用的并不是太多,因此,国内对jsf做系统.详细的介绍的资料很少,即使有一些资料,也仅仅是对国外资料的简单翻译或者是仅仅讲表面现象(皮毛而已),它们的语句甚至还是错误的, ...
随机推荐
- Java基础知识整理之static修饰属性
static 关键字,我们在开发用的还是比较多的.在<Java编程思想>有下面一段话 static 方法就是没有 this 的方法.在 static 方法内部不能调用非静态方法,反过来是可 ...
- loj#2269. 「SDOI2017」切树游戏
还是loj的机子快啊... 普通的DP不难想到,设F[i][zt]为带上根玩出zt的方案数,G[i][zt]为子树中的方案数,后面是可以用FWT优化的 主要是复习了下动态DP #include< ...
- 1--单独使用jdbc开发问题总结
1.数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响 数据库性能. 设想:使用数据库连接池管理数据库连接. 2.将sql语句硬编码到java代码中,如 ...
- VLAN虚拟局域网技术(三)-计算机网络
本文主要知识来源于学校课程,部分知识来自于H3C公司教材,未经许可,禁止转载.如需转载,请联系作者并注明出处. 本节主要介绍 pVLAN和 动态VLAN. 1. pVLAN:英文全称Private ...
- ultraedit激活
使用期满的解决办法:https://blog.csdn.net/dfh00l/article/details/52093630 下载:https://blog.csdn.net/qq_16093323 ...
- Trustzone——利用硬件对数据加密,秘钥存在芯片里
我是看 https://zhuanlan.zhihu.com/p/26441212 这个文章知道trustzone自身会存储秘钥,这个秘钥可以来自用户指纹,也可以来自云端下发的key. Truztzo ...
- MFC默认窗口类名称
// special AFX window class name mangling #ifndef _UNICODE #define _UNICODE_SUFFIX #else #define _UN ...
- python 案例之老王开枪
- 一个节点rac+单节点dg网络配置(listener.ora与tnsnames.ora)
环境说明: 实验环境是 一个节点的 rac + 单机dg (主备全部用asm存储) tnsnames.ora 文件 (oracle用户) node 1 : node1-> pwd / ...
- java代码优化(1)---
代码的优化,需要考虑的维度很多.但是代码的优化并不是减少代码量,有的时候我们需要增加代码来提高代码的可读性. 1.正确标记变量 2.封装某个动作 3.注意函数的写法 4.不容易理解的东西,加注释