js面试题整理

说说js的数据类型

基本数据类型包含number,string,null,undefined,boolean,以及es6新增的symbol

引用类型 object

基本数据类型和引用类型的区别

存放方式不同,基本数据类型存放在栈中,引用类型存放在堆中

数组去重有哪些方法

1-indexOf()通过循环返回值-1判断是否存在,不存在就加到一个新数组中。

2-用json去重

var arr=[1,2,33,2,4,5,33,5,7,8,1,3];
   var result=[];
   var temp={};
   for( var i=0;i<arr.length;i++){
   if(!temp[arr[i]]){
     result.push(arr[i]);
     temp[arr[i]]=1;
   }
}

console.log(result);

3-用es6 set去重

var arr=['qwe','asdasd','xxxxx','qwe',55555,12312,55555,454222];
            var newarr = new Set(arr)
            
            console.log(Array.from(newarr))

同步和异步的区别

讲讲回流和重绘

页面首次加载会触发回流,像改变元素尺寸,位置等会触发回流,而改变元素颜色会触发重绘。

浏览器的渲染过程

行内元素和块级元素的区别,以及它们之间的转换

行内元素不会自动换行,设置宽高无效,对margin设置左右有效,上下无效,padding都无效。块级元素可自动换行,可以设置宽高,margin,padding都有效。

通过设置Display:inline-block,block,inline来进行转换

选择器的优先级

说说bfc

块级格式化上下文,用于形成一个独立的渲染区域,内部元素的渲染不会影响到外界。

触发条件:浮动float不为none,定位position为absolute和fixed,overflow不为visible

使用场景:清除浮动,两栏布局,解决上下两个元素margin重叠

清除浮动的方法

https://blog.csdn.net/qwguanbin/article/details/107317634?spm=1001.2014.3001.5501

什么是盒模型

盒子模型分为两种 第一种是W3c标准的盒子模型(标准盒模型) 、第二种IE标准的盒子模型(怪异盒模型)

标准盒模型的大小就是内容大小,不包含padding ,border的大小,而IE盒模型的大小是包含padding +border。

垂直水平居中的实现方案

https://blog.csdn.net/qwguanbin/article/details/107519442?spm=1001.2014.3001.5501

link和@import的区别。

@import是 CSS 提供的语法规则,只有导入样式表的作用;link是HTML提供的标签,不仅可以加载 CSS 文件,还可以定义 RSS、rel 连接属性等。

可以通过 JS 操作 DOM ,插入link标签来改变样式;由于 DOM 方法是基于文档的,无法使用@import的方式插入样式。

跨域的原因和解决方案。

说说原型和原型链还有实例

每个函数都会有一个prototype属性,这个属性是一个指针,指向的是原型对象,原型对象相当于一个公共的区域,所有同一个类的实例都可以访问到这个原型对象,所以一般可以将对象中共有的内容统一设置到原型对象中,方便后续可直接调用。

所有实例都会有一个隐含的属性(__proto__),指向构造函数的原型对象,原型对象也可能还会有原型对象,像这样一层层的就构成原型链。

什么是闭包

闭包就是能够读取其他函数内部变量的函数。

闭包的用途:一个是可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。

闭包的缺点:由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。

let,const,var的区别

let定义的变量可修改,const不可修改。var存在变量提升,let和const不存在变量提升。

什么是this

unll和undefined的区别

防抖和节流怎么实现

一次完整的http请求经历哪7个步骤

前端性能优化有哪些方案。

优雅降级和渐进增强是什么意思

判断变量类型有哪几种方式

typeof()

Object.prototype.toString.call()

jquery.type()

instanceof

constructor

说说es6的新特性

https://blog.csdn.net/qwguanbin/article/details/107298716?spm=1001.2014.3001.5501

说说js事件冒泡

说说call()和apply()是什么,以及区别

常用的浏览器内核有哪几种

谷歌内核,火狐内核,ie内核,苹果内核

如何判断两个变量相等

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值