立即执行函数-有关js里function前面加!
转载:https://blog.csdn.net/guodengh/article/details/48372801
我们都知道,函数的声明方式有这两种
function fnA(){alert('msg');}//声明式定义函数
var fnB = function(){alert('msg');}//函数赋值表达式定义函数
函数的调用方式通常是FunctionName()
但是,如果我们尝试为一个“定义函数”末尾加上(),解析器是无法理解的。
function msg(){alert('message');
}();//解析器是无法理解的
定义函数的调用方式应该是 msg(); 那为什么将函数体部分用()包裹起来就可以了呢?
原来,使用括号包裹定义函数体,解析器将会以函数表达式的方式去调用定义函数。也就是说,任何能将函数变成一个函数表达式的作法,都可以使解析器正确的调用定义函数。而 ! 就是其中一个,而 + - || ~都有这样的功能。
另外,用 ! 可能更多的是一个习惯问题,不同的运算符,性能是不同的。
// 这么写会报错,因为这是一个函数定义:
function() {}()// 常见的(多了一对括号),调用匿名函数:
(function() {})()// 但在前面加上一个布尔运算符(只多了一个感叹号),就是表达式了,将执行后面的代码,也就合法实现调用
!function() {}()
立即执行函数-有关js里function前面加!相关推荐
- php function函数用法,js的function函数是什么?js中function的用法
本篇文章给大家带来的内容是关于js的function函数是什么?js中function的用法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. Function与函数 Function是 ...
- 【JS基础】立即执行函数表达式(自执行函数)
立即执行函数表达式 立即执行函数表达式,大部分人也称为自执行函数. 自执行函数的写法 匿名函数 (function() {console.log(2) })() 具名函数 (function log( ...
- html自动执行函数,JS 自执行函数原理及用法
js自执行函数,听到这个名字,首先会联想到函数.接下来,我来定义一个函数: function aaa(a,b){ return sum = a + b } 定义了一个名为aaa的函数,在里面可以计算两 ...
- 2020-06-28 html的实现页面锁屏 + css的BFC与float + js的立即执行函数写法 + 颜色搭配
2020-06-28 题目来源:http://www.h-camel.com/index.html [html] 实现一个页面锁屏的功能 锁屏的最终效果就是退出登录,思路是 点击锁屏按钮等操作时 使t ...
- js 立即执行函数传参问题
正确的执行函数写法如下: (function func(i) {console.log(i);})(j);(function func(i) {console.log(i);}(j));!(funct ...
- JS作用域、立即执行函数、闭包
作用域 首先先介绍一下作用域等一些基础概念. 每个JavaScript函数都是一个对象,对象中有些属性我们可以访问,但有些不可以,这些属性仅供JavaScript引擎存取,[[scope]]就是其中一 ...
- IIFE(立即执行函数表达式)
我们经常会看到这样的写法: ;(fuction () {// do something })() 这就是一个简单的IIFE(立即执行函数表达式,immediately-invoked function ...
- php 立即执行函数,关于javascrip的立即执行函数的解析
这篇文章主要介绍了关于javascrip的t立即执行函数的解析,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 概念: 立即执行函数顾名思义就是函数定义好之后立即执行. 函数表达式方式: ...
- (42)2021-03-01(物体运动、swiper软件、自执行函数)
物体运动.swiper软件.自执行函数 (一).物体运动 一.物体运动 二.分享1 三.分享2 四.淡入淡出 五.缓冲运动 六.缓冲运动案例 七.多物体运动 八.offset的问题 九.多样式运动 十 ...
最新文章
- 【冰极峰教程系列之二】:牢不可破的九宫格布局
- 智慧农业物联网云平台方案
- i java_Java中的i++和i--
- 研究人员表示Wi-Fi WPA3有重多的安全漏洞
- 实现Datagrid分页
- P2257 YY的GCD
- git 常用commands(转)
- Android开发小技巧之商品属性筛选与商品筛选
- asp.net mvc(九)
- vue 父组件获取接口值传到子组件_vue 项目中 “父组件” 异步获取数据之后,传递给子组件不显示...
- 面向对象基础(继承类,抽象方法,接口,委托和事件)
- iOS 实现语音播报
- python 类的细节
- java 中如何临时保存某输入值_java笔记临时存放
- php实现高并发解决方案
- 蓝牙低功耗音频技术 -- 1 背景和遗产
- Hexo NexT 添加背景图片
- 【超图+CESIUM】【基础API使用示例】45、超图|CESIUM - 点光源设置
- RPL协议的原理与安全机制
- CTF杂项小结--沙窝李的王
热门文章
- 人员定位系统的市场应用价值
- 语音视频聊天时会产生爆音
- Adobe 数字出版解决方案 Digital Publishing Suite (Indesign 制作iPad电子书) 系列之二: 制作流程的介绍
- 【LeetCode 655】输出二叉树
- 中国反渗透膜阻垢剂市场行业现状分析及发展趋势预测报告2022-2028年
- Java基础 - 1 OOP思想
- 【成功解决】错误使用 mex 未找到支持的编译器或 SDK。您可以安装免费提供的 MinGW-w64 C/C++ 编译器
- ng-zorro table怎么更改滚动条样式
- 饿了么薅羊毛时刻正式开启
- 十年磨一剑,SparkSQL来一题!