今天整理一下,笔试面试题vue
但愿能够和你们共勉node
f = function(){return true};
g = function() {return false};
(function(){
if(g && [] == ![]){ g && []->false ![]-->false
f = function f(){return false};
}
})();
alert(f()) // true or false ?
//弹出 false控
复制代码
var num = 10;
var obj = {
num:8,
inner:{
num:6,
print:{
console.log(this.num);
}
}
}
num = 888;
obj.inner.print(); //6
var fn = obj.inner.print;
fn(); //888
(obj.inner.print)(); //6
(obj.inner.print = obj.inner.print)(); //888
复制代码
webpack代码分割。webpack
Vue官方文档:路由懒加载使用import('./Foo.vue') //返回promiseweb
nuxt.js是一个基于vue.js的通用应用框架,为node.js作vue作的服务端渲染提供了各类配置。面试
function extend(src){
let objClone = Array.isArray(obj) ? []:{};
if(src && typeof obj === 'object') {
for(key in src){
if(src.hasOwnProperty(key)){
//判断src子元素是否为对象,若是是,递归复制
if(src[key] && typeof src[key] === 'object'){
objClone[key] = deepClone(src[key]);
}else {
objClone[key] = src[key];
}
}
}
}
return objClone;
}
复制代码
.lazyvuex
在v-model后面加上.lazy会将input事件中的同步输入框的数据转变为在change事件中同步,这是数据就不会实时改变,而是在失焦或者按回车时才更新。后端
.numberpromise
使用.number能够将输入转换为Number类型,不然你输入的事数字,但它的类型实际上是string,在数字输入框中比较有用。bash
.trim服务器
.trim修饰符能够自动过滤输入的首尾空格
<script>
export default {
data(){}, // data(){return{}}
created:()=>{ //created () {this.start()}
this.start();
},
methods:{
start() {
console.log('vue start')
setTimeout(function(){
this.end();
},50);
}
},
end(){
console.log('setTimeout end');
}
}
</script>
复制代码
一、流程顺序
“相应视图—>修改State”拆分红两部分,视图触发Action,Action再触发Mutation。
二、角色定位
基于流程顺序,两者扮演不一样的角色。
Mutation:专一于修改State,理论上是修改State的惟一途径。
Action:业务代码、异步请求。
三、限制
角色不一样,两者有不一样的限制。
Mutation:必须同步执行。
Action:能够异步,但不能直接操做State。
Watch:{
obj.a:funtion(){
//do things
}
}
复制代码