数组及操作方法
- 数组的概念
- 数组就是一组数据的集合,javascript中,数组里面的数据可以是不同类型的。
- 定义数组的方法
- 第一种方法:
- 对象的实例创建:var aList = new Array(1,2,3);
- 当创建的数组实例的括号中只有一个数字的时候,带表定义数组的长度,其内容为undefined类型数值;
- 例: var aList = new Array(3); 代表创建了一个长度为3的数组
- 第二种方法:
- 直接创建:var aList2 = [1,2,3,'asd'];
- 操作数组中数据的方法:
- 1、获取数组的长度:aList.length;
- var aList = [1,2,3,4];
- alert(aList.length); // 弹出4
- 2、用下标取出数组的某个数据:aList[0];
- var aList = [1,2,3,4];
- alert(aList[0]); // 弹出1
- 当想取出数值没有对应的下标的时候,不会报错,会取出一个undefined类型的数值;
- 3、push() 和 pop() 从数组最后增加成员或删除成员
- var aList = [1,2,3,4];
- aList.push(5);
- alert(aList); //弹出1,2,3,4,5
- aList.pop();
- alert(aList); // 弹出1,2,3,4
- 4、unshift()和shift()在数组的最前面添加和删除一个值
- aList.unshift(5); 在数组的最前边添加一个整数5
- aList.shift(); 删除数组的第一个值
- 4、splice() 在数组中增加或删除成员
- var aList = [1,2,3,4];
- aList.splice(2,1,7,8,9); //从第索引为2的元素开始,删除1个元素,然后在此位置增加'7,8,9'三个元素
- alert(aList); //弹出 1,2,7,8,9,4
- 5、indexOf()和 lastIndextOf()返回数组中元素第一次出现和最后一次出现的索引
- var aList = [1,2,3,4,1,3,4];
- aList.indexOf(1); 返回第一次出现1的位置的索引
- aList.lastIndextOf(1); 返回最后一次出现1的位置的索引
- 注意:当先要寻找的数值不存在数组中的时候,会返回-1;
- 6、reverse() 将数组反转
- var aList = [1,2,3,4];
- aList.reverse();
- alert(aList); // 弹出4,3,2,1
- aList.reverse 不仅返回一个反转的数组,也会将原数组反转
- 7、join() 将数组成员通过一个分隔符合并成字符串
- var aList = [1,2,3,4];
- alert(aList.join('-')); // 弹出 1-2-3-4
- 多维数组
- 多维数组的概念:多维数组指的是数组的成员也是数组的数组。
- 操作多维数组的示例:
- var aList = [[1,2,3],['a','b','c']];
- alert(aList[0][1]); //弹出2;
循环语句
- while循环语法
- for循环语法
- 第一种 (要给i初始值,还要给跳出循环的条件和,i自增长)
- 第二种(只需要遍历语句)
- 注意:
- 循环语句可以用break来跳出循环;
- 循环中的 i++ 和 ++i 代表对i进行自加1,++i “先对i进行自加,再执行i所在的语句” i++先执行完i所在的语句在对i进行自加;
字符串处理的方法
- 1、字符串合并操作:“ + ”
- var iNum01 = 12;
- var iNum02 = 24;
- var sNum03 = '12';
- var sTr = 'abc';
- alert(iNum01+iNum02); //弹出36
- alert(iNum01+sNum03); //弹出1212 数字和字符串相加等同于字符串相加
- alert(sNum03+sTr); // 弹出12abc
- 注意:当一个变量个字符串相加的时候,会自动将变量转换成字符串
- 2、parseInt() 将数字字符串转化为整数
- parseInt(sNum02); 将字符串转化为整数
- 3、parseFloat() 将数字字符串转化为小数
- parseFloat(sNum03); 将字符串转化为浮点数
- 4、split() 把一个字符串分隔成字符串组成的数组
- var sTr = '2017-4-22';
- var aRr = sTr.split("-");
- var aRr2= sTr.split("");
- alert(aRr); //弹出['2017','4','2']
- alert(aRr2); //弹出['2','0','1','7','-','4','-','2','2']
- 5、indexOf()和lastindexOf() 查找字符串是否含有某字符
- var sTr = "abcdefgh";
- var iNum = sTr.indexOf("c");
- alert(iNum); //弹出2
- 6、substring() 截取字符串 用法: substring(start,end)(不包括end)
- var sTr = "abcdefghijkl";
- var sTr2 = sTr.substring(3,5);
- var sTr3 = sTr.substring(1); 不写第二个数字默认截取到字符串的最后
- alert(sTr2); //弹出 de
- alert(sTr3); //弹出 bcdefghijkl
- 7、字符串反转
- var str = 'asdfj12jlsdkf098';
- var str2 = str.split('').reverse().join('');
- alert(str2);
Js中的定时器
- 定时器的作用:
- 可以在JavaScript中定时的调用函数,反复的执行一段代码,将元素移动的效果制作成动画;
- 第一种定时器:
- setTimeout 定时只执行一次的定时器
- 使用方法:
- var time1 = setTimeout(myalert,2000); 创建一个2s后执行一次的定时器对象,返回值是定时器的对象
- 第二种创建方法(创建一个执行函数为匿名函数的定时器):
- var time1 = setTimeout(function () { ..... }, 2000);
- clearTimeout(time1); 关闭定时器;
- function myalert(){alert('ok!');} 创建一个供定时器执行的函数
- 第二种定时器:
- setInterval 间隔一定时间反复执行的定时器
- 使用方法:
- var time2 = setInterval(myalert,2000); 创建一个每隔2s反复执行的定时器对象,返回值是定时器的对象
- 第二种创建方法(创建一个执行函数为匿名函数的定时器):
- var time1 = setInterval(function () { ..... }, 2000);
- clearInterval(time2); 关闭定时器;
- time2 = = setTimeout(myalert,2000); 再次开启定时器的方法
- 注意:
- 不能在函数中用var 创建的方式来重新启动定时器,这样会在启动一个定时器的同时,也同样开启了全局的定时器;
- 注意不要在不同的事件中反复开启定时器,这样会造成在多个异步程序中执行定时器的现象
- function myalert(){alert('ok!');} 创建一个供定时器执行的函数
- 定时器开始执行的时间
- 定时器和js主程序可以理解为时异步执行的,可以认为是在js代码在执行到创建一个定时器的时候会创建一个新的线程来执行定时器的执行函数;
JavaScript变量作用域、封闭函数
- 全局变量及作用域
- 在函数之外定义的变量,为整个页面公用,函数内部外部都可以访问也可以进行修改。
- 局部变量及作用域
- 在函数内部定义的变量,只能在定义该变量的函数内部访问,外部无法访问
- 封闭函数
- 封闭函数的特点
- 封闭函数就是匿名函数的另一种写法,创建一个已创建完成就执行而不需要命名的函数,可以简化代码,也可以避免变量之间的冲突;
- 定义封闭函数的方法
- 第一种方法:在匿名函数的外边加一个括号后执行
- 第二种方法:在匿名函数之前加上一些符号后执行
- 可以将匿名函数转化为封闭函数的符号{!/~/+/-}
- 封闭函数的作用
- 封闭函数可以创造一个独立的空间,在封闭函数内定义的变量和函数不会影响外部同名的函数和变量,可以避免命名冲突,在页面上引入多个js文件时,用这种方式添加js文件比较安全
javascript定义自定义对象
- 自定义对象:
- 可以在js中可以自定义一个对象来存储一些相关联的数据和方法作为对象的属性的方法,可以在外部直接调用和修改对象的属性和方法;
- 定义对象的示例:
- 第一种方法
- 第二种方法
调试程序的方法
- 1、alert “浏览器弹框”
- 2、console.log “增加log,在调试器中显示 (最常用)”
- 3、document.title “改变文件的标题title”