塘沽网站建设公司,网站怎么做app吗,access是不是网页制作工具,线上营销图片目录
一、 如何理解原型与原型链
二、 js继承
三、 vuex的使用
1.mutation和action的区别
mutation
action
2.Vuex都有哪些API
四、 前端性能优化方法
五、 类型判断
题目
#xff08;1#xff09;typeof判断哪个类型会出错#xff08;即结果不准确#xff09;1typeof判断哪个类型会出错即结果不准确
2Object.prototype.toString.call()判断哪个类型会出错即结果不准确
1.typeof用来查看字面量或者变量的数据类型
2.instanceof判断自定义构造函数实例
六、 null和undefined的区别
七、 vue父子组件挂载顺序
1加载渲染过程
2更新过程
3销毁过程
八、 computed和watch的区别
1应用场景不同
2computed计算属性
3watch监听
4总结区别
九、 vue-router原理以及两种模式区别
1路由有哪两种模式默认是哪种模式
2两种模式区别是什么
3讲一下vue-router原理
一、 如何理解原型与原型链 构造函数有个prototype对象原型该对象有个“constructor”属性指向构造函数。 每个对象都有一个“proto”属性指向它的构造函数的“prototype”属性。 构造函数的prototype对象也有一个“proto”对象它指向Object的prototype对象。 当我们访问对象中的属性时候会先访问该对象中的本身的属性私有属性如果访问不到会查找对象的“proto”指向的构造函数的prototype对象如果其中有要访问的属性就使用该值否则继续访问prototype的“proto”在其中查找要访问属性。这样一直上溯到Object对象。这个就是“原型链” 函数 - prototype - 对象(函数的prototype)
对象 - 对象._proto -对象(函数的prototype)
原型和原型链具体可看这篇文章JS的基础知识学习二(原型和原型链的基础理论_七小山的博客-CSDN博客
二、 js继承 原型继承 借用构造函数继承 组合继承 寄生组合式继承
三、 vuex的使用
1.mutation和action的区别
Vuex 中的 action 和 mutation 都是用来管理状态的但是它们有一些重要的区别。 mutation 是用来直接修改状态的它是同步的。 action 是用来执行异步操作的最终会调用 mutation 来修改状态。
这样设计的原因是在大多数情况下状态的修改应该是同步的而 action 则可以用来执行异步操作比如请求服务器数据。另外, 为了保证数据的一致性, Vuex 要求所有状态的修改都必须经过 mutation 来完成
mutation
this.$store.commit(“mutation函数名”发送到mutation中的数据)
更改store中状态的唯一方法是提交mutation
action
this.$store.dispatch(‘action中的函数名’发送到action中的数据)
2.Vuex都有哪些API state getters mutations actions module 辅助函数mapState、mapGetters、mapMutations、mapActions createStore 其中state和getters用来保存状态mutations和actions用来改变状态
四、 前端性能优化方法
页面展示可以分为3个阶段请求页面加载和解析页面渲染。
主要优化方法请参考知识点链接
1、请求数据阶段主要指标是服务器响应时间从服务器角度优化。
2、加载和解析页面阶段性能优化的主要思路是减少请求数量、降低资源的大小和避免阻塞。
3、渲染阶段优化思路是避免重绘和重排。
五、 类型判断
题目
1typeof判断哪个类型会出错即结果不准确
typeof判断null和数组会出错
2Object.prototype.toString.call()判断哪个类型会出错即结果不准确
Object.prototype.toString.call()判断自定义对象只能得到[object Object]的结果所以如果需要判断构造函数可以结合instanceof或者constructor来使用
1.typeof用来查看字面量或者变量的数据类型
typeof 1 // number
typeof 1 // string
typeof false // boolean
typeof {} // object
typeof [] // object
typeof new Date() // object
typeof (() {}) // function
typeof undefined // undefined
typeof Symbol(1) // symbol
由结果可知typeof可以测试出number、string、boolean、Symbol、undefined及function而对于null及数组、对象typeof均检测出为object不能进一步判断它们的类型
2.instanceof判断自定义构造函数实例
({}) instanceof Object // true
[] instanceof Array // true
new Date() instanceof Date // true
/123/g instanceof RegExp // true
六、 null和undefined的区别 本身都表示“没有”但null表示引用类型的对象为空undefined则表示变量未定义 在相等判断时候null和undefined是相等的 null表示对象空指针undefined表示变量未定义 typeof类型判断是不一样
typeof null // object
typeof undefined // undefined
Number(null) // 0
Number(undefined) // NaN
七、 vue父子组件挂载顺序
1加载渲染过程 父 beforeCreate - 父 created - 父 beforeMount - 子 beforeCreate - 子 created -子 beforeMount - 子 mounted - 父 mounted 2更新过程 父 beforeUpdate - 子 beforeUpdate - 子 updated - 父 updated 3销毁过程 父 beforeDestroy - 子 beforeDestroy - 子 destroyed - 父 destroyed 八、 computed和watch的区别
1应用场景不同
computed一般用于在渲染中计算得到一个新值
watch 用在监听数据变化
2computed计算属性 使用方法和data中的数据一样但是类似一个执行方法 在调用时候不加 必须有return返回 如果函数所依赖的属性没有发生变化从缓存中读取
3watch监听 watch的函数名称必须和data中的数据名一致 watch中的函数有两个参数前者是newVal后者是oldVal watch中的函数是不需要调用的 watch只会监听数据的值是否发生改变而不会去监听数据的地址是否发生改变要深度监听需要配合deeptrue属性使用 immediate:true 页面首次加载的时候做一次监听
4总结区别 功能computed是计算属性watch是监听一个值的变化执行对应的回调 是否调用缓存computed函数所依赖的属性不变的时候会调用缓存watch每次监听的值发生变化时候都会调用回调 是否调用returncomputed必须有watch可以没有 使用场景computed当一个属性受多个属性影响的时候例如购物车商品结算watch当一条数据影响多条数据的时候例如搜索框 是否支持异步computed函数不能有异步watch可以
九、 vue-router原理以及两种模式区别
1路由有哪两种模式默认是哪种模式
前端路由有两种模式HTML5即history)和hash默认是hash模式。这两种模式本质是不同的底层浏览器技术
2两种模式区别是什么
import {createRouter, createWebHistory, createWebHashHistory} from vue-router;
import routerConfig from ./route.config;
const router createRouter({// createWebHashHistoryhistory: createWebHistory(),routes: routerConfig
});
可以看到在使用createRouter创建vue路由时候可以指定使用HTML5createWebHistory还是hash模式createWebHashHistory
比如如果访问home页hash是这样的http://localhost:8080/#/homeHTML5模式是这样的http://localhost:8080/home HTML5模式的路由没有#字符而是在域名后直接写路径更加优雅 由于#后面的字符不会发给服务器因此hash路由SEO比较差且不会在服务器生成日志记录 HTML5需要服务器在访问不同的路径时候都能fallback到index.html因此相对麻烦 3讲一下vue-router原理
前端路由的原理关键有2点 可以修改url但不会引起刷新从而在不刷新的页面的情况下跳转路由。 监听url改变根据url渲染对应组件
hash是通过浏览器提供的locationAPI修改url通过onhashchange方法监听hash改变history通过浏览器提供的history.pushState或者history.replacestate修改url通过popState事件监听url改变