美文网首页
Javascript 基础 And 进阶

Javascript 基础 And 进阶

作者: 涅槃no重生 | 来源:发表于2019-05-15 22:23 被阅读0次

知识点:

原型链

this指向

作用域和预解析

new关键字

闭包

DOM事件

继承

原型链

面试题(一):

var F = function() {};

Object.prototype.a = function() {

  console.log("aa");

};

Function.prototype.b = function() {

  console.log("bb");

};

var f = new F();

F.a();  //aa

F.b();  //bb

f.a();  //aa

f.b();  // 抱错,f.b is not a function

面试题(二):

function A() {

    this.name = 'a'

    this.color = ['green', 'yellow']

}

function B() {

}

B.prototype = new A()

var b1 = new B()

var b2 = new B()

b1.name = 'change'

b1.color.push('black')

console.log(b2.name)  // change

console.log(b2.color)  // green yellow black

this指向(有四种)

第一种:方法调用

var age = 38;

var obj = {

    age: 18,

    getAge: function() {

        console.log(this.age);

    }

};

obj.getAge();

--------------------------------------------------

// 变式:

var fn = obj.getAge;

fn();

第二种:函数调用,里面的this指向的是window

var age = 38;

var obj = {

    age: 18,

    getAge: function() {

        var fn = function() {

            console.log(this.age);

        };

        fn();

    }

};

obj.getAge();

第三种:构造函数调用:this指向调用它的对象

var age = 38;

var obj = {

    age: 18

};

var getAge = function() {

    console.log(this.age);

};

obj.get = getAge;

obj.get();

第四种:上下文调用模式,this指向谁?指向的是传入的对象

call 和 apply

作用域和预解析

let var const 函数作用域 {}

new 关键字的作用

1、在函数里面创建一个对象obj

2、将函数里面的this指向创建的那个对象obj

3、返回这个obj对象

综合面试题:

function Foo() {

    getName = function(){ alert(1); };

    return this;

}

Foo.getName = function() { alert(2); };

Foo.prototype.getName = function(){ alert(3); };

var getName = function() { alert(4); };

function getName(){ alert(5); }

Foo.getName();           

getName();               

Foo().getName();         

getName();               

new Foo.getName();       

new Foo().getName();     

new new Foo().getName();

闭包

闭包的概念:

闭包的使用场景:

闭包的问题:让变量得不到释放,增加内存使用率

var counter = (function() {

  var privateCounter = 0;

  function changeBy(val) {

    privateCounter += val;

  }

  return {

    increment: function() {

      changeBy(1);

    },

    decrement: function() {

      changeBy(-1);

    },

    value: function() {

      return privateCounter;

    }

  }; 

})();

DOM 事件

给DOM 添加点击事件:

dom.onclick = function(){}

dom.addEventListener(事件类型 事件处理函数 冒泡或者捕获)

区别:onclick 会覆盖相同的事件,addEventListener会逐一的触发

DOM 事件三要素: 事件源, 事件类型, 事件处理程序

事件流程: 冒泡,捕获

继承

ES5的继承

1、构造函数实现继承

    function Parent(){

            this.name = "parent"

        }

    Parent.prototype.aa=function(){}

    function Child(){

        Parent.call(this)

        this.type ="child"

    }

    console.log(new Child())

2、借助原型是实现继承

    function Parent(){

        this.name = "parent"

        this.arr = [1,2,3]

    }

    function Child(){

        this.type = "child"

    }

    Child.prototype = new Parent()

    var A = new Child()

    var B = new Child()

    A.arr.push(4)

    console.log(A,B)

3、组合方式实现继承

function Parent(){

    this.name = "parent"

    this.arr = [1,2,3]

}

function Child(){

    Parent.call(this)

    this.type = "child"

}

Child.prototype = Object.create(Parent.prototype)

Child.prototype.construcotr = Child

var A = new Child()

var B = new Child()

A.arr.push(4)

console.log(A,B)

ES6的继承

class People{

        constructor(name,age){

            this.name = name

            this.age = age

        }

    eat(){

    }

}

class Student extends People{

    constructor(id,name,age){

        super(name,age)

        this.id = id

    }

}

相关文章

  • 前端心得

    1.基础阶段:HTML+CSS 2.js阶段:JavaScript基础、JavaScript进阶、JavaScri...

  • 技术栈

    一、HTML、CSS基础、JavaScript语法基础。 二、JavaScript语法进阶。包括:作用域和闭包、t...

  • 2020前端技术栈

    一、HTML、CSS基础、JavaScript语法基础。二、JavaScript语法进阶。包括:作用域和闭包、th...

  • JavaScript ☞ day3

    JavaScript基础学习笔记之JavaScript进阶 焦点事件 鼠标事件-单击与双击 鼠标事件-mouseo...

  • Javascript 基础 And 进阶

    Javascript 基础 And 进阶 知识点: 原型链 this指向 作用域和预解析 new关键字 闭包 DO...

  • Javascript 基础 And 进阶

    (一) 知识点: 原型链 this指向 作用域和预解析 new关键字 闭包 DOM事件 继承 原型链 面试题(一)...

  • Javascript 基础 And 进阶

    知识点: 原型链 this指向 作用域和预解析 new关键字 闭包 DOM事件 继承 原型链 面试题(一): va...

  • 50个JavaScript问题

    转载《43个JavaScript问题,并附有答案》 从基础到进阶,测试你有多了解 JavaScript,刷新你的知...

  • Javascript基础进阶(一)

    变量提升 javaScript程序并不全是从上往下一行一行执行的,在执行的过程中有两个阶段: 词法解释(编译阶段)...

  • Javascript基础进阶(六) this

    什么是this? (1).JS中的this代表的是当前行为的执行主体。 (2).this的指向在函数定义的时候是确...

网友评论

      本文标题:Javascript 基础 And 进阶

      本文链接:https://www.haomeiwen.com/subject/sdrvaqtx.html