知识内容:
1.JavaScript中的数组
2.JavaScript中的字符串
一、JavaScript中的数组
1.JavaScript中的数组是什么
数组指的是数据的有序列表,每种语言基本上都有数组这个概念,但是JavaScript的数组跟别的语言的数组很不同:
- 数组长度可以动态改变
- 同一个数组中可以存储不同的数据类型
- 数据的有序集合
- 每个数组都有一个length属性,表示的是数组中元素的个数
JavaScript数组从本质上讲是一个Array对象
2.如何创建数组
1 var s1 = ["123", "666", "333"] // 字面量 2 var s2 = new Array("123", "666", "333") // 构造函数 3 console.log(s1) 4 console.log(s2)
3.访问、修改数组元素
1 //创建一个长度为 5 的数据 2 var arr = [10, 20, 30, 40, 50]; 3 console.log(arr[0]); //获取下标为 0 的元素, 即:10 4 console.log(arr[2]); //获取下标为 2 的元素, 即:30 5 6 arr[1] = 100; //把下标为 1 的元素赋值为100 7 console.log(arr)
4.遍历数组
有3种方法可以遍历数组:
- for循环
- for… in
- for each ( ES5 新增)
以下3种循环方法只要熟练掌握一种就可以了
1 // 普通for循环遍历数组 2 var arr = [3, 9, 12, 13, 66]; 3 for(var i = 0; i < arr.length; i++){ //数组长度多长,就遍历多少次。 循环变量作为数组的下标 4 console.log(arr[i]); 5 } 6 7 // for ... in 遍历数组 8 // 每循环一轮,都会把数组的下标赋值给变量index,然后index就拿到了每个元素的下标。 9 //注意:这里index是元素的下标,不是与元素 10 //对数组来说,index从从0开始顺序获取下标 11 for (var index in arr) { 12 console.log(index); //循环输出: 0 1 2 3 4 5 13 } 14 for(var i in arr){ 15 console.log(arr[i]); 16 } 17 18 // for each 遍历数组 19 //调用数组的forEach方法,传入一个匿名函数 20 //匿名函数接受两个参数: 参数1--迭代遍历的那个元素 参数2:迭代遍历的那个元素的下标 21 //可以在匿名函数内部书需要的代码 22 arr.forEach( function(element, index) { 23 console.log(element); 24 });
5.数组其他常用方法
1 obj.length 数组的大小 2 3 obj.push(ele) 尾部追加元素 4 obj.pop() 尾部获取一个元素 5 obj.unshift(ele) 头部插入元素 6 obj.shift() 头部移除元素 7 obj.splice(start, deleteCount, value, ...) 插入、删除或替换数组的元素 8 obj.splice(n,0,val) 指定位置插入元素 9 obj.splice(n,1,val) 指定位置替换元素 10 obj.splice(n,1) 指定位置删除元素 11 obj.slice( ) 切片 12 obj.reverse( ) 反转 13 obj.join(sep) 将数组元素连接起来以构建一个字符串 14 obj.concat(val,..) 连接数组 15 obj.sort( ) 对数组元素进行排序
(1)获取数组长度
1 var arr = [10, 20, 30, 40, 50]; 2 alert(arr.length); //弹出:5
(2)像数组中添加元素
向数组中添加元素有以下两种方法(一般都是用第一种):
- obj.push(ele) 尾部追加元素
- obj.unshift(ele) 头部插入元素
1 var s = [1, 2, 3] 2 // 从尾部添加 3 s.push("新元素") 4 console.log(s) 5 s.push("666") 6 console.log(s) 7 8 // 从头部添加 9 s.unshift("333") 10 console.log(s)
二、JavaScript中的字符串
JavaScript中字符串类型类似python中字符串类型:
- 字符串是由字符组成的数组,字符串是不可变的:可以访问字符串任意位置的文本,但并未提供修改已知字符串内容的方法
- 另外用双引号表示的字符串和单引号表示的字符串完全相同
- 字符串有可以直接使用的方法
定义字符串:
1 var s = "hello world" 2 var name = 'wyb'
多行字符串:
1 var line = ` 2 多行 3 字符串 4 ` 5 6 // 输出到终端(要在浏览器打开检查器的终端才能看到) 7 console.log(line)
字符串常用方法:
1 obj.length 长度 2 3 obj.trim() 移除空白 4 obj.trimLeft() 5 obj.trimRight) 6 obj.charAt(n) 返回字符串中的第n个字符 7 obj.concat(value, ...) 拼接 8 obj.indexOf(substring,start) 子序列位置 9 obj.lastIndexOf(substring,start) 子序列位置 10 obj.substring(from, to) 根据索引获取子序列 11 obj.slice(start, end) 切片 12 obj.toLowerCase() 大写 13 obj.toUpperCase() 小写 14 obj.split(delimiter, limit) 分割 15 obj.search(regexp) 从头开始匹配,返回匹配成功的第一个位置(g无效) 16 obj.match(regexp) 全局搜索,如果正则中有g表示找到全部,否则只找到第一个。 17 obj.replace(regexp, replacement) 替换,正则中有g则替换所有,否则只替换第一个匹配项, 18 $数字:匹配的第n个组内容; 19 $&:当前匹配的内容; 20 $`:位于匹配子串左侧的文本; 21 $':位于匹配子串右侧的文本 22 $$:直接量$符号
将其他类型转化成字符串:
- toString()
- String()
1 var number = 10; 2 var value = true; 3 var n = null; 4 var r; 5 6 alert(String(number)); // "10" 7 alert(String(value)); // "true" 8 alert(String(n)); // "null" 9 alert(String(r)); // "undefined" 10 11 12 # toString(): 可以传递一个参数控制输出数值的基数,另外null和undefined没有这个方法 13 var num = 10; 14 alert(num.toString()); // "10" 15 alert(num.toString(2)); // "1010" 16 alert(num.toString(8)); // "12" 17 alert(num.toString(10)); // "10" 18 alert(num.toString(16)); // "a"
定时器:setInterval('执行的代码',间隔时间)
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 </head> 7 <body> 8 <script> 9 function f1(){ 10 console.log(1); 11 } 12 13 // 创建一个定时器 14 //setInterval("alert(123);", 5000); // 每隔5秒弹框 15 setInterval("f1();", 2000); // 每隔2秒log出1 16 </script> 17 </body> 18 </html>