JavaScript的函数

函数

函数声明通常由以下几部分组成:
1.关键词 function
2.函数名称 
3. 函数所需的参数,一个函数通常都具有 0 个或多个参数,参数之
间用逗号分隔。
4.函数所要执行的代码块,我们称之为函数体。
5.return 子句。函数通常都会有返回值,如果某个函数没有显式的返回值,我们就会默认它的返回值为 undefined

需要注意的是,一个函数只能有一个返回值,如果我们需要同时返回多个值,可以考虑将其放进一个数组里,以数组元素的形式返回

但如果设定了参数,而又在调用时忘了传递相关的参数值,JavaScript 引擎就会自动将其设定为 undefined

JavaScript 引擎中有一组可供随时调用的内建函数:
parseInt(); (把字符串转换为整数型,除此之外,该函数还有个可选的第二参数:基数(radix),它负责设定函数所期望的数字类型—十进制、十六进制、二进制等,如果首参数字符串是 0x 开头,第二参数就会被默认指定为 16(也就是默认其为十六进制数)如果首参数以 0 开头,第二参数就会被默认指定为 8(也就是默认其为八进制数))
parseFloat();  (parseFloat()的功能与 parseInt()基本相同,只不过它仅支持将输入值转换为十进制数。因此,该函数只有一个参数,与 parseInt()相同的是,parseFloat()在遇到第一个异常字符时就会放弃,无论
剩余的那部分字符串是否可用,此外,parseFloat()还可以接受指数形式的数据(这点与 parseInt()不同))
isNaN(); (通过 isNaN(),我们可以确定某个输入值是否是一个可以参与算术运算的数字。因而,该函数也可以用来检测 parseInt()和 parseFloat()的调用成功与否)
isFinite(); (isFinite()可以用来检查输入是否是一个既非 Infinity 也非 NaN 的数字)
encodeURI();(在 URL(Uniform Resource Locator,统一资源定位符)或 URI(Uniform Resource Identifier,统一资源标识符)中,有一些字符是具有特殊含义的。如果我们想“转义”这些字符,就可以去调用函数 encodeURI()或 encodeURIComponent()。前者会返回一个可用的 URL,而后者则会认为我们所传递的仅仅是 URL 的一部分) 
decodeURI();
encodeURIComponent();
decodeURIComponent();
eval()(eval()会将其输入的字符串当做 JavaScript 代码来执行。
安全性方面—JavaScript 拥有的功能很强大,但这也意味着很大的不确定性,如果您对放在 eval()函数中的代码没有太多把握,最好还是不要这样使用。性能方面—它是一种由函数执行的“动态”代码,所以要比直接执行脚本要慢。)

alert()函数是宿主——浏览器提供的,在使用这个函数之前,我们必须要明白这样做会阻塞当前的浏览器线程,也就是说,在 alert()的执行窗口关闭之前,当前所有的代码都会暂停执行。因此,对于一个忙碌的 AJAX 应用程序来说,alert()通常不是一个好的选择。

匿名函数(即没有名字的函数),特别是当它不被赋值给变量单独使用的时候。在这种情况下,此类函数有两种优雅的用法:
可以将匿名函数作为参数传递给其他函数,这样,接收方函数就能利用我们所传递的函数来完成某些事情。
可以定义某个匿名函数来执行某些一次性任务。

JavaScript 中不存在大括号级的作用域,但它有函数作用域及时函数——匿名函数的另一个应用示例—这种函数可以在定义后立即调用。

JavaScript 中不存在大括号级的作用域,但它有函数作用域
闭包
闭包的定义:
如果在一个内部函数里,对在外部作用域(但不是全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure)。
闭包的特点:
可以读取自身函数外部的变量(沿着作用域链寻找)先从自身开始查找,如果自身没有才会继续往上级查找,自身如果拥有将直接调用。(哪个离的最近就用哪一个)
延长内部变量的生命周期
函数b嵌套在函数a内部
函数a返回函数b
闭包的作用:在函数a执行完并返回后,闭包使得JavaScript的垃圾回收机制不会收回a所占用的资源,因为a的内部函数b的执行需要依赖a中的变量,闭包需要循序渐进的过程。
闭包的构成:
闭包由俩个部分构成:函数以及创建该函数的环境

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值