谈谈JavaScript中的函数
JS中的函数简介
JS中的函数是一种通过调用来完成具体业务的一段代码块。最核心的目的是将可重复执行的操作进行封装,然后供调用方无限制的调用。
JS中的函数的定义
JS中函数定义,有如下两种形式:
方式1
function f1(){} //函数声明,f1为函数名,可以将其理解为变量f1指向一个函数 function f2(){return 100;}//函数允许有返回值 function f3(a,b){}//函数中可以定义多个参数,无需指定变量类型
方式2
var f4=function(){} //函数表达式,这里变量名f4为函数名 var f5=function(){return 100;}//函数允许有返回值 var f6=function(a,b,c){}
案例分享
JS中的函数调用
JS中的函数定义好以后,必须调用才会执行,常用调用方式有如下两种:
方式1:通过函数名直接调用
f1(); f3(10,20); //调用函数时指定其实际参数 f6(10,20,30)
方式2:匿名函数自调用,目的是创建函数作用域,防止污染全局.
(function(){})() (function(){}())
案例分享
基于函数名进行调用
函数的自调用
回调函数
JS中的回调函数,将函数以实参的形式进行传递。
function f(callback){ callback()//调用传入的匿名函数 };//定义函数 f(function(){console.log("hello"))//调用函数,函数内部传入的匿名函数为回调函数
案例分享
JS中的回调函数,将函数以实参的形式进行传递。
function f(callback){ callback()//调用传入的匿名函数 };//定义函数 f(function(){console.log("hello"))//调用函数,函数内部传入的匿名函数为回调函数
案例分享
总结(Summary)
本小节主要从函数的概念,定义,调用,回调几个角度对函数做了一个基本介绍,小试伸手,用于交流。
以上就是谈谈JavaScript中的函数的详细内容,更多关于JavaScript 函数的资料请关注我们其它相关文章!
相关推荐
-
js中字符替换函数String.replace()使用技巧
定义和用法 replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. 语法 stringObject.replace(regexp/substr,replacement)参数 描述 regexp/substr 必需.规定子字符串或要替换的模式的 RegExp 对象. 请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象. replacement 必需.一个字符串值.规定了替换文本或生成替换文本的函数.
-
js 字符串操作函数
concat() – 将两个或多个字符的文本组合起来,返回一个新的字符串. indexOf() – 返回字符串中一个子串第一处出现的索引.如果没有匹配项,返回 -1 . charAt() – 返回指定位置的字符. lastIndexOf() – 返回字符串中一个子串最后一处出现的索引,如果没有匹配项,返回 -1 . match() – 检查一个字符串是否匹配一个正则表达式. substring() – 返回字符串的一个子串.传入参数是起始位置和结束位置. replace() – 用来查找匹配一个
-
JS验证URL函数 正则
这个url的正则表达式判断的JavaScript!比较全面的.它验证的情况包括IP,域名(domain),ftp,二级域名,域名中的文件,域名加上端口!用户名等等信息,貌似作者也是在网上找的,我从一个项目代码中扣出来的,是我见过的最强最全面的url验证方式!太猛了,贴在这里与大家分享,URL的验证实在是很频繁. function IsURL (str_url) { var strRegex = '^((https|http|ftp|rtsp|mms)?://)' + '?(([0-9a-z_!~
-
告诉你什么是javascript的回调函数
函数也是对象 想弄明白回调函数,首先的清楚地明白函数的规则.在javascript中,函数是比较奇怪的,但它确确实实是对象.确切地说,函数是用Function()构造函数创建的Function对象.Function对象包含一个字符串,字符串包含函数的javascript代码.假如你是从C语言或者java语言转过来的,这也许看起来很奇怪,代码怎么可能是字符串?但是对于javascript来说,这很平常.数据和代码之间的区别是很模糊的. //可以这样创建函数 var fn = new Functio
-
前端使用crypto.js进行加密的函数代码
crypto-js 是一个纯 javascript 写的加密算法类库 ,可以非常方便地在 javascript 进行 MD5.SHA1.SHA2.SHA3.RIPEMD-160 哈希散列,进行 AES.DES.Rabbit.RC4.Triple DES 加解密. 可以在这个GitHub的https://github.com/brix/crypto-js上下载该js,它可以单独引入所需要加密方式的js:也可以引入一个crypto-js.js 这个文件,它相当于引入了所有的加密方式,我使用的就是后者
-
浅析JavaScript 函数柯里化
柯里化 (Currying)是把接收多个参数的原函数变换成接受一个单一参数(原来函数的第一个参数的函数)并返回一个新的函数,新的函数能够接受余下的参数,并返回和原函数相同的结果. ES6的方式实现柯里化的通用 function currying(fn,...rest1){ return function(...rest2){ //这里用apply 是为把数组形式的参数直接传入原函数 null是因为不需要改变this return fn.apply(null,rest1.concat(rest2)
-
JS变量提升及函数提升实例解析
1在js中只有两种作用域 a:全局作用域 b:函数作用域 在ES6之前,js是没有块级作用域. 首先来解释一下什么是没有块级作用域? 所以此时 是可以打印输出变量a的值. 2:什么是变量提升? 在我们的js中,代码的执行时分两步走的,1.预解析 2.一步一步执行 在预解析阶段:首先会在全局作用域内,js解析器会找所有的 var .function .参数,并提前到当前作用域的最顶上去(变量的赋值操作不会提前,还在原来的地方),此时并没有执行代码. 然后再开始一行一行执行代码.遇到了函数调用,于是
-
js 小数取整的函数
1.丢弃小数部分,保留整数部分 js:parseInt(7/2) 2.向上取整,有小数就整数部分加1 js: Math.ceil(7/2) 3,四舍五入. js: Math.round(7/2) 4,向下取整 js: Math.floor(7/2)
-
js 函数性能比较方法
在学习js过程中,经常会遇到同样一个功能点 这样实现也可以,那样实现也可以.但是哪个方式最优呢?自己写了一个简短的proferencesCompare 函数.代码如下: /** * 函数性能比较 * @param fns 要比较的函数数组 * @args 每个要比较函数在执行的时候传入的参数,可以是数组,或者 被调用后 返回数组类型 * @repeatCount 每个函数重复执行的次数,多次执行 拉开差距.默认值10000 * * @return [{runTime:执行repeatCount次
-
js function定义函数使用心得
1.最基本的作为一个本本分分的函数声明使用. 复制代码 代码如下: function func(){} 或 var func=function(){}; 2.作为一个类构造器使用: 复制代码 代码如下: function class(){} class.prototype={}; var item=new class(); 3.作为闭包使用: 复制代码 代码如下: (function(){ //独立作用域 })(); 4.可以作为选择器使用: 复制代码 代码如下: var addEvent=ne
-
JS的时间格式化和时间戳转换函数示例详解
JS的时间格式化和时间戳转换函数 //格式化时间 function dateFormat(fmt,date){ var o = { "M+" : date.getMonth()+1, //月份 "d+" : date.getDate(), //日 "h+" : date.getHours(), //小时 "m+" : date.getMinutes(), //分 "s+" : date.getSeconds
随机推荐
- mongodb 修改器($inc/$set/$unset/$push/$pop/upsert)
- JavaScript闭包 懂不懂由你反正我是懂了
- 简介Python中用于处理字符串的center()方法
- 详解JavaScript中的4种类型识别方法
- PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
- 将时间以距今多久的形式表示,PHP,js双版本
- 10款最好的Web开发的 Python 框架
- 实现ASP程序执行时间统计类的代码
- 使用设计模式中的单例模式来实现C++的boost库
- JavaScript null和undefined区别分析
- jQuery grep()方法详解及实例代码
- jQuery 和 CSS 的文本特效插件集锦
- 基于JavaScript实现带缩略图的轮播效果
- javascript实现网页字符定位的方法
- Android xUtils更新到3.0后的基本使用规则详解
- springboot整合mybatis中的问题及出现的一些问题小结
- Spring中使用atomikos+druid实现经典分布式事务的方法
- Django框架之登录后自定义跳转页面的实现方法
- Mysql覆盖索引详解
- python虚拟环境迁移方法