javascript 函数注意问题 作用域 预解析 argument == 对象 ===伪数组
函数案例== 案例==重点
函数注意问题 = =自己总结
函数作用域 == 变量在哪里申明和使用的问题
预解析 == 分析什么事预解析 发生了什么事
对象 ====重点中的重点 JS 后边就轻松了 ===什么是对象== 找对象
argument == 对象 ===伪数组
函数外面的num和参数num不是同一个变量(不是同一块空间) 【相同名字】
转到定义 可以看函数构造
函数里面可以调用其他函数 函数可以作为参数使用 函数做位返回值使用
console.log(arguments.length)//函数在调用的时候 传入的参数个数
console.log(arguments)//arguments对象可以获取传入 参数的值
函数定义:
命名函数 匿名函数 申明然后调用 调用:函数代码() 或者 函数名()
匿名函数不能直接调用! 通过给匿名函数一个空间变量 然后调用 俗称:函数表达式 函数自调用(一次性 方便安全)
函数定义:函数申明 函数表达式 函数自调用
函数也是一种数据类型 数据类型 是function
作为参数的函数是不回调的函数 作为调函数的函数是 回调函数
函数还可以作为返回值使用
参数和rutern 可以返回任意类型
作用域
/*作用域:使用范围
*
* 全局变量: var 页面不关闭就不会释放 就会占据空间 消耗内存
*
* 局部变量: 在函数内部定义的变量
*
* 全局作用域:全局变量使用范围
*
* 局部作用域:局部变量使用的范围
*
* 块级作用域:{}
*
* 隐式全局变量 :没有VAR
*
* 全局变量是不会被删 隐式能删除数据
* ********/
/*作用域链 由多个作用域组成的区域 (函数嵌套) 找变量遵循就近原则 */
/*预解析!!
********
* 提前解析
* 把变量声明提前 函数提前
*
* 在解析代码之前 把变量声明还有函数申明提前 提前到当前所在作用域的最上边
*
* 变量申明 》 函数申明
*
* 预解析会分段(多对script标签,函数重名不会冲突 互不影响)
*
* js解析器 : 两个过程 1 预解析 然后执行代码
*
* */