ES6的新特性,原生ajax发送请求,js中new操作符等等,15道题

“能跨越的高墙 都会成为自己的盾牌”放松小文案

1、ES6的新特性有哪些,举例说明。

1.块作用域构造Let and Const
一个声明变量,一个声明常量
let a=1; const A=1
2.箭头函数
()=>{}
3.默认参数
function Person(x=10,y=20){
	this.x = x;
	this.y = y;
}
4.模板对象(模板字符串)
	(1)简化字符串的拼接
	(2)模板字符串必须要(``)包含 
	(3)变化的部分使用${XXX}定义

5.解构赋值
	1、理解:
		从对象或数组中提取的数据,并赋值给变量(多个)
	2、对象
		let{n,a} = {n:"小涛涛",a:18};
		数组
		let[a,b] = [1,"国产007"];
	3、用途:给多个形参赋值
6.多行字符串
7.增强的对象文本
8.Promises
	1-Promise:代表了未来某个将要发生的事件(通常就是一个异步操作)
	2-可以将异步操作以同步流程表达出来,避免了层层嵌套的回调函数
	3-Es6的promise是一个构造函数,用来生成promise实例	
	4-使用promise基本步骤(2)
	(1)创建promise 对象
	①Let promise = new Promise((resolve,reject)=>{
	1)初始化 promise的状态行为pending
	2)If(异步操作成功){
	a.Resolve(value)//修改promise 的状态为 fullfilled
	3)}else{
	a.Reject(errMeg)//修改premise的状态为 rejected
	4)}})
	(2)调用promise 的then()
	(3)Promise.then(function(){
	①Result => console.log(result);
	②errMag =>alert(errMag);
	(4)})
	(5)Promise对象分为三种状态
	①Pending 初始化状态
	②Fullfilled 成功状态
	③Rejected失败状态
9.类Class
10.Modules
11.Symbol

2、写出原生ajax发送请求的过程(fetch或者xhr都可以)

//readyState
	 0: 请求未初始化
	 1: 服务器连接已建立
	 2: 请求已接收
	 3: 请求处理中
	 4: 请求已完成,且响应已就绪
var xml=null
if(window.XMLHttpRequest){
 xhr=new XMLHttpRequest()
}else{
 xhr=new ActiveXobject("microsoft.XMLHTTP")
}
xhr.open("get",地址,true)
xhr.send()
xhr.onreadystatechange=function(){
 if(xhr.readyState==4&&xhr.status==200){
}else{}
}

3、js中new操作符做了哪些事情

new操作符新建了一个空对象,这个对象原型指向构造函数的prototype,执行构造函数后返回这个对象
1.创建一个空对象
2.这个对象的原型指向构造函数的prototype
3.绑定this指向,执行构造函数
4.确保返回的是对象

4、写出移动端如何适配

rem 布局
vw/vh 布局
 百分比布局
响应式布局
px 为主,搭配 vw/vh、媒体查询与 flex 进行布局
·  编写 <meta> 标签设置 viewport 的内容 width=device-width,让网页宽度等于视窗宽度
·  在 css 中使用 px
·  在适当的场景使用flex布局,或者配合vw进行自适应
·  在跨设备类型的时候(pc <-> 手机 <-> 平板)使用媒体查询
·  在跨设备类型如果交互差异太大的情况,考虑分开项目开发

5、写出本地存储和cookie的区别

本地存储和 Cookies 区别在于
存储大小,本地存储官方说法是 5M 的大小,然而 Cookies 的存储大小更小并且和浏览器本身有关(大概在 4000个字节左右)
Cookie 存储的内容会保留在 HTTP 请求的 Header 中,并且会随每次请求发送到浏览器;然而本地存储只会保留在客户端,浏览器请求过程不会发送到服务端

6、说一下对proxy的理解

Proxy可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。Proxy 这个词的原意是代理,用在这里表示由它来“代理”某些操作,可以译为“代理器”

7、vue组件通信的方式

1.父向子,父通过强制绑定bind传数据,子通过props接受
2、子向父,通过$emit触发自定义事件来传值
3.利用eventBus方式,可以实现平级组件之间的通信(有内存泄漏问题)
4、ref

8、vue中data为什么要是函数返回对象的形式

如果data是对象的话,由于对象是引用类型,组件被复用的话,就会创建多个实例。本质上这些实例,都是同一个构造函数,为了避免组件之间的data冲突,data必须是一个函数。

9、vuex中如何实现数据持久化(数据刷新不掉)

为了防止刷新数据丢失,可以将一些数据保存在localstorage、sessionstorage或cookie中,可以保证页面刷新数据不丢失且易于读取。

10、vue中数据是对象或者数组的时候,数据发生变化页面不更新,什么原因,如何解决

原因:data外更改的数据在数组里的索引是获取不到的
解决:第一种修改对象的某一属性
第二种修改数组对象的某一属性

11、vue是如何实现数据双向绑定的

vue.js是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调来渲染视图。

12、写出什么是插槽,以及插槽的分类,分别在什么情况下使用

插槽有分类
   1.匿名插槽:没有名字的插槽
   2.具名插槽:有名字(name属性)的插槽
   3.作用域插槽:子组件中的数据只能子组件访问到,但是我们的插槽往往定义在父组件中,这个时候就需要作用域插槽来打通他们之间的关系,然后就能在父组件中愉快的使用子组件的数据了

什么时候使用插槽:当子组件被复用时,需要在特定的区域展示不同的定制化的内容。

13、vue中遍历输出一般要绑定key 请解释绑定key的目的是什么?绑定的key需要注意哪些点?

key唯一标识符定义不同的key值,告诉虚拟dom两个元素不一样可以直接替换了,列表过渡必须要有key如果两个相同的元素切换,会发现不能触发过渡效果,这是因为vue里面的diff算法和虚拟dom的元素,可以使用key=‘’设置不同的值来解决

14、什么是jsx,使用jsx语法有什么好处。

JSX 是 JavaScript 的一种扩展,为函数调用和对象构造提供了语法糖,特别是 React.createElement()。JSX和模板引擎或 HTML相似,但它不是。JSX 生成 React 元素,同时允许充分利用 JavaScript 的全部功能。
JSX优点:
	开发人员体验代码:更易读,更形象,类 XML 语法可更好地表示嵌套的声明式结构。
	非正式开发人员:可更容易修改代码,因 JSX 类似HTML
	减少语法错误,开发人员代码量变少,

15、React种如何改变组件状态?(代码说明)为什么不直接更新state状态

changeWeather(){//该方法挂到了原型上
	console.log(this,'this指向')
	this.setState({
		isHot:!this.state.isHot
	})
}
为什么不直接更新state状态:
直接修改state,reatc不会重新render,并且setState的更新是异步操作,因此状态更改可能在以后的时间点发生并且放在一个更新队列,将队列内的值一起改变并且一次 render,在改变state时候,需要重新生成一个对象取代替原来的 state,而不是直接修改原来的 state

概述:以上大体每个块都有的问题,移动端,ES6,Vue,React。想要了解jquery的话请持续关注

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值