javascript学习内容之小结
- 2019-08-30 23:07:37
- 2,251 次阅读
- 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)