var是js的关键字,用于声明变量,声明在内存模块完成,定义在执行模块完成。
var可以在内存模块执行前完成所以有变量提升这个功能
function是js的关键字,用于声明和定义函数的,声明和定义都在内存模块完成
function也是内存模块提前完成,所以有函数提升这个功能
变量提升和函数提升 都叫预解释,都是浏览器的
函数的定义 :具有一定功能的代码块
函数定义的4种方式:1声明定义 function fn(){}
2 表达式定义 var fn=function(){} 匿名函数
3 字调用 定义和调用同时完成
4 通过对象的形象进行定义 var as =new function()
函数调用最大的优势,会形成一个独立的模块,可以按需使用,可以重复使用,按需使用可以提升性能,
重复使用 减少代码冗余
函数调用的过程:函数执行时 会形成一个自已的私有作用域 最大的作用域是window (全局作用域) 然后执行函数中的代码块
函数是通过function定义的,function后跟的是函数名
内存模块只存var的变量名,而存function 的整个代码,因为声明定义同时完成
函数的语法和注意事项:1:必须要带function
2:fn() 小括号必须的带里边放参数 函数名可有可无,有名的叫有名函数 无名的叫匿名函数
作用链接:函数内部的变量被使用时,首先会在自已的私有作用域下查找是否有这个量,有就直接使用 ,没有就向他的上一级查找
父级有就使用父级的,父级没有就会继续向上查找直到找到window,window有就使用 没有就说is not defined 这种查找就说作用链接
函数归属谁 跟它的定义有关 与调用无关
函数递归:函数在内部调用自已
break 终止当前程序
continue 跳过当前程序执行下一个
break 和continue 只可以用在循环语句中如果条件语句想使用break 只可以使用return
return 返回的
每一个函数都有一个返回值,如果函数人为return那么返回什么就是什么,如果没有人为返回那就是undefined 并且return后面的代码不在执行
函数内部的return不影响函数内部的预解释
函数外的变量叫全局变量,函数内的变量叫私有变量
看变量归谁,看他在那个作用域下声明
私有变量的种类
1 在私有作用域的声明的
2 通过函数传参的叫私有变量
函数传参 arguments
function fn(a b c)括号里边的 a b c 的就叫做传参
console.dir(fn)