博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
10.23
阅读量:6279 次
发布时间:2019-06-22

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

  1. 函数 关键词function

复习

Var 是js的关键字,用于声明变量,声明在内存模块完成,定义(=)是在执行模块完成。

Var可以在内存模块提前(js代码执行前)完成所以有变量提升这个功能。

 

因为a没有带var,所以不存在变量提升,浏览器会把他当成window的属性。

Function也是js的关键字,用于声明和定义函数的,声明和定义都在内存模块完成了。

Function 也是内存模块提前完成,所以有函数提升这个功能。

变量提升和函数提升 都叫预解释。都是浏览器的。

 

2.函数的定义:函数:具有一定功能的代码块。

函数是通过function定义的,function 后跟的是函数名。

结构语法

function fn(){}

 

通过上图我们可以发现,内存模块只存var的变量名。而存function整个代码块,因为声明和定义同时完成的。

函数结构的注意的

 

函数定义 通过function 定义  function fn(){}

函数定义的四种方式

  1. 声明式定义 function fn(){}
  2. 表达式式定义   var an=function(){}  匿名函数

 

  1. 自调用

定义和调用同时完成。

 

4.通过 对象的形式   var as=new Function(){}

 

函数调用 函数名()       fn()

函数最大的优势  会形成一个独立的模块,可以按需使用,可以重复使用。

按需使用  可以提升性能    重复使用 减少代码冗(rong 三声)余。

函数调用的过程

函数执行时会形成一个自己的私有作用域。最大的作用域是window(全局作用域)

然后执行函数里面的代码块。

 

案例分析

 

分析图

 

 

 

作用域链:函数内部的变量被使用时,首先会在自己的私有作用域下查找是否有这个变量,有就直接使用,没有就会向他的上一级查找,父级就使用父级的,父级没有就会以此继续向上查找直到window为止,window有就使用没有就is not defined。这种查找机制我们叫作用域链。

 

分析图

 

函数归属谁,跟她在哪调用没有关系,而是在哪定义有关。

函数递归:函数内部内部调用自己。

 

 

Break 和continue运算

Break 终止当前程序

Continue 跳出当前的程序,执行下一个。

Break和continue只能用在循环语句中。如果条件语句想使用break只能使用return。

 

return  返回的

每个函数都有一个返回值,如果函数人为return了,返回什么就是什么。

如果没有人为返回,结果是undefined。并且return后面的代码不在执行了。

 

 

案例分析

 

 

函数内部的return  不影响函数内部的预解释。

函数内外的变量

函数外的变量叫全局变量,函数内的变量叫私有变量。

看变量归谁,看他在哪个作用域下声明。

私有变量的种类

  1. 在私有作用域的声明的。
  2. 通过函数传参的叫私有变量。

函数传参    arguments 参数

Function fn(a,b,c,d){}  将a b c d 叫参数

 

 

 

形参   定义上的参数

实参   执行上的参数

 

 

console.dir(fn) 

转载于:https://www.cnblogs.com/lizi-1com/p/9852317.html

你可能感兴趣的文章
百度云盘demo
查看>>
概率论与数理统计习题
查看>>
初学structs2,简单配置
查看>>
Laravel5.0学习--01 入门
查看>>
时间戳解读
查看>>
sbin/hadoop-daemon.sh: line 165: /tmp/hadoop-hxsyl-journalnode.pid: Permission denied
查看>>
@RequestMapping 用法详解之地址映射
查看>>
254页PPT!这是一份写给NLP研究者的编程指南
查看>>
《Data Warehouse in Action》
查看>>
String 源码浅析(一)
查看>>
Spring Boot 最佳实践(三)模板引擎FreeMarker集成
查看>>
Fescar 发布 0.2.3 版本,支持 Redis 和 Apollo
查看>>
Google MapReduce到底解决什么问题?
查看>>
CCNP-6 OSPF试验2(BSCI)
查看>>
Excel 2013 全新的图表体验
查看>>
openstack 制作大于2TB根分区自动扩容的CENTOS镜像
查看>>
Unbuntu安装遭遇 vmware上的Easy install模式
查看>>
几个常用的ASP木马
查看>>
python分析postfix邮件日志的状态
查看>>
Mysql-5.6.x多实例配置
查看>>