javascript学习内容之小结

  • 2019-08-30 23:07:37
  • 2,251 次阅读
  • 稿源:天马行空

学习之美在于一头雾水 ,不经历风雨怎能见彩虹

javascript学习内容小结

1.什么时候是undefined 什么时候报错is not defined

a.在没有定义变量,直接使用会出现is not defined

譬如:console.log(a);

b.在定义了变量后,而没有赋值会出现undefined

譬如:var a;console.log(a);

2.函数练习

a.递归,了解递归的执行过程

  1. <script>
  2. 5 * f1(4)
  3. 5 * 4 * f1(3)
  4.  
  5.  
  6. f1(1)
  7. function f1(n) {
  8. if ( n == 1) {
  9. return 1;
  10. }
  11. return n * f1(n-1);
  12. }
  13. </script>

b.函数是一种数据类型,可以作为另一个函数的参数

  1. function getResult(a, b, type) {
  2. if (type == "+") {
  3. return a + b;
  4. }else if(type = "-") {
  5. return a - b;
  6. }else{
  7. console.log("非法运算");
  8. }
  9. }
  10.  
  11. function getResult(a, b, fn) {
  12. return fn(a,b);
  13. }
  14.  
  15. var f1 = function (a,b) {
  16. return a + b;
  17. };
  18. var r = getResult(1,2,f1);
  19. console.log(r);
  20. // 经历过才会懂,自己做过才知道这件事情

3.为什么要学对象

a.对象可以封装一组数据,方便以后的使用

4.什么是对象

a.一组无序属性的集合 stu.name 对数组而言是有序的

b.对象可以看成键值对 stu[“name”]

c.属性可以包含基本值、对象和函数

4.对象的组成

a.对象的属性– 特征 名词

b.对象的方法– 行为 动词

c.还有事件

5.函数和方法的区别

函数 直接调用的是函数 alert();

方法 通过对象调用的是方法 hero.attack();

6.构造函数

a.构造函数的目的是用来创建对象

真正用的时候找对象的过程比较难,嘿嘿,妈妈再也不用担心我找对象了,没有对象,我可以new一个!!

b.使用new Object()创建对象

  1. var o = new Object();
  2. console.log(typeof o);
  3. console.log(o);
  4.  
  5. function createStudent(name,age,sex,score) {
  6. //通过构造函数,创建对象
  7. var student = new Object();
  8. //对象的属性
  9. student.name = name;
  10. student.age = age;
  11. student.sex = sex;
  12. student.score = score;
  13. //对象的方法
  14. student.sayHi = function() {
  15. //this 当前这个对象
  16. console.log("大家好,我是" + this.name);
  17. }
  18. //返回对象
  19. return student;
  20. }
  21.  
  22. var s1 = createStudent("mh",18,"男",18);
  23. var s2 = createStudent("ml",19,"不详",0.1);
  24.  
  25. console.log(s1);
  26. // s1.sayHi();
  27. // s2.sayHi();

c.封装函数创建多个对象

  1. //什么时候要使用自定义构造函数:需要创建很多对象的时候
  2. //自定义构造函数 --- 构造函数:构造一个对象,并且返回的函数
  3. //调用构造函数 var student = new Object();
  4.  
  5. function Student(name, age, sex, score) {
  6. //对象的属性
  7. this.name = name;
  8. this.age = age;
  9. this.sex = sex;
  10. this.score = score;
  11. //对象的方法
  12. this.sayHi = function () {
  13. console.log("大家好,我是"+this.name);
  14. }
  15. }
  16.  
  17. //1 内存开辟空间,存储新创建的对象new Object();
  18. //2 会把this设置为当前对象
  19. //3 执行函数内部的代码,设置对象的属性和方法
  20. //4 返回新创建的对象
  21. var s1 = new Student("zs",18,1,10);
  22. var s2 = new Student("llls",18,1,10);
  23. // s1.sayHi();
  24. // s2.sayHi();
  25.  
  26. console.log(s1.name);
  27. console.log(s1["name"]);
  28.  
  29. //对象:无序属性的集合,我们可以把对象看成键值对
  30. var o = new Object();
  31. // o["name"] = "zs";
  32. //
  33. // console.log(o.name);
  34.  
  35. // for (var i = 0; i < 10; i++) {
  36. // //动态的给对象增加属性
  37. // o["n" + i] = i;
  38. // }
  39. //
  40. // console.log(o.n2);
  41.  
  42. // function test() {
  43. // //此时this是window,因为是window调用的此函数
  44. // console.log(this);
  45. // }
  46. // test();
  47. // window.test();

d.自定义构造函数

  1. //1内存开辟空间,存储新创建的对象newObject();
  2.  
  3. //2会把this设置为当前对象
  4.  
  5. //3执行函数内部的代码,设置对象的属性和方法
  6.  
  7. //4返回新创建的对象
  8. function Student(name,age,sex,score){
  9. // 对象的属性
  10. this.name=name;
  11. this.age=age;
  12. this.sex=sex;
  13. this.score=score;
  14. //对象的方法
  15. console.log("大家好,我是"+this.name);
  16. this.sayHi=function(){
  17. }
  18. }
  19. S1.sayHI();

7.this在函数中的意义

a.函数中的this
this是当前调用函数的对象

b.构造函数中的this
当前构造函数创建的对象

喜欢 0

文章评论 (0)

表情

大眼 可爱 大笑 坏笑 害羞 发怒 折磨 快哭了 大哭 白眼 晕 流汗 困 腼腆 惊讶 憨笑 色 得意 骷髅 囧 睡觉 眨眼 亲亲 疑问 闭嘴 难过 淡定 抗议 鄙视 猪头