1、axios和ajax有啥区别?
axios是封装后的ajax,ajax不符合现在mvvm的架构,所以对其进行了封装。ajax的缺点:(1)基于原生的XHR开发,XHR本身的架构不清晰;
(2)JQuery整个项目太大,单纯使用ajax却要引入整个JQuery非常的不合理;
(3)不符合关注分离(Separation of Concerns)的原则;
(4)配置和调用方式非常混乱,而且基于事件的异步模型不友好。
axios的优点:
(1)从浏览器中创建 XMLHttpRequest;
(2)支持 Promise API;
(3)从 node.js 创建 http 请求;
(4)转换请求和响应数据;
(5)自动转换JSON数据。
2、axios怎么实现并发请求?
axios.all 在all里面传入数组,在数组里写上想要发送的请求 然后.then拿到最终的请求结果
3、typeof 和 instanceof区别
typeof和instanceof的区别是:typeof的返回值是一个字符串,用来说明变量的数据类型;instanceof的返回值是布尔值,用于判断一个变量是否属于某个对象的实例。
typeof 一般只能返回如下几个结果: number, boolean, string, function, object, undefined,symbol
对于Array,Null等特殊对象使用typeof一律返回object,这是typeof的局限性。
4、symbol是什么?
symbol 是ES6 引入了一种新的基本数据类型,表示独一无二的值,是 JavaScript 语言的第七种数据类型
Symbol数据类型的特点
1、Symbol的值是唯一的,用来解决命名冲突的问题
2、Symbol值不能与其他数据类型进行运算
3、Symbol定义得的对象的属性不能使用for…in 循环遍历,但是可以使用Reflect.ownKeys来获取对象 的所有键名
5、怎么减少项目打包后的体积
1.压缩图片
2.路由懒加载
3.移除源代码,替换压缩后的源码
4.修改babel.config.js配置文件
5.组件、api按需引入
6.静态资源文件的托管(CDN)
6、webpack打包原理?
webpack打包原理是将根据文件间的依赖关系对其进行静态分析,然后将这些模块按指定规则生成静态资源,当 webpack处理程序时,会递归地构建一个依赖关系图,其中包含应用程序需要的每个模块,然后将所所有这些模块打包成bundle。
webpack只是一个打包模块的机制,只是把依赖的模块转化成可以代表这些包的静态文件。并不是什么commonjs或者amd之类的模块化规范。webpack就是识别你的入口文件。识别你的模块依赖,来打包你的代码。
至于你的代码使用的是commonjs还是amd或者es6的import。webpack都会对其进行分析。来获取代码的依赖。
webpack做的就是分析代码。转换代码,编译代码,输出代码。webpack本身是一个node的模块,所以webpack.config.js是以commonjs形式书写的(node中的模块化是commonjs规范的)
webpack中每个模块有一个唯一的id,是从0开始递增的。整个打包后的bundle.js是一个匿名函数自执行。参数则为一个数组。数组的每一项都为个function。function的内容则为每个模块的内容,并按照require的顺序排列。
7、如果项目打包后html文件打开是空白页面,一般是啥问题,咋解决?
1、关掉router.js中的哈希模式 mode:hash
2、vue.config.js里的publicPatrh的/改成./
8、用css实现一个三角形?
div{
width:0;
height:0;
border:10px solid transparent;
border-top:10px solid pink;
}
9、js获取原型的四种方法
基础代码:
function R(){
}
let obj=new R();
//第一种:
obj.__proto__
//第二种:
R.prototype
//第三种:
obj.constuctor.prototype
//第四种:
Object.getPrototypeOf(obj)
10、如何将字符串转化为数字?
1、使用 Number() 方法,前提是所包含的字符串不包含不合法字符。
2、用 parseInt() 方法,parseInt() 函数可解析一个字符串,并返回一个整数。还可以设置要解析的数字的基数。当基数的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。
3、使用 parseFloat() 方法,该函数解析一个字符串参数并返回一个浮点数。
4、使用 + 操作符的隐式转换。 // if(+"123"<100)
5、使用 - * /等隐式转换。 // '123'-0;
网友评论