js、jq小实例面试

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_36784628/article/details/99589787

1、动态设置显示的位置(x、y是获得鼠标的坐标),css不需设置left、top等

$(".rt_mouse_box").show().css({left:x,top:y});

2、什么是promise、和用法:

      解决地狱回调问题 

3、跨域:

引起原因:浏览器的同源策略、协议名、域名、端口号必须一致

解决办法:1、jsonp(前端和后台)2、cors(后台)3、服务器代理(后台)

jsonp实现方法原理:scrict标签是不受同源策略影响、js代码动态添加scrict,

var scrict = document.creatElement("crict")

scrict.src = "http://xxxxx?callbakc=getdata"

function getdata(){
    console.log(data)
}
document.body.appendchild(scrict)

4、闭包:

定义:嵌套函数中,内部函数访问外部函数的局部变量,则内部函数就是闭包

优点:可以延长外部函数的局部变量的生命周期

缺点:也是优点造成的,就是容易出现内存的泄漏

function fun(){
   var count = 1
    retutn function(){
        count++
        console.log(count)
    }
}
var fun2 = fun()
fun2() //2
fun2()//3

5、如何实现rem的适配

原因:同一个元素或盒子在不同大小的屏幕上要有一样的大小比例

实现原理:1rem等于html根元素的font-size的大小

实现步骤:

//获取屏幕宽度
var width = document.documentElement.clientWidth
//查找根元素
var htmlNode = document.querySelector("html")
//设置font-size
htmlNode.style.font-size = width+"px"

6、变量提升(预处理)

     定义:代码执行之前会把变量和函数收集,变量是声明提前但赋值不会,函数是整体提前。

console.log(name)//undefined
var name = "xioaming"

console.log(name)//xioaming
func() //xioaming
function func(){
    console.log(name)
}

7、vue和react的区别

相同点:(1)都是组件式开发和虚拟dom

               (2)可以通过父子组件传值

               (3)通过数据来驱动

不通点:(1)vue是双向绑定、react数据流是单向的

                (2)react是使用jsx,即html下载js里,而vue是分开

8、vue的通讯方式有哪几种

1、props(父传子)

2、自定义事件(子传父)

3、消息的订阅与发布(pubsub)(任意组件间)

4、vuex(任意组件间)

5、slot(插槽,主要传标签)

9、es6去重

var arr  = [1,2,3,3,4,5]

var result = new Set(arr)

var newarr = [...result]

10、数组元素对应作为实参

var arr=[1,2,3],
function test(a,b,c){

}
test.apply(this,arr) //a=1,b=2,c=3


call
test.call(this,1,2,3) //a=1,b=2,c=3

bind
test.bind(this,1,2,3) //不调用改变this

11、前端优化方法

(1)css放顶部,js放底部;(2)异步路由;(3)雪碧图(小图标放到一个图)

(4)减少请求;(5)压缩资源;(6)减少dom操作、和循环

猜你喜欢

转载自blog.csdn.net/qq_36784628/article/details/99589787