JS学习笔记 - - day04

for…in 和 for…of 的区别:

for…in一般用来遍历对象,key是属性名,key是字符串类型
for…of一般用来遍历可迭代的对象(array,string…),key是属性值

变量提升和函数提升

1.变量提升,只提升变量名,不提升赋值
2.函数提升(function 函数名(){}),提升是函数体
3.变量名和函数名重名,函数提升优先级高于变量提升

函数声明和调用

1.声明函数
声明式: function关键字声明 function 函数名(){}
表达式: var 变量名 = function(){} //可以省略函数名

2.调用函数: 函数名()
如果不调用,函数内部的代码块不会被执行

函数的返回值和函数传参

1.函数的返回值:函数执行的结果
return关键字

          1.1 函数中没有return关键字,函数的返回值是undefined
          1.2 函数中有return关键字,但是return关键字后没有数据,函数的返回值是undefined
          1.3 函数中有return关键字,return关键字后有数据(任意数据类型),函数的返回值是return后面的数据

          注意:
              return返回数据之后,后面的代码不会被执行

2.函数传参
形参:变量,在function声明后的小括号中,相当于在函数内部声明的变量,多个形参用,分隔开
实参:实际的参数,写在函数调用的小括号中,多个实参用,分隔开 实参可以是任意数据类型
传参是一一对应的关系

arguments对象

1.arguments对象(类数组对象)
类数组对象特点:
类数组有长度:元素的个数不能使用数组的方法
获取类数组中的元素:arguments[index] —index从0开始

作用域

作用域:变量使用的范围
全局变量:在web区域内声明的变量,function声明的变量,
局部变量:在function内部声明的变量,在函数声明的内部访问,函数外部不能访问局部变量
全局作用域:顶层对象window上作用的区域
局部作用域(函数作用域):function内部作用的区域,函数执行完毕,函数内部的变量和方法会立即销毁

1.全局预编译(代码执行之前执行的操作)
1.1 创建一个GO(Global Object)对象,相当于window对象
1.2 变量提升,找到var声明的变量,将变量名作为属性名添加到GO对象中,属性值为undefined
1.3 函数提升,找到function声明的函数,将函数名作为属性名添加到GO对象中,属性值为函数体

2.局部预编译(函数预编译):代码执行之前执行的操作
2.1 创建一个AO(acnative Object)对象
2.2 变量提升,找到var声明的变量和形参,将变量名和形参名作为属性名添加到AO对象中,属性值为undefined
2.3 将实参赋值给形参
2.4 函数提升,找到function声明的函数,将函数名作为属性名添加到GO对象中,属性值为函数体

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值