博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自执行函数
阅读量:7176 次
发布时间:2019-06-29

本文共 844 字,大约阅读时间需要 2 分钟。

  hot3.png

1、函数声明、函数表达式、匿名函数

针对函数声明:function fnname()使用function关键字声明一个函数,再指定一个函数名。叫做函数声明

函数表达式 var fnname=function(){},使用function关键字声明一个函数,但没有给函数命名,最后将匿名函数赋予一个变量。叫做函数表达式,这是最常见的函数表达式语法形式。

函数声明和函数表达式不同之处在于,一、Javascript引擎在解析javascript代码时会‘函数声明提升'(Function declaration Hoisting)当前执行环境(作用域)上的函数声明,而函数表达式必须等到Javascirtp引擎执行到它所在行时,才会从上而下一行一行地解析函数表达式,二、函数表达式后面可以加括号立即调用该函数,函数声明不可以,只能以fnName()形式调用 。以下是两者差别的两个例子。

复制代码 代码如下:

fnName();
function fnName(){
    ...
}
//正常,因为‘提升'了函数声明,函数调用可在函数声明之前
fnName();
var fnName=function(){
    ...
}
//报错,变量fnName还未保存对函数的引用,函数调用必须在函数表达式之后

在函数体后面加括号可以实现立即调用,这个函数必须是函数表达式

只有var fname=function(){}()可以进行立即执行

function fname(){}()不会报错,但是只会解析函数声明,不会进行直接调用。

function(){}()//语法错误,虽然匿名函数属于函数表达式,但是没有进行赋值

优点:

可以将自己的业务数据封装到一个容器之中。容器内部可以访问外部的变量,而外部环境不能

访问容器内部的变量。因此 内部定义的变量不会和外部变量发生冲突。俗称“匿名包裹器”或者“命名空间”

转载于:https://my.oschina.net/kxhome/blog/886593

你可能感兴趣的文章
创建 DTL 的 Template 文件与项目重要细节-4
查看>>
数据库运维平台~自动化上线审核需求
查看>>
docker 私有仓库搭建
查看>>
P1069 细胞分裂
查看>>
01Design and Analysis Algorithm Using Python-程振波
查看>>
uva 11045(最大流)
查看>>
CentOS 6搭建LAMP和phpRedisAdmin遇到的问题及解决方法分享
查看>>
mtime参数的理解
查看>>
python扫描端口脚本
查看>>
C语言第一章基本概念练习。
查看>>
新的思想来源
查看>>
《从癸酉之变看作风建设与历史周期律》笔记
查看>>
SpringMVC07处理器方法的返回值
查看>>
c#发送邮件
查看>>
MySQL 5.5.35 单机多实例配置详解
查看>>
Nginx+Keepalived 主备高可用 安装与配置
查看>>
java实现excel的导入导出(poi详解)
查看>>
【转】值传递与引用传递
查看>>
MongoDB 入门篇
查看>>
parted创建LVM
查看>>