(一)数组
1 .数组的含义:数组就是一组数据的集合,其中的每个数据被称为元素,在数组中可以存放任意类型的元素,数组是将一组数据存储在单个变量名下的优雅方式。
2 .数组的创建方式:
通过new关键字来创建数组,
var arr = new Array();//创建一个空数组
var array = new Array(1, 2, 3, 4);//创建一个有初始元素的数组
通过字面量来创建数组,
var arr = [];//创建一个空数组
var array = [1, true, '字符串', 4];//数组里可以存储任意类型的元素
3 .获取数组中的元素:索引,索引从0开始计数
数组可以通过索引(下标)来访问、修改、设置数组中对应的元素,语法:数组名[索引]
var array = [1, true, '字符串', 4];
console.log(array[0]);// 1
console.log(array[4]);// undefined
4 .数组的遍历
遍历就是把数组中的所有元素访问一次,通过循环来实现
var array = [1, true, '字符串', 4];
for (var i = 0; i < array.length; i++) {// length 数组的长度
console.log(array[i]); // i 就作为数组的索引号
}
5. 常用数组方法
将数组转换为字符串:
toString() 返回一个转换完的新字符串,以逗号分隔
var array = [1, true, '字符串', 4];
array = array.toString();//'1,true,字符串,4'
join(分隔符) 返回一个转换完的新字符串,以自定义的分隔符分隔
var array = [1, true, '字符串', 4];
array = array.join('|');//'1|true|字符串|4'
数组元素的添加和删除:
直接赋值追加:
var array = [1, true, '字符串', 4];
array[5] = 5; // [1, true, '字符串', 4, 5]
array[0] = '覆盖'; // ['覆盖', true, '字符串', 4]
push() 在数组末尾添加一个或者多个元素,返回新数组的长度
var array = [1, true, '字符串', 4];
array.push('新增1', '新增2');// [1, true, '字符串', 4, '新增1', '新增2']
unshift() 在数组的开头新增一个或者多个元素,返回新数组的长度
var array = [1, true, '字符串', 4];
array.unshift('新增1', '新增2'); // ['新增1', '新增2', 1, true, '字符串', 4]
pop() 弹出(删除)数组最后一个元素,返回该元素
var array = [1, true, '字符串', 4];
var item = array.pop(); // 4
shift() 删除数组第一个元素,返回该元素
var array = [1, true, '字符串', 4];
var item = array.shift(); // 1
反转数组(反序):reverse()
var array = [1, true, '字符串', 4];
array = array.reverse(); // [4, '字符串', true, 1]
(二) 函数
函数的概念:在JS中,可能会定义非常多的相同代码或者功能类似的代码,需要大量重复使用。此时就可以使用JS中的函数。所以函数就是被封装了一段可以被重复调用的代码块。
1 .声明函数:
function 函数名(形参) {函数体} // 函数不调用时不执行的
2 .函数调用:
函数名(实参);
3 .函数的返回值;
① 同时,return可以终止函数,return语句后面的代码不会再执行。
② return只能返回一个值,如果写了多个值,结果以最后一个逗号分隔的值为准
③ 如果没有return返回值,则返回undefined
function 函数名(形参) {
return 需要返回的结果;
}
4 .arguments的使用;
当我们不确定有多少个参数需要传递的时候,可以用arguments来获取,在JS中,arguments实际上是当前函数的一个内置对象,所有函数都内置了一个arguments对象,存储了传递的所有实参。
arguments其实是一个伪数组,,因此可以遍历,伪数组具有以下特点:
① 具有length属性
② 按照索引的方式存储数据
③ 不具有数组的push、pop等方法
5 .函数的两种声明方式:
① 命名函数
function 函数名(形参) {函数体}
函数名();
② 函数表达式(匿名函数)
var 变量名 = function () {}
变量名();
6 .JS内置函数
parseInt() 提取字符串中的数字,只限提取整数
parseFloat() 提取字符串中的数字,可以提取小数
isFinite() 判断某一个数是否是一个有限数值,返回布尔值
isNaN() 判断一个数是否是NaN值,返回布尔值
escape() 对字符串进行编码
var str = '编码';
str = escape(str);
// %u7F16%u7801
unescape() 对字符串进行解码
eval() 把一个字符串当做一个表达式一样去执行
var str = '1 + 2';
str = eval(str);// 3
(三)作用域
作用域的概念: 一段代码中所用用到的名字(变量)并不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,避免了名字冲突。ES6中增加了块级作用域的概念。在ES6之前,作用域分为全局作用域和局部作用域(函数作用域)。
JS中变量的作用域:
① 全局变量:在全局作用域下声明的变量,在浏览器关闭时销毁
② 局部变量:在局部作用域下声明的变量(函数),在函数执行完毕时销毁。