javascript学习内容之小结
- 2019-08-30 23:07:37
- 2,427 次阅读
- 0
学习之美在于一头雾水 ,不经历风雨怎能见彩虹

1.什么时候是undefined 什么时候报错is not defined
a.在没有定义变量,直接使用会出现is not defined
譬如:console.log(a);
b.在定义了变量后,而没有赋值会出现undefined
譬如:var a;console.log(a);
2.函数练习
a.递归,了解递归的执行过程
<script>
5 * f1(4)
5 * 4 * f1(3)
f1(1)
function f1(n) {
if ( n == 1) {
return 1;
}
return n * f1(n-1);
}
</script>
b.函数是一种数据类型,可以作为另一个函数的参数
function getResult(a, b, type) {
if (type == "+") {
return a + b;
}else if(type = "-") {
return a - b;
}else{
console.log("非法运算");
}
}
function getResult(a, b, fn) {
return fn(a,b);
}
var f1 = function (a,b) {
return a + b;
};
var r = getResult(1,2,f1);
console.log(r);
// 经历过才会懂,自己做过才知道这件事情
3.为什么要学对象
a.对象可以封装一组数据,方便以后的使用
4.什么是对象
a.一组无序属性的集合 stu.name 对数组而言是有序的
b.对象可以看成键值对 stu[“name”]
c.属性可以包含基本值、对象和函数
4.对象的组成
a.对象的属性– 特征 名词
b.对象的方法– 行为 动词
c.还有事件
5.函数和方法的区别
函数 直接调用的是函数 alert();
方法 通过对象调用的是方法 hero.attack();
6.构造函数
a.构造函数的目的是用来创建对象
真正用的时候找对象的过程比较难,嘿嘿,妈妈再也不用担心我找对象了,没有对象,我可以new一个!!
b.使用new Object()创建对象
var o = new Object();
console.log(typeof o);
console.log(o);
function createStudent(name,age,sex,score) {
//通过构造函数,创建对象
var student = new Object();
//对象的属性
student.name = name;
student.age = age;
student.sex = sex;
student.score = score;
//对象的方法
student.sayHi = function() {
//this 当前这个对象
console.log("大家好,我是" + this.name);
}
//返回对象
return student;
}
var s1 = createStudent("mh",18,"男",18);
var s2 = createStudent("ml",19,"不详",0.1);
console.log(s1);
// s1.sayHi();
// s2.sayHi();
c.封装函数创建多个对象
//什么时候要使用自定义构造函数:需要创建很多对象的时候
//自定义构造函数 --- 构造函数:构造一个对象,并且返回的函数
//调用构造函数 var student = new Object();
function Student(name, age, sex, score) {
//对象的属性
this.name = name;
this.age = age;
this.sex = sex;
this.score = score;
//对象的方法
this.sayHi = function () {
console.log("大家好,我是"+this.name);
}
}
//1 内存开辟空间,存储新创建的对象new Object();
//2 会把this设置为当前对象
//3 执行函数内部的代码,设置对象的属性和方法
//4 返回新创建的对象
var s1 = new Student("zs",18,1,10);
var s2 = new Student("llls",18,1,10);
// s1.sayHi();
// s2.sayHi();
console.log(s1.name);
console.log(s1["name"]);
//对象:无序属性的集合,我们可以把对象看成键值对
var o = new Object();
// o["name"] = "zs";
//
// console.log(o.name);
// for (var i = 0; i < 10; i++) {
// //动态的给对象增加属性
// o["n" + i] = i;
// }
//
// console.log(o.n2);
// function test() {
// //此时this是window,因为是window调用的此函数
// console.log(this);
// }
// test();
// window.test();
d.自定义构造函数
//1内存开辟空间,存储新创建的对象newObject();
//2会把this设置为当前对象
//3执行函数内部的代码,设置对象的属性和方法
//4返回新创建的对象
function Student(name,age,sex,score){
// 对象的属性
this.name=name;
this.age=age;
this.sex=sex;
this.score=score;
//对象的方法
console.log("大家好,我是"+this.name);
this.sayHi=function(){
}
}
S1.sayHI();
7.this在函数中的意义
a.函数中的this
this是当前调用函数的对象
b.构造函数中的this
当前构造函数创建的对象
文章评论 (0)