js6
Array对象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
// 如何创建数组对象
// 1 数组字面量 []
// var array = []; // 空数组
// var numbers = [1, 5, 1];
//
// 2 数组的构造函数Array
// var array = new Array(); // 空数组
// var numbers = new Array(4, 1, 6);
// console.log(numbers);
//
// 获取数组长度
// console.log(numbers.length);
//
//
//
// 如何判断一个变量是否是数组对象
function fn(arr) {
// 判断参数arr 是否是数组对象
// instanceof
// console.log(arr instanceof Array);
//
// !arr instanceof Array
// false instanceof Array
// 方式1
// if (!(arr instanceof Array)) {
// console.error('参数err 不是数组对象');
// return;
// }
//
//
// 方式2 Array.isArray() 浏览器兼容性问题 HTML5
// console.log(Array.isArray(arr));
// if (!Array.isArray(arr)) {
// console.error('参数err 不是数组对象');
// return;
// }
console.log('正常执行');
}
var d = 1;
fn(d);
</script>
</head>
<body>
</body>
</html>
Array对象的常用方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
// toString()/valueOf() 每一个对象都具有这两个方法
// var arr = [5, 1, 8, 0];
// console.log(arr);
// // toString() 把数组转换成字符串,并且使用, 分割每一项
// console.log(arr.toString());
// // valueOf() 返回数组对象本身
// console.log(arr.valueOf());
// 1 栈操作(先进后出)
// push()
// pop() //取出数组中的最后一项,修改length属性
// // 2 队列操作(先进先出)
// push()
// shift() //取出数组中的第一个元素,修改length属性
// unshift() //在数组最前面插入项,返回数组的长度
// // 3 排序方法
// reverse() //翻转数组
// sort(); //即使是数组sort也是根据字符,从小到大排序
//
//
//
// 1 栈操作 先进后出
// var array = [1, 2, 3];
// // array[array.length] = ...
// array.push(4);
// // 参数, 可以有多个,将来都会添加到数组最后
// // 返回值,就是改变后的数组的长度
// var r = array.push(5, 6, 7);
// // console.log(r);
// // console.log(array);
// // pop 返回数组中的最后一个元素,并且会修改数组的长度
// var last = array.pop();
// console.log(last);
// console.log(array.length);
// console.log(array);
//
//
// 2 队列操作(先进先出)
// var array = [1, 2, 3];
// array.push(4);
// var first = array.shift();
// console.log(first);
// console.log(array);
// array.unshift(0);
// console.log(array);
//
// 3 排序方法
// var array = ['e', 'a', 'f', 'b'];
// // var newArray = array.reverse();
// // console.log(newArray);
// //
// // sort() 直接在原数组上进行排序
// array.sort();
// console.log(array);
// 如何学习一个方法
// 1 了解方法的作用
// 2 方法的参数
// 3 方法的返回值
// 4 测试,编写一个demo
</script>
</head>
<body>
</body>
</html>
sort
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
// sort
// var arr = [25, 10, 108, 18];
// 默认情况下的sort是对字符编码 从小到大排序
// arr.sort();
// console.log(arr);
// ASCII
// 字符编码 a > 97
//
// function compare(a, b) {
// return a - b;
// }
// arr.sort(compare);
// console.log(arr);
// arr.sort(function (a, b) {
// return b - a;
// })
// console.log(arr);
//
//
var arr = ['abc', 'ab', 'a', 'abcdef', 'xy'];
arr.sort(function (a, b) {
return a.length - b.length;
});
console.log(arr);
</script>
</head>
<body>
</body>
</html>
清空数组
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
var arr = [1, 2, 3];
// 清空数组
// arr = [];
// console.log(arr);
//
// arr.length = 0;
// console.log(arr);
//
// 第一个参数,是从什么位置开始删除 索引
// 第二个参数,删除多少个元素
arr.splice(0, arr.length);
console.log(arr);
</script>
</head>
<body>
</body>
</html>
数组案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
// 将一个字符串数组输出为|分割的形式,比如“刘备|张飞|关羽”。使用两种方式实现
// var arr = ['刘备', '张飞', '关羽'];
// // arr.toString(); -> 刘备,张飞,关羽
// console.log(arr.join('|'));
// 将一个字符串数组的元素的顺序进行反转。["a", "b", "c", "d"] -> [ "d","c","b","a"]。使用两种种方式实现。提示:第i个和第length-i-1个进行交换
//
// var arr = ["a", "b", "c", "d"];
// arr.reverse();
// console.log(arr);
// 工资的数组[1500, 1200, 2000, 2100, 1800],把工资超过2000的删除
// var arr = [1500, 1200, 2000, 2100, 1800];
// var newArray = arr.filter(function (item) {
// // item就是数组中的每一个元素
// return item < 2000;
// })
// console.log(newArray);
// ['c', 'a', 'z', 'a', 'x', 'a']找到数组中每一个a出现的位置
// var arr = ['c', 'a', 'z', 'a', 'x', 'a'];
// 从前往后找元素
// console.log(arr.indexOf('a'));
// // 从后往前找
// console.log(arr.lastIndexOf('a'));
// indexOf的第二个参数 设置indexOf查找的开始位置
// console.log(arr.indexOf('a', 2));
// 如果没有找到元素 indexOf 会返回-1
//
// while do...while
// var index = -1;
// do {
// index = arr.indexOf('a', index + 1);
// if (index !== -1) {
// console.log(index);
// }
// } while (index !== -1);
// 编写一个方法去掉一个数组的重复元素['c', 'a', 'z', 'a', 'x', 'a']
// ['c', 'a', 'z', 'a', 'x', 'a'] -> ['c', 'a', 'z', 'x']
//
// 1 如何获取数组中每一个元素出现的次数
// 1.1 遍历数组中的每一个元素
// { c: 1
// a: 1 + 1 + 1
// z: 1
// x: 1 }
// 1.2 创建一个对象,把数组的元素作为对象的属性,并记录次数
//
// var o = {};
// console.log(o['c']); // 我们访问对象中没有的属性,返回值是undefined
function clear(arr) {
// 1 如何获取数组中每一个元素出现的次数
var o = {}; // 记录数组中元素出现的次数
for (var i = 0; i < arr.length; i++) {
var item = arr[i]; // 数组中的每一个元素
// o[item] = 1;
// 判断o对象是否有当前遍历到的属性
if (o[item]) {
// 如果o[item] 存在,说明次数不为1
o[item]++;
} else {
// 如果o[item] 不存在,说明是第一次出现
o[item] = 1;
}
}
// console.log(o);
// 2 生成一个新的数组,存储不重复的元素
var newArray = [];
// 遍历对象o中的所有属性
for (var key in o) {
// 判断o对象中当前属性的值是否为 1 如果为1 说明不重复直接放到新数组中
if (o[key] === 1) {
newArray.push(key);
} else {
// o对象中当前属性 次数不为1 ,说明有重复的,如果有重复的话,只存储一次
// 判断当前的newArray数组中是否已经有该元素
if (newArray.indexOf(key) === -1) {
newArray.push(key);
}
}
}
return newArray;
}
var array = ['c', 'a', 'z', 'a', 'x', 'a'];
var newArray = clear(array);
console.log(newArray);
</script>
</head>
<body>
</body>
</html>
基本包装类型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
// 简单类型 没有属性和方法
// 对象 才有属性和方法
// var s1 = 'abc';
// var len = s1.length;
// console.log(len);
// // s1.length 执行过程
// // 把基本类型变成基本包装类型 会创建一个对应的临时对象
// var _s1 = new String('abc');
// var len = _s1.length;
// _s1 = null; // 销毁对象
// 基本包装类型:基本类型包装成复杂类型
// String Number Boolean
//
// PrimitiveValue 原始值
// var s = new String('123abc');
// console.log(s);
// console.log(s1);
//
// 将来我们一般情况下不会使用Number Boolean 基本包装类型
// PrimitiveValue 16
// 创建Number的对象
// var n1 = new Number('16');
// // 类型转换
// var n2 = Number('16');
// console.log(n1);
// console.log(n2);
// PrimitiveValue false
// var b1 = new Boolean(false);
// var b2 = Boolean('abc');
// console.log(b1);
// console.log(b2);
var b1 = new Boolean(false);
var b2 = b1 && true; // 转换成false的5种情况 0 '' null NaN undefined
console.log(b2);
</script>
</head>
<body>
</body>
</html>
字符串的特点
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
// 字符串的不可变
// var s = 'abc';
// s = 'xxxxxxyyy';
// 当拼接大量字符串的时候,会有性能问题
var s = '';
for (var i = 0; i < 100000; i++) {
// s += i;
s = s + i;
}
console.log(s);
</script>
</head>
<body>
</body>
</html>
字符串方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
// 1 字符方法
// charAt() //获取指定位置处字符
// charCodeAt() //获取指定位置处字符的ASCII码
// str[0] //HTML5,IE8+支持 和charAt()等效
//
// var s = 'abcdef';
// console.log(s.charAt(0));
// for (var i = 0; i < s.length; i++) {
// console.log(s.charAt(i));
// }
//
// console.log(s.charCodeAt(0));
//
// for (var i = 0; i < s.length; i++) {
// console.log(s[i]);
// }
// // 2 字符串操作方法
// concat() //拼接字符串,等效于+,+更常用
// slice() //从start位置开始,截取到end位置,end取不到
// substring() //从start位置开始,截取到end位置, end取不到
// substr() //从start位置开始,截取length个字符
// // 3 位置方法
// indexOf() //返回指定内容在元字符串中的位置
// lastIndexOf() //从后往前找,只找第一个匹配的
// // 4 去除空白
// trim() //只能去除字符串前后的空白
// // 5 大小写转换方法
// to(Locale)UpperCase() //转换大写
// to(Locale)LowerCase() //转换小写
// // 6 其它
// search()
// replace()
// split()
</script>
</head>
<body>
</body>
</html>
获取url中参数
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
// 获取url中?后面的内容
// 例如:http://www.itheima.com/login?name=zs&age=18&a=1&b=2
var url = 'http://www.itheima.com/login?name=zs&age=18&a=1&b=2';
// console.log(url.substr(2));
// var index = url.indexOf('?') + 1;
// console.log(url.substr(index));
// {
// name: 'zs',
// age: 18
// }
// 获取url后面的参数
function getParams(url) {
// 获取? 后面第一个字符的索引
var index = url.indexOf('?') + 1;
// url中?后面的字符串 name=zs&age=18&a=1&b=2
var params = url.substr(index);
// 使用& 切割字符串 ,返回一个数组
var arr = params.split('&');
var o = {};
// 数组中每一项的样子 key = value
for (var i = 0; i < arr.length; i++) {
var tmpArr = arr[i].split('=');
var key = tmpArr[0];
var value = tmpArr[1];
o[key] = value;
}
return o;
}
var obj = getParams(url);
console.log(obj);
console.log(obj.name);
console.log(obj.age);
</script>
</head>
<body>
</body>
</html>
别废话,拿你代码给我看。