函数数组去重
思路:1.调用去重函数,将任意数组作为实参输入到函数中。2.创建一个新的数组,用于接收去重后的新的元素,根据输入的数组,遍历数组,将当前遍历的元素都与数组中的每个元素进行比较。3.调用比较函数,传入两个参数,判断数值与数组中遍历的元素是否相等,如果相等直接return false;否则return true 4.根据比较函数的返回值,去重函数直接判断,如果返回值为true则将当前的遍历的元素,追加到新的数组中。5.return 新的数组
作用域
解题思路:1.先划出全局和局部的作用域;2.分清全局和局部的变量 3.局部查找规则,先局部后全局
全局作用域
在script标签内,function之外的区域称为全局作用域
局部作用域
在function之内的区域称为局部作用域
全局变量
在全局作用域声明的变量
局部变量
在局部作用域声明的变量
函数内变量查找规则,先局部查找,若果没有再全局查找
局部变量只能在局部作用域使用,局部作用域可以使用全局变量,但全局作用域不能使用局部变量
预解析
在js真正执行之前,会将var 变量;和function函数提前声明
注意
1.变量预解析的声明不能够同时赋值
2.函数预解析,能够将函数体内部同时预解析,如果已经预解析的变量或函数,重新预解析
3.当变量和函数重名时,函数预解析的优先级高于变量,临时覆盖同名变量
匿名函数
没有名字的函数,能够自动执行,无法调用
使用方式
1.将函数赋值给一个变量
该变量等价于同名的函数,可以使用函数的调用方式,但等价于,不是等于,只是便于理解如何调用匿名函数的功能
2.匿名函数自执行
将函数赋值给一个变量
var a = function () {
console.log(1);
}
等价于:
function a(){
console.log(1);
}
等价于,不是等于,只是便于理解如何调用匿名函数的功能
a(); // 1
匿名函数自执行
(function () {
var a = 1;
console.log(a);
})();
(function () {
var a = 2;
console.log(a);
})();
(function () {
var a = 3;
console.log(a);
})();
将原本可能为全局变量的变量使用自执行函数包裹,将其变成自执行函数的局部变量,隔绝作用域,在自执行函数内部完全不影响使用
函数也是一种数据类型
1.可以赋值给变量
var a = function (){
console.log(1);
}
a();
2.可以作为参数传递
fn1(1);
fn1(function(){
console.log('我是一个参数');
});
3.可以当做返回值 被return出来
function test() {
return function(){
console.log(22222);
};
}
var result = test();
result();
了解对象
什么是对象
客观世界中具象化的实体,每个对象都有对应的特征
为什么要学习对象
将现实生活的事物具象化的实体,编程是为了解决这些具象化事物而工作的
对象的创建
字面量
语法:var obj={
属性1: 属性值1,
属性2: 属性值2,
属性3: 属性值3,
属性4:function (){
console.log("你好呀");
},
属性5:属性值5
};
实例:
使用构造函数
语法:var obj = new Object();
实例:
var user2 = new Object();
user2.name='username2';
user2.age= 18;
user2.sex= 'male';
user2.score= 200;
console.log(user2);
对象的使用
查
直接使用对象的属性:console.log(obj.name);
实例:
console.log(cj);
console.log(cj.friend('李鑫'));
console.log(cj.like('文慧'));
console.log(cj.hobby[2]);
console.log(cj.hobby[5]);
console.log(cj.like('婷妹妹'));
改
将对象的属性重新赋值:obj.name=“张三”;
cj.beizhu = '舍不得飞飞,怎么办啊';
cj.hobby[2] = '唱歌' ;
console.log(cj);
增
和改的方式一样,如果没有该属性即为创建新的属性,如果有即为修改属性
cj.styand = '优秀';
console.log(cj.styand);
删
将对象的属性删除,使用语法:delete obj.name
delete cj.add;
console.log(cj);