引用数据类型(复杂数据类型)
为了装很多值的时候用的
数组Array
用来装很多同类型的值 (类型没有限制); 数组名称.length得到数组的长度; 数组名称[索引值]获取或设置数组内的某个值
var arr = [1,5,2,52,5,2,52];
for(var i = 0;i < arr.length;i++){
console.log(arr[i])
}
arr = [true,false,true,true];
arr = [{name:"张三"},{name:"李四"}];
arr = ["aaa","bbb","ccc"];
console.log(arr.length); //3
console.log(arr[1]); //'bbb'
arr[1] = "ddd";
arr[3] = "ddd";
arr = [[1],[2,3],[4,5,6]];
console.log(arr[1][1]); // 3
数组的方法
unshift() 在数组的开始位置(最前面)添加值 (一个或多个值)
var arr = ["a","b","c","d"];
var arr1 = arr.unshift("aaa","bbb");
console.log(arr); // ["aaa","bbb","a","b","c","d"]
console.log(arr1); // 6
shift() 删除数组的第一个值
var arr = ["a","b","c","d"];
var arr1 = arr.shift();
console.log(arr); // ["b","c","d"]
console.log(arr1);// a
push() 在数组的最后追加值 (一个或多个值)
var arr = ["a","b","c","d"];
var arr1 = arr.push("aaa","bbb");
console.log(arr); // ["a","b","c","d","aaa","bbb"]
console.log(arr1); //6
pop() 删除数组的最后一个值
var arr = ["a","b","c","d"];
var arr1 = arr.pop();
console.log(arr); // ["a","b","c"]
console.log(arr1); // d
splice()从 参数1(索引值) 开始删除 参数2(个数) 个值 在这个位置开始插入 参数3,参数4,… 的值
var arr = ["a","b","c","d"];
var arr1 = arr.splice(1,2,"aa");
console.log(arr); // ["a","aa","d"]
console.log(arr1); // ["b","c"]
reverse()反序
var arr = ["a","b","c"];
var arr1 = arr.reverse();
console.log(arr); //["c","b","a"]
console.log(arr1); // ["c","b","a"]
sort()排序
//正序
var arr = [5,8,4];
var arr1 = arr.sort(function(a,b){return a-b});
console.log(arr);//[4,5,8]
console.log(arr1);//[4,5,8]
//倒序
var arr = [5,8,4];
var arr1 = arr.sort(function(a,b){return b-a});
console.log(arr);//[8,5,4]
console.log(arr1);//[8,5,4]
concat() 合并数组
var arr = [5,8,4];
var arr1 = ["aa","bb"],arr2 = ["aaa","bbb"];
var arr3 = arr.concat(arr1,arr2);
console.log(arr); // [5,8,4]
console.log(arr3); // [5,8,4,"aa","bb","aaa","bbb"]
slice() 截取截取的是从n(索引值) 开始截取到 m(索引值) 为止;包括n,不包括m; 如果只有一个参数,截取这个参数后所有值
var arr = ["a","b","c","d","e","b","c"];
var arr1 = arr.slice(1,4);
console.log(arr);//["a","b","c","d","e","b","c"]
console.log(arr1); //["b","c","d"]
includes() 返回数组中有没有这个值 (true/false)
var arr = ["a","b","c"];
var arr1 = arr.includes("a");
console.log(arr1); // true
indexOf() 返回一个字符在数组中首次出现的位置; 如果没有返回 -1
var arr = ["a","b","c"];
var i = arr.indexOf("a");
console.log(i); // 0
lastIndexOf() 返回一个字符在数组中最后一次出现的位置; 如果没有返回 -1
var arr = ["a","b","c"];
var i = arr.lastIndexOf("a");
console.log(i); // 0
join() 将数组转换成字符串;参数是转换后字符的拼接符号
var arr = ["a","b","c"];
var str = arr.join("");
console.log(str); //"abc";
var str = arr.join();
console.log(str); //"a,b,c";
对象Object
装不同类型的多个值
声明一个对象;值是键值对的格式编辑的 以逗号隔开多个键值对 {键名:键值,属性名:属性值}; 属性名称是自定义的,值可以是任意类型
//一个空对象
var obj = {};
//有值的
var obj1 = {
name:"值",
name1:"值2"
}
获取或设置对象的值; 对象名.属性名
var obj = {name:"名字",age:18};
console.log(obj.name); //"名字"
obj.name = "张三";
console.log(obj['name']); //"张三"
obj["phone"] = 150000000;
console.log(obj); //{name:"张三",age:18,phone:150000000}
var obj = { name:"obj",obj1:{name:"obj1"}};
console.log(obj.obj1.name);
函数function
封装一块可重用的代码, 通过函数的调用让代码多次执行(不调用不会执行,在哪里调用,代码就是在哪里执行一次)
关于函数的声明
var funName = function(){
}
function funName(){
}
关于函数的调用
函数名称();
匿名函数
没有名字的函数,默认不会执行,可以自调用
(function(){
//在函数后再加一个() 就会调用当前函数的执行
})()
有参函数
有参数的函数; 及在函数声明时在函数名称后定义的变量(参数);通过函数在调用时函数名后跟的值赋值
//a与b是自定义的名 是参数名(形参列表) 及在函数内声明的变量 需要在调用时赋值
function funName(a,b){
}
//在调用时传递的 值 叫参数值(实参列表) 是分别赋值给参数名的
funName(10,20)
//每次调用使函数内代码会执行一次 每次传的实参不一样 得到不一样的额运行结果
funName(50,40);
有返回值的函数
当函数以外需要使用这个函数最后的运行结果的时候需要使用 return 将结果返回
function funName(a,b){
// 返回运算结果
return a * b;
}
//.log(表达式) 输出的是表达式的运行结果
// 函数也是一个大的表达式 会将函数内的代码执行一遍, 得到返回值输出; 如果函数没有返回值 输出undefined
console.log(funName(585,848));