函数是抽取写好的js代码,作为一个通用的代码块(封装)
减少代码冗余,方便调用,便于维护
函数带括号就是函数,函数没有调用就不会执行
第一种声明
function 函数名(参数1,参数2,..){
console.log(需要进行的操作)
}
function add(){//add是函数名 console.log("hello world");//函数体 }add()
第二种声明
var 变量名 = function (){
函数体
}
var fn = function(){//fn是应该变量名,表示当前fn是一个函数,fn是表示这个函数 console.log('hello world'); }fn()//调用 使用变量名()
第三种声明
使用new的方式 不常用 凡是使用new的都是对象
var fn = new function('console,log('hello world')') fn()//调用
在初始状态页面加载时,js有限加载function以及对应的变量,但是不会加载变量赋值的过程
return关键字
是用于函数里面返回数据的,没有数据返回的话,默认返回的是undefined
function sum(one, two){ var s = one + two; return s; } sum(2, 8);
作用域:变量的作用范围
全局变量
作用范围为整个程序的执行范围 在函数体外部定义的变量就是全局变量 在函数体内部不使用var定义的也是全局变量
局部变量
作用范围是某个函数体内部 在函数体内部通过var关键字定义的变量或者形参,都是局部变量 当局部变量与全局变量重名时,在函数体内部局部变量优先于全局变量
数据结构
-
栈:先进后出(FILO),在栈顶做插入(压栈)和删除操作(出栈)
-
队列:先进先出(FIFO),在队头做删除操作,在队尾做插入操作
-
堆和它们不同,代码执行时系统动态分配,不存在是先进后出还是先进先出
执行环境栈
变量声明周期
作用域链