1.JS的数据类型有哪些
原始类型:Number string Boolean null undefined symbol Bigint
对象类型:Object
2.原型的作用是什么
之所以存在原型,是因为JS语言要实现面向对象,而原型是面试对象的实现手段之一,一个能支持面向对象的语言必须做到一点:能判断一个实例的类型。再JS中 通过原型就可以知晓某个对象从属于那个类型,换句话说,原型的存在避免了类型的丢失。
3.GET和POST有什么区别?
从三个方面去说,
1)协议层面:也就是语义有差别,都是再请求的时候最先出现得单词,它可以表面客户端想要干嘛get表示我要拿东西。post表示我要提交东西
2)应用层面:再get和post发请求得时候 一般get得请求体是为空的 有请求体 只不过为空而已 而不是没有请求体 请求体就是 当你再发那个http报文得时候 第一行是请求行 后面就是键值对了也就是请求头 然后下面才是请求体 get是为空的
3)浏览器层面 1)get的参数会显示在浏览器地址栏中,而post的参数不会显示在浏览器地址栏中; (2)使用post提交的页面在点击【刷新】按钮的时候浏览器一般会提示“是否重新提交”,而get则不会; (3)用get的页面可以被搜索引擎抓取,而用post的则不可以;4)get请求得参数会保留在浏览器 post不会 5)在发送数据得时候,get向URL添加数据;URL得长度是受限制得 最大为2048个字符 post没限制
4.promise解决了什么问题?
1)首先promise没有完全消除回调,也没有完全消除回调地狱 比如 promise.then(()=>{}),它只是让回调变得可控了,promise其实最大的作用就是它统一了异步操作的实现 完全消除回调和消除回调地狱是再统一promise之后 再ES7衍生的那种 async 和await 最终才完全的消除回调和回调地狱。
5.什么是vue的响应式?
vue数据响应式设计的初衷是为了实现数据和函数的联动,当数据变化后,用到该数据的联动函数会自动重新运行,具体再vue开发中 数据和组件的render函数关联再一起 从而实现了数据变化自动运行render 再感官上就看到了组件的重新渲染,除了vue自动关联的render函数 其他还有很多使用到vue响应式的场景,比如computed、watch等等 不能仅把vue的数据响应式想象成和render的关联
6.如何理解JS的异步?
JS是一门单线程的语言,这是因为它运行再浏览器的渲染主线程里面,而渲染主线程只有一个,而渲染主线程承担着诸多的工作,渲染页面,解析HTML,解析CSS,执行JS等等 如果使用哦那个不的方式 就极有可能导致主线程产生阻塞,从而导致消息队列中的很多其他任务无法得到执行,这样一来,一方面会导致繁忙的主线程白白消耗事件,另一方面导致页面无法及时更新,给用户造成卡死现象 所以浏览器采取异步的方法来避免,具体做法是当某些任务发生时 比如计时器 网络 事件监听 主线程将其他任务交给其他进程去处理 自身立即结束任务的执行 转而执行后续代码 当其他线程完成时 将事先传递的回调函数包装成任务 加到消息队列的末尾派对 等待主线程调度执行 在这种异步模式下 浏览器永远不阻塞 从而最大限度的保证了单线程的流程运行。