js学习笔记记录

2019-05-05  本文已影响0人  skyfiring
  1. 基本数据类型(五种)与复杂数据类型(对象)
    • typeof判断数据类型(数字、字符串、布尔、undefined、函数)
    • Object.prototype.toString.call() ==> 如:'[object number]'
    • Array.isArray()
    • isNaN
  2. undefined数据的出现原因
    • 变量声明未赋值
    • 变量声明赋值undefined
    • 对象属性不存在
  3. 对象的调用方式(两种)与区别,删除对象属性
  4. 构造函数,instanceof判断是否为构造函数的实例
    • 不返回,返回基本数据类型、返回对象 == > 创建的对象还是构造函数的实例吗?
    • 内置构造函数
    • 构造函数的父对象,实例的原型对象就是构造函数.prototype
      p1.__proto__ === Person.prototype
  5. =====区别
  6. 继承的几种方式
    • 原型链继承
            function Person(data1,data2){
                  this.data1 = data1;
                  this.data2 = data2;
              }
              //Person.prototype.say=function(){}
              Person.prototype={
                    constructor:Person //不破坏原有原型对象
                    say:function(){}
              }
              var p1=new Person(1,2);
    
    • 拷贝继承
      -- for in与for of区别
      • ES6的对象扩展运算符(...args)
      • ES5的Object.assign()
          var a={name:1,age:2};
          var b={};
          for(var key in a){
              b[key] = a[key];
          }
          b.sex = "男";
    
    • 原型式继承
      • 场景
      • 创建一个纯洁的对象,对象什么属性都没有
      • 创建一个继承自某个父对象的子对象
        Object.create(null)
    • 借用构造函数实现继承
      • 原理:函数的callapply调用方式
      • 场景:适用于两种构造函数之间逻辑相似的情况
        function Animal(name,age){
            this.name = name;
            this.age = age;
        }
        function Person(name,age,say){
            //Animal.call(this,name,age);
            Animal.apply(this,[name,age]);
            this.say = say;
        }
        var p2 = new Person("lk",11,function(){});
    
    • 寄生继承、寄生组合继承
  7. 原型链
  8. 闭包
    • 模块化
    • 防止变量被破坏
  9. 函数的四种调用方式
    • 函数调用
      • 函数内部this指向window
    • 方法调用
    • new 调用(构造函数)
    • 上下文方式(callapplybind
      • callapply方法的第一个参数决定函数内部this的值,参数不同类型this的值也不同(对象)
      • bind函数.bind(数据),那么函数里面的this就是这个值
  10. 常见的问题
    (1)CSS
    - BFC块级格式上下文(5种情况)
    - 预处理器Less、Sass
    - 垂直居中方式(8种情况)
    - 响应式布局
    (2)html
    - h5兼容问题,做过哪些浏览器兼容性处理
    (3)js
    - 原型与原型链
    - 箭头函数,this指向
    - 深拷贝与浅拷贝
    - apply()与call()
    - 数据类型的判断方法
    - 去重方法
    - 数组中最大值获取方式
    (4)ES6
    - 介绍新特性,各种新增方法
    (5)vue技术栈
    - 生命周期
    - v-modal双向绑定原理
    - vue-router原理
    - vuex使用方式
    - 父子组件通信
    - 如何解决bug
    - 做过哪些性能优化
    - 跨域方式有哪些
    - 是否搭建过项目
上一篇 下一篇

猜你喜欢

热点阅读