js面试

1.变量let,const,var区别

let和const不会存在变量提升,暂时性死区
var全局声明,会存在暂时性死区

2.class类的继承


**关键字extends**

Class poiont{  }
Class Colors extends poiont{   }
Colors继承了poiont的方法

**Object.getPrototypeOf()   //可以用来从子类上获取父类**

**super()关键字**
可当函数使用 当函数调用代表父类的构造函数,ES6规定子类构造函数必须执行一次super()
也可当对象使用


3.数组

数组中哪些会改变原型方法,哪些不会
**改变的:**
push(): 像数组后加入,
pop():删除数组最后一项,
shift():删除数组第一项,
unshift():将数组添加到原数组开头,
sort():将数组按升序排列,比较的是字符串,对number没用,
reverse():反转数组,
splice():起始,删除,插入
**未改变的:**
concat():连接字符串,
slice():提取字符串片段, 
join():加入如arr.join("-")
indexOf():某个字符串首次出现的位置
lastIdexOf(),  从后向前搜索字符串
ForEach(), 
map(), 
filter():过滤,
every():判断数组中每一项是否满足条件, 
some():判断数组中是否有满足条件的项,
reduce():迭代相加数组所有项。返回值,
reduceRight():和reduce同理,从有向左

4.选择器有哪些,哪些属性可以继承,和!import优先级哪个高

标签选择器
类选择器
id选择器
子类选择器
包含选择器
兄弟选择器
相邻兄弟选择器
全局选择器
群选择器
属性选择器
伪类选择器
**可继承:**
	font-size      fontfamily     color
**不可继承**
    border    padding   margin   width    height 
 **优先级**
 !import >内联>id>类>标签选择器>通配符>继承>浏览器属性

5.解释盒子模型

标准盒子模型:content不包含其他成分
content+padding+border+margin
IE盒子模型:
content=padding+border+本身

6.打印数据类型

正常Function、String、Number、Undefined
typeof()
数组和字符串,打印出来都是Object所以
方法一
toString.call()
方法二
Array.isArray([]) // true
Array.isArray({}) // false

7.深拷贝和浅拷贝
参考文章:https://blog.csdn.net/jiang7701037/article/details/98738487

建议观看参考文章,更好理解

主要考察对引用类型理解的深度,针对对象
所谓拷贝就是赋值,把一个变量赋值给另外一个变量(拷贝一份),把一个对象赋值给另外一个对象(拷贝一份)
基本类型:赋的是数据所以不存在深拷贝浅拷贝
引用类型:浅拷贝举例
				var arr1 = new Array(12,23,34)
				Var arr2 = arr1;
深拷贝_如果属性是数组等非键值对的对象,单独处理:要么给数组增加一个自我复制的函数(建议这样做),要么单独判断。

8.重绘和回流
参考文章:https://www.jianshu.com/p/e081f9aa03fb

浏览器把所有html解析为一个DOM数,刚加载的时候,或者因为数据,div大小改变布局会进行回流。
在DOM树中只改变一些外观,比如background-color,会重绘
回流必将重绘。重绘不一定会回流

9.关于this指向以及apply(),call(),bind() ,区别
参考链接:添加链接描述

1.默认绑定指向window
2.隐式绑定谁调用指向谁如:
const obj = {
        name:'joy',
        getName(){
            console.log(this); //obj
            console.log(this.name); //joy
        }
  };
 3.链式调用看最后那个
 4.app(), call()改变this指向绑定即是调用,改变This指向。bind()会返回绑定之后的函数,需要的时候进行调用。
    fn.apply(this,[1,2]); //不管多少个,都用数组包裹传参
    fn.call(this,1,2); //一个个参数列出来传
  
  5.箭头函数:调用前this是什么,函数里边就是什么。
  五种this绑定优先级
  箭头函数 > new > 显式 > 隐式 > 默认绑定

10.箭头函数的好处

写代码拥有更加简洁的语法;
不会绑定this:
原生this指向调用者,箭头函数this指向定义时的那个对象。如果有对象嵌套情况绑定在最近一层对象上。

11.数组去重实现

参考链接https://www.jb51.net/article/118657.htm

12.闭包

闭包三特性:
函数嵌套函数
函数内部可以引用外部的参数和变量
参数和变量不会被垃圾回收机制所回收
弊端:增大了内存消耗,造成内存泄漏,解决方法是可以在使用完变量后手动为它赋值为null

推荐!!!添加链接描述

13.js继承
你知道哪些讲述出来:添加链接描述

14…扩展运算符
用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值