博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
立即表达式的多种写法与注意点以及in操作符的作用
阅读量:5792 次
发布时间:2019-06-18

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

立即表达式,在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 = 13         (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') })()

小结:当使用立即表达式, 应该在他的前面加上分号, 在代码压缩的时候就不会出错

in操作符: 判断属性是否在一个对象或者他的原型上

1         function CreateObj(){2             // this.name = 'ghostwu'; //true3         }4         CreateObj.prototype.name = 'ghostwu'; //true5         var obj = new CreateObj();6         console.log( 'name' in obj );
1         var myObj = {2             age : 223         };4         console.log( 'age' in myObj ); //true5         console.log( 'sex' in myObj ); //false

转载地址:http://khwfx.baihongyu.com/

你可能感兴趣的文章
Hadoop HDFS编程 API入门系列之路径过滤上传多个文件到HDFS(二)
查看>>
Python version 2.7 required, which was not foun...
查看>>
context:annotation-config vs component-scan
查看>>
经典sql
查看>>
CSS3边框会动的信封
查看>>
JavaWeb实例设计思路(订单管理系统)
查看>>
source insight中的快捷键总结
查看>>
PC-IIS因为端口问题报错的解决方法
查看>>
java四种线程池简介,使用
查看>>
ios View之间的切换 屏幕旋转
查看>>
typedef BOOL(WINAPI *MYFUNC) (HWND,COLORREF,BYTE,DWORD);语句的理解
查看>>
jsp 特殊标签
查看>>
[BZOJ] 1012 [JSOI2008]最大数maxnumber
查看>>
gauss消元
查看>>
多线程-ReentrantLock
查看>>
数据结构之链表与哈希表
查看>>
IIS7/8下提示 HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求...
查看>>
http返回状态码含义
查看>>
响应式网站对百度友好关键
查看>>
洛谷P2179 骑行川藏
查看>>