说说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.youkuaiyun.com/qwguanbin/article/details/107317634?spm=1001.2014.3001.5501
什么是盒模型
盒子模型分为两种 第一种是W3c标准的盒子模型(标准盒模型) 、第二种IE标准的盒子模型(怪异盒模型)
标准盒模型的大小就是内容大小,不包含padding ,border的大小,而IE盒模型的大小是包含padding +border。
垂直水平居中的实现方案
https://blog.youkuaiyun.com/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.youkuaiyun.com/qwguanbin/article/details/107298716?spm=1001.2014.3001.5501
说说js事件冒泡
说说call()和apply()是什么,以及区别
常用的浏览器内核有哪几种
谷歌内核,火狐内核,ie内核,苹果内核
如何判断两个变量相等