js的基础问题

目录

1.EC --执行上下文(图示)

2.什么是作用域链,什么是原型链

3.this的指向有哪些  4种+内置函数中的3种

4.简述bind apply call

5.什么是构造器,作用是什么

6.函数在js中可以充当那些角色

7.什么是原型对象,以及原型链(图示)   重点

8.let  var  const 区别

9.什么是高阶函数 常见的内置高阶函数有哪些分别举例代码说明 forEach findIndex map filter 重点

10.new的作用是什么,new做了哪些事情  重点

11.说一下js中的继承有哪些方案 关键代码描述

12.创建对象的方法有哪些  代码描述

13.闭包是什么以及闭包的优缺点

14.IIFE和箭头函数  代码描述

15.代码在执行前会先进行预编译,预编译期间都做了什么事情

16.class声明类并继承 代码描述(Father Son 属性有name age  son多一个属性className)

17.严格模式都需要基本注意哪些


1.EC --执行上下文(图示)

2.什么是作用域链,什么是原型链

作用域链:寻找变量的过程,链式过程

原型链:寻找属性的机制,遇到实例化对象不存在的属性时,通过__proto__逐层向上寻找

3.this的指向有哪些  4种+内置函数中的3种

默认绑定    指向    window(函数独立调用)

隐式绑定      --      谁打点调用指向谁

显示绑定      --      call bind apply

new绑定

定时器          --      window

事件监听器   --      事件源

forEarch       --     第二个参数可以改变this的指向

4.简述bind apply call

bind    改变this指向,但是不执行函数,调用方法bind(obj,1,2),会返回一个新函数

apply  改变this指向,执行函数,调用方法apply(obj,[1,2])

call      改变this指向,执行函数,调用方法call(obj,1,2)

5.什么是构造器,作用是什么

构造器:创建对象的构造函数(用function声明,首字母大写)

作用:构造对象,通过构造器()的方式

6.函数在js中可以充当那些角色

函数,对象,类,构造器

7.什么是原型对象,以及原型链(图示)   重点

通过构造器创建实例化对象时,会生成原型对象

是一个内存中的空间,一个对象的诞生 只有一个构造器是不行的  还需要有原型对象

8.let  var  const 区别

let  会提升声明但未初始化;与{}形成块级作用域;不会挂载在window上;不能重复声明;

var  会提升声明,但不能提升赋值;在函数体内声明的为局部变量,不会挂载在window上,且作用域为局部;全局变量,用var声明或者直接a=1都挂载在window上;

const 会提升声明但未初始化;与{}形成块级作用域;不会挂载在window上;是常量必须赋值,否则直接报错;无法修改;

9.什么是高阶函数 常见的内置高阶函数有哪些分别举例代码说明 forEach findIndex map filter 重点

函数的参数或者返回值为函数

arr.forEarch(function(){}              --循环遍历,不改变原数组
)

arr.findIndex(function(){}             --寻找元素,不改变原数组
)返回索引,如果不存在,返回-1

arr.map(function(){}                     --映射,返回值为新数组,不改变原数组
)

arr.filter(function(){}                     --过滤,返回值为新数组,不改变原数组

)


10.new的作用是什么,new做了哪些事情  重点

改变this指向

通过构造器,创建实例化对象

执行构造函数

返回一个堆空间地址,把地址给实例化对象

11.说一下js中的继承有哪些方案 关键代码描述

原生继承               Son.prototype=new Father();

call继承                  Father.calll(this,name,age);

组合继承                 原生继承加call继承

寄生继承                 Son.prototype=Object.create(Father.prototype)

12.创建对象的方法有哪些  代码描述

字面量              var obj={}

构造函数           var obj=new Object()

自定义的构造函数

function Student(name,age){
   this.name=name;
   this.age=age;
}
let obj=new Student('张三',20)

工厂函数

function Student(name,age){
    let stu={};
    stu.name=name;
    stu.age=age;
    return stu;
}
let obj=Student('zhangsan',20);

13.闭包是什么以及闭包的优缺点

函数体内的变量被调用后该销毁,但是因为被内部的函数调用,导致无法销毁,并为其开辟了一个新的堆空间存放

优点:延长了变量的生命周期;扩大了变量的作用范围;保护变量

缺点:内存泄漏

14.IIFE和箭头函数  代码描述

;(function(){

})()//立即执行函数

//箭头函数
fn=()=>{}

15.代码在执行前会先进行预编译,预编译期间都做了什么事情

var 声明的全局变量,声明会提升

函数会提升,函数体内的用var 声明的变量,声明会提升到函数体内的最上面

16.class声明类并继承 代码描述(Father Son 属性有name age  son多一个属性className)

class Father{
   constructor(name,age){
       this.name=name ;
       this.age=age;
   }
}
class Son extends Father{
   constructor(name,age,id){
       super(name,age);
       this.id=id;
   }
}

17.严格模式都需要基本注意哪些

必须要使用var,const,let声明变量,不能直接使用a=1,来声明变量

函数的形参不能重复声明,例如function fn(a,a,a){}

函数体内的this不会默认绑定window

相关推荐

  1. js基础知识

    2024-04-20 19:04:01       14 阅读
  2. 函数节流(js问题

    2024-04-20 19:04:01       42 阅读
  3. 闭包(js问题

    2024-04-20 19:04:01       36 阅读
  4. this使用(js问题

    2024-04-20 19:04:01       40 阅读
  5. 数据类型转换(js问题

    2024-04-20 19:04:01       42 阅读
  6. 不设默认值(js问题

    2024-04-20 19:04:01       43 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-20 19:04:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-20 19:04:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-20 19:04:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-20 19:04:01       20 阅读

热门阅读

  1. Redis 核心知识点常考面试题(持续更新中)

    2024-04-20 19:04:01       14 阅读
  2. Redis中connection命令详解

    2024-04-20 19:04:01       13 阅读
  3. 【WPF】取色器-Color Extractor

    2024-04-20 19:04:01       15 阅读
  4. NLP预训练模型-GPT-3

    2024-04-20 19:04:01       14 阅读
  5. 消息队列的确认机制和持久化选项

    2024-04-20 19:04:01       13 阅读
  6. 机器学习实验------随机森林

    2024-04-20 19:04:01       13 阅读
  7. 富格林:翻出虚假陷阱保障安全

    2024-04-20 19:04:01       13 阅读
  8. Elasticsearch 索引文档的过程

    2024-04-20 19:04:01       13 阅读
  9. Kafka 源码解析 - Kafka Consumer设计解析

    2024-04-20 19:04:01       15 阅读
  10. vue+vite+elements

    2024-04-20 19:04:01       13 阅读
  11. python模式设计之责任链模式

    2024-04-20 19:04:01       11 阅读