一、break和continue:
1、break:结束当前的循环
2、continue:跳过本次循环,继续下一次,只能在循环中使用
二、变量提升和函数提升
1、变量提升:用var声明的变量存在变量提升,只提升声明(变量名),不提升赋值

2、函数提升:用function声明的函数存在函数提升,提升函数体

不能通过typeof判断数组



三、函数
1、函数的声明:
1.1函数式 function 函数名(){}
1.2·声明式 var 变量=function(){}(匿名函数) 先声明再调用,存在变量提升
1.3 .new new .Function( "//js代码")
2、函数的调用
函数名()

存在函数提升

存在变量提升
3、函数的返回值(函数的执行结果)
3.1、函数没有return,函数的返回值为undefined

3.2、return后面没有参数,函数的返回值为undefined

3.3、return后面有参数,函数的返回值为return后面的参数
return后面的代码不会执行

4、函数传参:
形参:声明函数的小括号中(变量)
实参:调用函数的小括号中(实际的参数,可以是任意数据类型)

练习:

四、argument对象(类数组对象):
本质是对象,有length属性(属性值是实参)不能使用数组的方法
适用:实参个数不一定

五、作用域
1、全局作用域(全局变量):
在函数外部var声明的变量或者函数内部没有用var声明的变量全局作用域会一直占用空问,直到关闭页面全局作用域才会被销毁
2、局部作用域/函数作用域(局部变量):
在函数内部用var声明的变量
每次调用函数会生成局部作用域,函数执行完毕,作用域被销毁
3、执行代码之前的操作:
a.语法检查 b预编译 c执行代码
3.1·全局预编译
a.创建一个Go(Global object) == window对象
b.变量提升 (找到var声明的变量,变量名作为属性名添加到GO对象中,属性值undefined)
c.函数提升 (找到function声明的函数,函数名作为属性名添加到GO对象中,属性值函数体)
3.2、局部预编译
a.创建一个AO对象(执行期上下文)
b.变量提升(找到var声明的变量和形参,变量名和形参名作为属性名添加到AO对象中,属性值undefined)
c.将实参赋值给形参
d.函数提升(找到function声明的函数,函数名作为属性名添加到中AO对象中,属性值函数体)
1268

被折叠的 条评论
为什么被折叠?



