一、数组
概念:数组(Array)就是一组数据的集合,存储在单个变量下。 数组中可以存放任意类型的数据,例如:数字,字符串,布尔值等。
创建数组
1、 利用new 创建数组
var 数组名 = new Array();
var arr = new Array();
注意:Array 中的 A 是大写。
2、 利用数组字面量创建数组(最常用)
数组的字面量是方括号[ ]。
var arr = [];
var arr1 = [1, 2, '字符串也可以', true];
注意:数组元素用逗号隔开。
访问数组元素
1、数组索引 索引:访问数组元素的序号,从0开始
var arr = [1, 2,3];
console.log(arr[0]);
遍历数组
利用for循环遍历数组
var arr = [1, 2, 3, 4, 5];
for (var i = 0; i < 5 ; i++){
console.log(arr[i]);
}
数组长度
数组名.length : 动态检测数组长度。
var arr = [1, 2, 3];
console.log(arr.length);
for (var i = 0; i < arr.length ; i++){
console.log(arr[i]);
}
数组中新增元素(常用)
var arr = ['red','green','blue'];
arr.length = 5;
console.log(arr);
console.log(arr[4]; // undefined
var arr1 = ['red','green','blue'];
arr1[3] = 'balck';
console.log(arr1);
arr1[0] = 'pink'; // 这里实现的是替换
console.log(arr1);
注意:不要直接给数组名赋值,否则里面的数组元素都无了。
二、函数
函数就是封装了一段可以重复被执行调用的代码块。
函数的使用
1、声明函数 声明函数方法1:
function 函数名(){
//函数体
}
注意:function 是声明函数的关键字, 全部小写。 函数是做某件事,所以函数名一般用动词 函数不调用不会执行
声明函数方法2:
利用函数表达式(匿名函数),也可以进行参数传递。
// var 变量名 = function(){}
var fun = function(){ //fun是变量
console.log('我是函数表达式');
}
fun();
2、调用函数 注意:函数名后面要加小括号。
函数的参数
参数的作用:在函数内部某些值不固定时,可以通过参数在调用函数时传递不同的值进去。 关系:形参是接受实参的。形参相当于不用声明的变量。
function 函数名(形参1,形参2...){ //声明函数的次奥括号里面是 形参
}
函数名(实参1,实参2....); //函数调用时的参数就是实参
注意:
- 如果实参的个数和形参个数一样,则正常输出。
- 如果实参的个数多余形参的个数,会取到形参的个数。
- 如果实参的个数小于形参的个数,那么多余的形参就是undefined,最终结果就是NaN。
函数的返回值
返回值用return。
注意: return的另外一个作用是终止函数。 函数没有return,就会返回undefined。 return 不仅可以退出循环,还能够返回值,同时还可以结束当前的函数体中的代码。
arguments
只有函数才有arguments对象,而且是每个函数都内置好了这个arguments。 arguments里面存放了所有传递过来的实参,以数组的方式(伪数组,并不是真正意义上的数组)。
注意:
- 只有数组才有length属性。
- 数组按照索引方式进行存储。
- arguments它没有真正数组的一些方法,比如pop(), push()等。
函数调用
函数之间可以相互调用,函数也可以调用自身。
三、作用域
JavaScript作用域:就是代码名字(变量)在某个范围内起作用和效果,目的提高程序的可靠性,减少命名冲突。
JS作用域分为全局作用域和局部作用域。
- 全局作用域:整个script标签或者一个单独的JS文件。
- 局部作用域(函数作用域):在函数内部起作用。
变量的作用域
1、全局变量
- 全局都可以使用
- 如果函数内部,没有声明(函数外部以声明)直接赋值的变量也属于全局变量。
2、局部变量
函数的形参也可以看做局部变量
3、区别
- 全局变量只有在浏览器关闭的时候才会销毁,比较占资源。
- 局部变量 当我们执行完程序完毕就会销毁,比较节省资源。
作用域链
内部函数访问外部函数,通过链式查找的方法来获取想要的值,采取的是就近原则。