JavaScript数组 、 函数 、作用域 、 预解析

数组

数组就是若干数据组成的集合

创建数组
-1. var arr = new Array();
-2. var arr = [];

数组中的每一个数据都称为数组的元素
数组中自动对每一个元素都做了编号–索引值
所以我们可以通过索引值将指定数据取出来----索引值从0开始

eg: arr[2]; --如果编号不存在,得到的数据为undefined;

遍历数组
就是将数组中的所有元素逐个访问一遍

使用循环来做

for (var i = 0; i < arr.length; i++) {
    arr[i];
} //顺序遍历
for (var i = arr.length - 1; i >= 0; i--) {
    arr[i];
} // 倒序遍历

数组的长度
数组名.length 获取数组长度,数组长度就是数组中数据的个数
设置数组的长度
arr.length = 5;
如果设置的数值大于原数组的长度,就会有控位置;如果小于原数组的长度,会删除多余的元素;
arr.length = 0; 清空数组

可以使用 arr[arr.length] = 新数据 的方式为数组添加新元素;

函数

函数声明 语法:

function 函数名(形参1,形参2,...) {
	函数操作;
} // 函数声明之后 内部的代码并不会执行 , 只有在调用函数时才会执行。
//调用函数 语法:
函数名(数据1,数据2,...);

函数的参数:函数声明时写在小括号里的是形参,相当于不用声明的变量,只在函数内部有效;
函数调用时写在小括号里的数据就是实参,相当于给形参赋值;

实参和形参的匹配问题:一对一按先后顺序进行赋值;如果实参多于形参,多出来的实参是无效的;如果形参多于实参,没接收到值的形参默认undefined;

函数的返回值
函数的返回值就是 函数调用语句 整体的值,在函数中使用return 值;
注意: return会结束整个函数,return后面的语句会不再执行;
return只能返回一个值,如果写了多个数据,会返回最后一个值;
如果return后面没有写值,或者没有写return 则返回值为undefined;

arguments
arguments中包括了所有传入的实参,arguments是一个伪数组,可以使用索引值来调用里面的实参;
arguments只能在函数中使用,虽然有数组的一些特性,但不是数组,所以称为伪数组;

作用域

概念:变量的有效范围;
全局作用域–整个页面有效;
局部作用域–只在函数内部有效,注意:只有在函数调用时,可以在全局作用域中划分出局部作用域;

变量可以根据作用域分为两类:全局变量和局部变量
在全局作用域中声明的变量和未声明就直接使用的变量称为–全局变量;
在局部作用域中声明的变量和函数的形参称为–局部变量;

作用域链
操作某个变量时,会从当前作用域向上层查找该变量;
如果到全局作用域中仍未有该变量,会有两种情况:
-1.如果是获取值的操作会报错;
-2.如果是赋值操作,会在全局作用域中默认声明了该变量,此变量就被设置为了全局变量;

预解析(声明提升)

js引擎在执行代码时,会把代码的声明部分提前执行–(var声明变量 和 function声明函数)
-1.变量提升:变量的初始化可以看作为两句代码——声明变量、给变量赋值;
变量提升就是将声明变量的操作提升到当前作用域的最前面;
-2.函数提升:把所有的function声明提升到当前作用域的最前面;

注意:
声明提升时,变量提升在函数提升的前面;在所有的作用域执行代码之前都会先进性预解析。

!!!
变量的声明放在赋值的后面和放在赋值之前的效果是一样的,因为在执行函数之前,js引擎会自动把声明操作放到最前面去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值