概述
1.什么是闭包?(js)
闭包是一个可以读取其他函数内部变量的函数;本质上是将函数内部和函数外部嫁接起来的桥梁。优点是能读取函数内部的变量,能保证这些变量永远保存在内存中。缺点:一是使用不当时会导致内存泄露,解决方法是在退出函数之前,将不使用的局部变量全部删除,二是会改变父级的值。
2.如何解决js的数组去重。(百度上面有很多种,可以看看)(js)
数组递归去重
Array.prototype.distinct =
function
(){
var
arr =
this
,
len = arr.length;
arr.sort(
function
(a,b){
//对数组进行排序才能方便比较
return
a - b;
})
function
loop(index){
if
(index >= 1){
if
(arr[index] === arr[index-1]){
arr.splice(index,1);
}
loop(index - 1);
//递归loop函数进行去重
}
}
loop(len-1);
return
arr;
};
var
a = [1,2,3,4,5,6,5,3,2,4,56,4,1,2,1,1,1,1,1,1,56,45,56];
var
b = a.distinct();
console.log(b.toString());
//1,2,3,4,5,6,45,56
3.如何优化前端性能?
(1).减少http请求(css雪碧图)
(2).css放在顶部,js放在底部
(3).合并请求
(4).使用组件防止代码冗余
4.ajax请求数据的方法?(js)
(1)原生态方法
1.创建XMLHTTPRequest对象
2.使用open方法设置和服务器的交互信息
3.设置发送的数据,开始和服务器端交互
4.注册事件
5.更新界面
get请求:
//步骤一:创建异步对象
var ajax = new XMLHttpRequest();
//步骤二:设置请求的url参数,参数一是请求的类型,参数二是请求的url,可以带参数,动态的传递参数starName到服务端
ajax.open('get','getStar.php?starName='+name);
//步骤三:发送请求
ajax.send();
//步骤四:注册事件 onreadystatechange 状态改变就会调用
ajax.onreadystatechange = function () {
if (ajax.readyState==4 &&ajax.status==200) {
//步骤五 如果能够进到这个判断 说明 数据 完美的回来了,并且请求的页面是存在的
console.log(xml.responseText);//输入相应的内容
}
}
post请求:
//创建异步对象
var xhr = new XMLHttpRequest();
//设置请求的类型及url
//post请求一定要添加请求头才行不然会报错
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.open('post', '02.post.php' );
//发送请求
xhr.send('name=fox&age=18');
xhr.onreadystatechange = function () {
// 这步为判断服务器是否正确响应
if (xhr.readyState == 4 && xhr.status == 200) {
console.log(xhr.responseText);
}
};
5.事件代理:(js)
事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。(通过子级查找父级,通过父级进行代码的操作)
事件冒泡:鼠标事件一级一级向上传递到document
6.es6十大特性:
箭头函数,定义变量的let,定义常量的const,解构赋值,
7.cookie和session的区别和用法 (js)
cookie和session都是用来跟踪浏览器用户身份的会话方式。
cookie与session的区别是, cookie数据保存在客户端,session数据保存在服务器端。
session是放在服务器上的,过期与否取决于服务期的设定,cookie是存在客户端的,过去与否可以在cookie生成的时候设置进去。
(1)、cookie数据存放在客户的浏览器上,
session数据放在服务器上
(2)、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session
(3)、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE
(4)、单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能3K。
localstorage存储的数据窗口关闭之后会一直存到浏览器,除非手动清除,sessionstorage存储的数据窗口关闭之后就会清掉
8.原型和原型链(js)
9.css3有什么新的属性
box-shadow,阴影,border-radius,圆角,transform:
rotate旋转 scale 变形,animation,动画
10.html5有什么新的特性
语义化标签(nav,header,footer)
增强型表单(如color,date,datetime,email)
视频和音频(audio,video )
canvas绘图等
11.vue路由,跳转页面,router.push() router.go()
12.vue中8种组件通信方式
1.prop - $emit 父子组件传值
prop(父组件向子组件传值)
$emit(子组件向父组件传值)
2.$children/$parent
3.provide/reject
4.ref
5.eventBus
6.Vuex(状态管理机制)
7.localStorage
/ sessionStorage
13.vue开发中常用的指令有哪些?
v-model 用于表单输入,实现表单控件和数据的双向绑定
v-show
与 v-if
: 条件渲染, 注意二者区别
使用了v-if的时候,如果值为false,那么页面将不会有这个html标签生成。 v-show则是不管值为true还是false,html元素都会存在,只是CSS中的display显示或隐藏
v-bind 当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM
v-on:click 可以简写为@click,@绑定一个事件。如果事件触发了,就可以指定事件的处理函数
v-for
:基于源数据多次渲染元素或模板块
14.vue的生命周期
创建前beforecreate
创建后created
挂载前beforemounte
挂载后mounted
beforeupdate更新前
updated更新后
beforedestroy销毁前
destroyed销毁后
15.关于methods,computed,watch这三者之间博主的看法
methods是用来定义方法的,computed用于计算数据的,watch和methods或者computed一起使用,可以动态监听methods或者computed的值
打个比方,(实际工作项目中用到了,其实之前也不是很懂的,分享给大家,说的不对可以指出来哦~)
当你需要判断你的名字和电话号码是否输入且输入正确时,你在watch中定义一个和computed中的方法一样的名称,类似于
computed: {
ifNext(){
//这里输入你需要的代码
if(this.username!=''&&this.phone!=''){
console.log("aaa")
}
}
},
watch: {
ifNext(val1,val2){
this.username = val1
this.phone = val2
}
}
这样你就可以判断你的名字和电话号码是否输入且输入正确时,再进行操作下一步
待续~
最后
以上就是大气猎豹为你收集整理的遇到过的前端面试题目(js,css3,html5,vue)的全部内容,希望文章能够帮你解决遇到过的前端面试题目(js,css3,html5,vue)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复