10.19JS日记

1、函数   关键词(function)

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

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

console.log(b)   undefined

console.log(a)    is not defined

a=12;

var b=13;

因为a没有带var,所以不存在变量提升,浏览器会把它当成window的属性(window.a=12)

function也是js的关键字,用于声明和定义函数的,声明和定义都在内存模块中同时完成,因此。函数

也有变量提升这个功能

2、函数的定义:函数是具有一定功能的代码块

函数是通过function定义的,function后边是函数名(自己取)

函数的语法结构:function(){}

通过分析图可以发现,内存模块只存var的变量名,儿函数是存整个代码块

函数的四种定义方式

<1>声明式定义  function fn(){}

<2>表达式定义var an=function(){}

 匿名函数

<3>自调用  定义和调用同时完成

<4>通过对象的形式  var a=new Function{}

-函数调用  函数名()

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

按需使用可以提升性能,重复使用,可以减少代码冗余

-函数调用的过程

函数执行时会形成一个自己的私有空间,最大的作用域是window,然后执行里面的代码块

-作用域链

函数内部的变量被使用时,首先会在自己的私有作用域下查找是否有这个变量,有就直接使用

没有就会向他的上一级查找,父级有就使用父级,父级没有就会继续向上查找,直到window为止

,window有就使用window,没有就is not defined,这种查找机制叫做作用域链

-函数归属谁,跟他在哪儿调用没有瓜子,而是在哪儿定义

-函数递归,函数自己调用自己

function fn(){

  console.log(5)

  fn()

}

fn()

-break黑人continue运算

break:终止当前运算

continue:跳出当前运算,执行下一个

return :返回的

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

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

function fn(){

  console.log(12)

  return=45;

}

var as=fn() fn执行后将自己的返回值undefined给as

console.log(as) undefined

console.log(as) 45  fn执行后将自己的返回值45给as,且return下的代码不再执行

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

-函数外的变量叫全局变量,函数内的变量叫做私有变量,看变量归谁,就看他在哪个作用域下声明

-私有变量的种类

<1>在私有作用域下声明的

<2>通过函数传参的私有变量

-函数传参 arguments

function (a,b,c,d){}

a,b,c,d:都是参数

案例

 

 

 

posted on 2018-10-21 20:58  萬事順意  阅读(97)  评论(0编辑  收藏  举报