立即表达式的多种写法与注意点以及in操作符的作用
立即表达式,在javascript中非常常见, 采用立即表达式可以形成一个局部作用域, 常配合闭包实现模块化编程等其他用途,接下来我们看看,在大多数的框架中,立即表达式都有哪些写法,以及需要注意的点,另外再介绍下in操作符的用法
1、 通过小括号把函数声明变成表达式, 然后再外面加个小括号 就可以达到立即调用的效果
1 (function(){ 2 console.log( 'ghostwu' ); 3 })();
2、!号 把函数声明转化成表达式,再调用
1 !function(){ 2 console.log( 'ghostwu' ); 3 }();
3、+号 把函数声明转化成表达式,再调用
1 +function(){ 2 console.log( 'ghostwu' ); 3 }();
4、-号 把函数声明转化成表达式,再调用
1 -function(){ 2 console.log( 'ghostwu' ); 3 }();
5、波浪符 把函数声明转表达式,再调用
1 ~function(){ 2 console.log( 'ghostwu' ); 3 }();
6、把调用写在表达式里面
1 (function(){ 2 console.log( 'ghostwu' ); 3 }());
使用立即表达式,需要注意的地方:
一、1被当做函数调用, 原因在与 没有用分号 把语句隔断,产生歧义
1 //报错, 1被当做函数 1() 2 var n = 1 3 (function(){ console.log( 'ghostwu' ) })()
1 var n = 1; 2 // (function(){ console.log( 'ghostwu' ) })() 3 ;(function(){ console.log( 'ghostwu' ) })()
上例为正确的做法
二、下面这种写法,两个立即表达式, 没有用分号隔开,同样产生歧义,报错
1 (function(){ console.log('ghostwu1') })() 2 (function(){ console.log('ghostwu2') })()
正确的写法:
1 ;(function(){ console.log('ghostwu1') })() 2 ;(function(){ console.log('ghostwu2') })()
小结:当使用正则表达式, 应该在他的前面加上分号, 在代码压缩的时候就不会出错
1 function CreateObj(){ 2 // this.name = 'ghostwu'; //true 3 } 4 CreateObj.prototype.name = 'ghostwu'; //true 5 var obj = new CreateObj(); 6 console.log( 'name' in obj );
1 var myObj = { 2 age : 22 3 }; 4 console.log( 'age' in myObj ); //true 5 console.log( 'sex' in myObj ); //false
转载于:https://www.cnblogs.com/ghostwu/p/7348296.html
立即表达式的多种写法与注意点以及in操作符的作用相关推荐
- python中if else语句用法_Python中if-else语句的多种写法
原博文 2017-02-06 10:24 − 初学Python在看程序时发现python中if-else的多种写法,故对其进行分析. 以下为网络内容: a, b, c = 1, 2, 3 1.常规 i ...
- Python中if-else语句的多种写法
初学Python在看程序时发现python中if-else的多种写法,故对其进行分析. 以下为网络内容: a, b, c = 1, 2, 3 1.常规 if a>b: c = a else: c ...
- JavaScript绑定键盘事件的多种写法
使用JavaScript来绑定键盘事件时,有多种写法,而他们的实现效果实际上是等价的,下面一一来列举. 方式一: function keyboard() {document.onkeydown = f ...
- 冒泡排序的多种写法、逻辑
冒泡排序的多种写法.逻辑 本文提供全流程,中文翻译. Chinar坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 Bubble Sort - ...
- asp.net 连接字符串的多种写法
一.使用OleDbConnection对象连接OLE DB数据源 1.连接Access 数据库 Access 2000: "provider=Microsoft.Jet.Oledb.3.5; ...
- Python:for的多种写法
>>> list = [1, 2, 3, 4, 5, 6] # 常规写法 >>> for i in list:print(i) 1 2 3 4 5 6# 加上对迭代 ...
- 条件if语句的多种写法
条件语句(if-else)的多种写法 在写一些条件语句的时候可以根据自己的喜好选择写法,而不是千篇一律的第一种写法,也可以提高代码的美观程度;后几种酌情使用,一般来说前两种就行了,用后面几种要小心喽
- 实践中的重构11_茴香豆的多种写法
鲁迅先生的名文孔乙己中,孔乙己纠结于茴香豆的茴字有多种写法,可惜小孩子不愿意学,可惜了孔乙己的一片良苦用心. 一个功能,不同的程序员的实现,基于各种因素,可能是千差万别的.即使是同一个程序员,一般也会 ...
- 把算术表达式 表示为一个c语言表达式,正确的写法是____,C与C++程序设计-中国大学mooc-题库零氪...
第一周:从问题到C语言程序设计 1.1 计算机的问题求解方法随堂测验 1.算法的描述方法除了自然语言之外,还包括: A.流程图 B.NS流程图 C.伪代码 D.程序语言 2.结构化程序设计方法包含三种 ...
最新文章
- async await:比requests 更强大
- 使用脚本编写 Vim 编辑器,第 5 部分: 事件驱动的脚本编写和自动化
- Centos7.0-安装docker
- 【Java设计模式】工厂模式
- linux中登录p4后,linux下perforce(p4)的使用方法和命令
- [图神经网络] 图节点Node表示---GAT
- Indian Buffet Process(印度自助餐过程)介绍
- oracle 循环继续,oracle – 是否可以继续从异常循环?
- 使用Rich Edit控件
- 光储充一体化充电站_【储能项目】国家电网与浙江瓯江口新区共建光储充一体化充电站项目...
- 计算机科学工学,2016考研工学类专业介绍:计算机科学与技术
- 【学习笔记-1】- 非线性规划的最优性一阶/二阶必要条件之例题(12道)
- 根据仿人人客户端教程,编程实现Demo
- 设置手机最小宽度为1000,无限重启怎么办
- Pycharm Professional Edition 激活码(license),有效期至2018年01月30日
- 拆解:比银行卡面积还小的充电宝,怎么做到10000mAh?
- Win 10 部分软件的界面模糊问题
- warning: TCG doesn‘t support requested feature: CPUID.01H:ECX.vmx [bit 5]
- 用HTML5实现手机摇一摇的功能并配上声音
- 波数与波长 matlab,波长与波数的关系为.PPT
热门文章
- 深度学习(七十)darknet 实现编写mobilenet源码
- c++ list 获取元素_Python中最常见的10个问题(list)
- mac睡眠快捷键_mac键盘快捷键大全哪里有?
- c++ 命令行错误: 无法打开 元数据 文件_PostgreSQL:强大的开源对象关系数据库管理系统...
- 2016版系统集成项目管理工程师考试题型举例
- 新版本vsphere支持最大单个vmdk超过2T,理论上支持最大62T
- 展望10年内VR技术的盈利模式的发展历程
- cocos2d 入门必备4个基本概念
- 「雕爷学编程」Arduino动手做(28)——RGB全彩LED模块
- python之路——面向对象进阶