JS学习笔记day4

一、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对象中,属性值函数体)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值