分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

[js高手之路]立即表达式的多种写法与注意点以及in操作符的作用

发布时间:2023-09-06 01:06责任编辑:彭小芳关键词:js

立即表达式,在javascript中非常常见, 采用立即表达式可以形成一个局部作用域, 常配合闭包实现模块化编程等其他用途,接下来我们看看,在大多数的框架中,立即表达式都有哪些写法,以及需要注意的点,另外再介绍下in操作符的用法

一、通过小括号把函数声明变成表达式, 然后再外面加个小括号 就可以达到立即调用的效果

1         (function(){

2             console.log( ‘ghostwu‘ );

3         })();


二、!号 把函数声明转化成表达式,再调用


1         !function(){

2             console.log( ‘ghostwu‘ );

3         }();


三、+号 把函数声明转化成表达式,再调用


1         +function(){

2             console.log( ‘ghostwu‘ );

3         }();


四、-号 把函数声明转化成表达式,再调用


1         -function(){

2             console.log( ‘ghostwu‘ );

3         }();


五、波浪符 把函数声明转表达式,再调用


1         ~function(){

2             console.log( ‘ghostwu‘ );

3         }();


六、把调用写在表达式里面


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‘) })()


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

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

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

本文出自 “ghostwu” 博客,请务必保留此出处http://ghostwu.blog.51cto.com/11192807/1959334

[js高手之路]立即表达式的多种写法与注意点以及in操作符的作用

原文地址:http://ghostwu.blog.51cto.com/11192807/1959334

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved