1.js创建对象
action:在定义属性时,字符串必须加双引号。
1)使用new操作符后跟Object()
var person = new Object();
person.name = "张三";
person.sex = "男";
2)字面量创建对象(首选)
var person = {
name : "石鹏",
sex : "男"
};
使用字面量创建对象时,定义属性用的是json格式!!!
3)参数自动封装为对象
function test(args){
var output = "";
output = args.name + "的性别是" + args.sex + ",年龄是" + args.age;
console.log(output);
}
test({
name : "zhangsan",
sex : "boy",
age :18
});
在上面,调用test时,参数给的是一个自定义未命名的对象;定义test方法时,只用了一个变量来接收这个参数,这个变量自动认为是一个对象,函数体内正常使用.操作符或者[]来操作符进行访问参数(对象)的属性。
.操作符:console.log(args.name);
[]操作符:console.log(args["name"]);当属性中有空格或其他导致语法错误的字符时,采用此方法;包含空格时使用.操作符会报错
上面两个访问对象属性的方法得到的结果是一样的。
2.“==” 和“===”的区别
1)“==”指的是两个变量是否相等,例如:返回的是true,第一个56是int数值。第二个56是string字符串,但是==判断时会自动转化格式,string 56会转换成int 56,so 返回为true。
console.log(56 === "56");
2)===指的是全等。包括变量类型,上面那个语句就会返回false,因为int 不等于string。
2.js创建数组
1)通过Array构造函数创建
var newArray = Array();
参数可以为数组内容 or 数组长度,也可以不给,可以单独赋值:
var newArray = Array();
newArray = [1,2,3,[4,5,6]];
console.log(newArray.length);
毫无疑问打印出来的数组长度就是4,因为这是一个二维数组。
2)字面量定义数组
var newArray = [
1,2,3,[
4,5,6
]
];
console.log(newArray);
例如这里定义一个二维数组action:数组最后一个元素就不要加,号了,要不然再识别成后面有个空值!!!
3)检测是不是数组,以上面创建的数组为例:
console.log(Array.isArray(newArray));
即可检测是否是数组,因为当一个页面进入不同的js框架时,他们对数组的构造函数不一致,so用array.isarray用来检测
4)数组转字符串函数:join(arges),参数为将数组元素隔开的字符;toString()等等
5)插入删除元素
方法一:普通方法,找到下标直接插入删除
方法二:栈方法(栈是一种先进后出的数据结构)
var newArray = [
1,2,3,[
4,5,6
]
];
newArray.push(7,8,9);
newArray.pop(1);
console.log(newArray);
push()就是像数组末位追加元素,返回值是修改后数组的长度;
pop()就是在数组的末位删除元素,参数为要删除的个数,返回值是移除的元素。
方法三:队列方法(队列是一种先进先出的数据结构)
var newArray = [
1,2,3,[
4,5,6
]
];
newArray.push(7,8,9);
console.log( newArray.shift(1));
console.log(newArray);
push()方法一致都是在末位添加元素,
shift()是在数组前端开始的位置删除元素,返回值是被删除的元素。
方法四:splice()函数:返回值为数组,包含删除的项,若没有,则返回空数组
这个函数可以 插入到数组的任一位置,
插入:参数为3个,第1个为开始插入的下标,第2个是要插入的个数,第3个是要插入的数据(加“”号标起来);
删除:参数为2个,第1个为开始删除的下标,第二个为要删除的个数
替换:参数为3个,第1个为起始位置,第2个为替换个数,第3个为值
6)数组排序:
sort()参数不填是默认为升序;参数可以是一个自定义的比较函数(这个sort好像有点像遍历功能,只不过不用自己写遍历了,具体的比较方法还需要自己写)
7)查找元素位于数组的位置:indexOf and lastIndexOf()参数为要查找的值,返回在数组的位置,否则返回-1