文档章节

JS--function

wytao1995
 wytao1995
发布于 09/21 01:58
字数 668
阅读 8
收藏 0

一、声明提前(hoist)

在js程序开始执行前,引擎会查找所有var声明的变量和function声明的函数,集中到当前作用域顶部集中创建,赋值留在原地

二、三种创建函数的方式

1、声明方式创建函数--会被声明提前

function 函数名(形参1,形参2形参3。。。){

    函数体

    return 返回值

}

这一段会提到当前作用域顶端

2、赋值方式

var fun=function(形参1,形参2,形参3。。。){

函数体

    return 返回值

}

只会把var fun提前

三、重载(overload)

相同函数名,不同形式参数列表的多个函数,在调用时,可自动根据传入实际参数的不同,选择对应的函数调用,减少函数名的数量,减轻维护负担

应用场合:一件事,可能根据传入的参数不同,执行不同的操作

js默认不支持重载,不允许多个同名函数同时存在,如果存在,最后一个函数会覆盖之前所有

解决办法:arguments对象

arguments对象:每个函数内自动创建,准备接收所有传入函数的实际参数的类数组对象

    自动创建:

    接收所有的实际参数:

    类数组对象:长的像数组的对象

        数组:下标 length 遍历

 

四、匿名函数

定义函数,不写名的函数

定义:如果一个函数只使用一次,不会反复使用,就不起函数名

为什么:节约内存,使用一次后,自动释放

场景:

    (1)回调函数:自己定义的函数,自己不调用,而是传给其他对象或者函数,被别人调用

    (2)匿名函数自调:定义函数后,立刻自己调用自己

 

五、作用域(scope)

全局和局部

js只有两种作用域,window的作用域和函数的作用域,for,while等均不是作用域

 

六、闭包

闭包,重用变量又保护变量不被篡改的编程方式,内部函数调用内部函数

1、步骤:

    (1)、外层函数包裹内层函数和受保护的变量

    (2)、外层函数将内层函数return到外部

    (3)、调用外层函数,获得内层函数对象,保存在外部变量中

 

 

 

 

© 著作权归作者所有

上一篇: ES5
下一篇: 正则表达式
wytao1995
粉丝 1
博文 53
码字总数 33926
作品 0
六安
私信 提问
图解Javascript上下文与作用域

本文尝试阐述Javascript中的上下文与作用域背后的机制,主要涉及到执行上下文(execution context)、作用域链(scope chain)、闭包(closure)、等概念。 >> 原文 << Execution context 执...

rainyear
2015/07/06
948
7
如何更新父窗体

Response.Write(" ") 第一种方案是: file a.htm function OpenDialog(url,param) { return window.open(url,param, "DialogWidth:450px;DialogHeight:450px;help:no;status:no"); } file b.......

晨曦之光
2012/03/09
61
0
js中的prototype和构造函数

js中没有类的感念,继承也是通过原型链来实现的对象的继承而不是类的继承 Vjeux写的这篇文章应该能帮助我们更好的理解js中原型的工作方式:http://blog.vjeux.com/2011/javascript/how-proto...

leo-H
2013/04/08
622
0
浅谈Javascript模块化开发

*** 自己接触过的几种javascript模块开发,由于水平有限,只能简单谈一谈。 *** 立即执行匿名函数 由于javascript的函数作用域,将模块代码放入立即执行匿名函数中,防止污染全局变量。将需要...

jackzlz
2015/08/17
231
0
26 个 JQuery 使用小技巧(jQuery tips, tricks & solutions)

The use of the jQuery library is growing and growing(just released jQuery 1.4), more and more people are using this useful javascript library. This means that more and more usef......

长平狐
2012/11/12
83
0

没有更多内容

加载失败,请刷新页面

加载更多

Tensorflow 2.0安装

Tensorflow2.0安装环境: Ubuntu 16.04或更高(64位) Windows 7或者更高(64位,且支持python3) 安装Tensorflow 2.0 GPU版本的需要安装NVIDIA相关软件包: NVIDIA驱动 :版本必须410.x或更...

JosiahMg
15分钟前
4
0
TL138/1808/6748F-EasyEVM开发板硬件、CPU、FLASH、RAM

TL138/1808/6748F-EasyEVM是广州创龙基于SOM-TL138/SOM-TL1808/SOM-TL6748F核心板开发的一款开发板。由于SOM-TL138/SOM-TL1808/SOM-TL6748核心板管脚兼容,所以此三个核心板共用同一个底板。...

Tronlong创龙
23分钟前
2
0
百度嵌入式AI解决方案EdgeBoard之内存驱动设计介绍

1. 背景介绍 由于 FPGA 具备可编程和高性能计算的特点,基于FPGA硬件的AI计算加速,正广泛地应用到计算机视觉处理领域。其中极具代表性的部署方式之一就是使用FPGA和CPU组合构成异构计算系统...

AI君
29分钟前
5
0
开放应用模型(OAM):全球首个云原生应用标准定义与架构模型

Kubernetes 项目作为容器编排领域的事实标准, 成功推动了诸如阿里云 Kubernetes (ACK)等云原生服务的迅速增长。但同时我们也关注到,Kubernetes 的核心 API 资源比如 Service、Deploymen...

Mr_zebra
32分钟前
3
0
《Linux操作系统-Exynos4412》编译和安装Busybox

开发环境:Exynos4412-iTOP-4412开发板 现在 Busybox 的配置已经完成了,接下来开始编译 Busybox,在 Ubuntu 的终端输入 “make”命令开始编译 Busybox,如下图。 下图为编译过程中的截图。 ...

书白
35分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部