1.html和css
引入 css 有哪几种方式
1.使用 标签,引入外部CSS文件(1.通过@import,引入CSS文件(性能较差)2.将css的样式代码放在html文档的标签中,引入css)3.内联样式(标签内部书写)
position 属性有哪些值,分别什么含义
1.position: relative;相对定位(相对于自身)2.position: absolute;绝对定位(相对于最近一个有定位的父元素偏移)3.position: fixed;固定定位(相对于浏览器窗口)4.position:static:默认值
css 响应式布局
1.接在link中判断设备的尺寸,然后引用不同的css文件( )2.直接写在
flex:1是什么意思
1.让所有弹性盒模型对象的子元素都有相同的长度,且忽略它们内部的内容
CSS 弹性布局,哪些地方用到过
1.flex布局
如何实现不定宽高水平和垂直居中
1.最简单的flex布局display: flex;justify-content: center;align-items: center;2.利用table-cell外层容器display:table-cell;text-align:center;vertical-align:middle;内部元素vertical-align:middle;display:inline-block;3.使用CSS3 transform外层容器display:relative内部元素transform: translate(-50%,-50%);position: absolute;top: 50%;left: 50%;
什么是盒子模型
由content、padding、border、margin组成的元素就是盒子模型,用来设置元素在网页中的大小和位置。
2.js问题
const 和 let 区别,可以改变 const 定义的某个对象的属性吗
let与const都是只在声明所在的块级作用域内有效。let:无变量提升(未到let声明时,是无法访问该变量的)const:无变量提升,声明一个基本类型的时候为常量,不可修改;声明对象可以修改const arr = {name:'小可爱', age:'21'}arr.name = '萱萱'console.log(arr)因为对象是引用类型的,arr中保存的仅是对象的指针,这就意味着,const仅保证指针不发生改变,修改对象的属性不会改变对象的指针,所以是被允许的。也就是说const定义的引用类型只要指针不发生改变,其他的不论如何改变都是允许的。
对闭包的理解,以及哪些地方用过闭包,以及闭包的缺点
闭包 是指有权访问另一个函数作用域中的变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量1.函数嵌套函数2.函数内部可以引用外部的参数和变量3.参数和变量不会被垃圾回收机制回收优点是可以避免全局变量的污染,变量和方法私有化,不让外部修改这些属性缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露
对跨域了解吗,jsonp 的限制
跨域就是由于JavaScript同源策略的限制,使得a.com域名下的js无法操作b.com或c.a.com域名下的对象或数据。简单理解同一个 域名、相同端口、相同协议!JSONP(JSON with Padding),就是异步请求跨域的服务器端时,不是直接返回数据,而是返回一个js方法,把数据作为参数jsonp只支持get请求而不支持post请求在登录模块中需要用到session来判断当前用户的登录状态,这时候由于是跨域的原因,前后台的取到的session是不一样的,那么就不能就行session来判断.
1-10之间的随机数
var num=Math.floor(Math.random()*10+1);
javascript的typeof返回哪些数据类型
string,boolean,number,undefined,function,object
ES6 用到过吗,新增了哪些东西,你用到过什么
定义变量加入了 let const箭头函数Array.from() 将类数组对象与可遍历对象转换为数组类class
箭头函数,箭头函数的特点,应该是 this 的指向
箭头函数是匿名函数,不绑定自己的this,arguments,super,new.target箭头函数会捕获其所在上下文的this值,作为自己的this值,在使用call/apply绑定时,相当于只是传入了参数,对this没有影响
了解 MVVM 吗,和 MVC 的区别对象和类的区别,举个现实中的例子
你理解的面向对象
说一下原型链
ES6 新增的 set() 和 map() 有什么区别
数组去重
ES6:Array.from(new Set(arr));
哪些方法会改变原数组
shift:将第一个元素删除并且返回删除元素,空即为undefinedunshift:向数组开头添加元素,并返回新的长度pop:删除最后一个并返回删除的元素push:向数组末尾添加元素,并返回新的长度reverse:颠倒数组顺序sort:对数组排序splice:splice(start,length,item)删,增,替换数组元素,返回被删除数组,无删除则不返回
深拷贝和浅拷贝async 和 await 了解吗,(不太了解,只知道返回的是 promsie 对象)
call() 和 apply() 的区别和作用?
区别:apply()与call()作用没有区别,用法与call()方法稍有区别,就是call()的第二个参数(调用函数使用的参数),是一个一个传入的;而apply()的第二个参数的值是使用数组的形式传入的作用:在Javascript中,每个函数都包含两个非继承而来的方法,call和apply。这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内的this对象的值。apply方法接收两个参数,第一个参数是在其中运行函数的作用域,第二个是一个参数数组或者arguments对象。call方法与apply方法作用相同,第一个参数也相同,区别在于,其余的参数需要逐个列出。apply(thisArg, argArray);call(thisArg[,arg1,arg2…]);是使用call还是apply要看具体的情况。如果你知道所有参数或者参数的数量不多,可以使用call;如果参数的数量不确定,或者数量很大,或者你收到的是一个数组或者是个arguments对象,则需要使用apply。