1. 在js中对象的概念:世间的一切事物都可以用对象来描述,对象具有特征和行为。面向对象和基于对象的区别:
面向对象:可以创建自定义的类型,特征:封装、继承、多态。如java/c++/c#
基于对象:无法创建自定义类型,不支持继承、多态。所以js是基于对象的。
2. new
a.开辟内存空间,存储新创建的对象(new Object());
b.把this设置为当前对象;
c.执行内部代码,设置对象属性和方法;
d.返回新创建的对象。
3.练习小函数
a.将一个字符串数组输出为|分割的形式,使用两种方式。
var arr = ["刘备","张飞","关羽"];
var str = arr[0];
var separator = "|";
for(var i=1;i<arr.length;i++){
str+=separator+arr[i];
}
console.log(arr.join("|"));
b.将一个字符串数组的元素的顺序进行反转。
var arr1 = [1,2,3];
console.log(arr1.reverse());
//第一种
function reverse1(array){
var newArr = [];
for(var i=array.length-1;i>=0;i--){//指下标
newArr[newArr.length] = array[i];
}
return newArr;
}
//第二种
function reverse2(array){
for(var i=0;i<array.length/2;i++){
var temp = array[i];
array[i] = array[array.length-1-i];
array[array.length-1-i] = temp;
}
return array;
}
c. ["c","c","a","x","a","x"]找到数组中每一个元素出现的次数。
var arr5 = ["c","a","x","a","x","a"];
var json = {};
for(var i=0;i<arr5.length;i++){
//判断数组中的元素,在json中是否存在属性值。
if(json[arr5[i]]){
json[arr5[i]] += 1;
}else{
json[arr5[i]] = 1;
}
}
console.log(json);
d. 编写一个方法,去掉数组中的重复元素。
var arr = [1,2,3,4,5,2,3,4];
console.log(arr);
var aaa = fn(arr);
console.log(aaa);
//思路:创建一个新数组,循环遍历,只要新数组中有老数组的值,就不用再添加了。
function fn(array){
var newArr = [];
for(var i=0;i<array.length;i++){
//开闭原则
var bool = true;
//每次都要判断新数组中是否有旧数组中的值。
for(var j=0;j<newArr.length;j++){
if(array[i] === newArr[j]){
bool = false;
}
}
if(bool){
newArr[newArr.length] = array[i];
}
}
return newArr;
}