JS函数之---立即执行函数(IIFE)

JavaScript014

JS函数之---立即执行函数(IIFE),第1张

Immediately-Invoked Function Expression(IIFE立即执行函数表达式)

可以让函数在创建后立即执行 必须是一个表达式

1、函数的定义方式一: 函数声明

2、函数的定义方式二: 函数表达式(匿名函数表达式、命名函数表达式)

1、错误写法 直接报错 js引擎看到function关键字会认定后面跟的是函数定义语句,此时后面如果直接加上()会被当做分组操作符,而分组操作符必须有表达式,所以此时报错

2、立即执行函数的正确写法,让js引擎认为这是一个表达式

1、立即执行函数不能再外面再被调用,执行完之后已经被立即销毁了。所以立即执行函数的函数名称可以省略, 统一使用匿名函数表达式

2、由于立即执行函数,执行完后就立即被销毁了 所以它可以创建一个独立的作用域,而且该作用域里面的变量,外面访问不到。因此就可以避免变量污染

正确输出写法:用立即执行函数将i作为参数传入,立即函数每次执行时,会把参数i的值复制一份。然后再创建函数作用域来执行函数

1、立即执行函数和闭包只是有一个共同有点就是都能减少全局变量的使用

2、立即执行函数只是函数的一种调用方式,声明完后立即调用,一般只能调用一次,调用完后会立即被销毁,不会占用内存,有自己的独立作用域,外部不能调用

3、闭包则主要是让外部函数可以访问内部函数的作用域,也减少了全局变量的使用,保证了内部变量的安全,但是被引用的内部变量不会被销毁,增大了内存消耗,使用不当会容易造成内存泄露

可参考: https://www.cnblogs.com/wenxuehai/p/10357274.html

常见的执行js代码都是放入到HTML引入后,然后通过HTML文件来执行胡查看代码。显然这是比较麻烦的事情,如果电脑里面安装了node.js,可以使用node来直接使用node来运行想要运行的js文件。

<html>

<body>

<script language="javascript">

function Card(owner,rate)

{

this.Owner=owner

this.Rate=rate

}

var mycard = new Card("X","150")

document.write("name:"+mycard.Owner+"speed:"+mycard.Rate)

</script>

</body>

</html>

扩展资料:

JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。

脚本简单地说就是一条条的文字命令,这些文字命令是我们可以看到的(如可以用记事本打开查看、编辑),脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。因为脚本在执行时多了一道翻译的过程,所以它比二进制程序执行效率要稍低一些。

参考资料来源:百度百科-JS脚本

我这就不卖关子了,输出的结果分别是:2、4、1、1、2、3、3

不知你答对了吗?

下面进入重点,我们进行分析

要想计算下面这几项,我们需要先了解 js 运算符的执行顺序,可以参考这个网址: 运算符优先级