代码拉取完成,页面将自动刷新
重点复习:Js+es6+vue
基础问题
1.比较擅长哪个技术?如何理解该技术?哪个点比较深刻
2.在html中如果文件路径找不到怎么排查?
3.前后端数据交互的数据格式有哪些?
• 现在主流的数据格式是json;
• xml基本不怎么用了;
• from表格
4.异步编程的解决方案
• 1.回调函数
• ajax(url, () => {
• // 处理逻辑
• })
• 2.事件监听
• 3.发布publish/订阅subscribe
• 4. Promises对象
5.JS进行数据类型转换的方式
• 转为字符串:1.使用.toString或者String。2. 使用+
• 转为数值类型:1.Number()函数 2.parseInt() 3.parseFloat()
• 转换为布尔类型:1.Boolean()函数 2.!!
6.JS函数的作用? 改this指向?
• 作为一个类构造器使用
• 作为闭包使用
• 作为构造函数调用
• call,apply,bind call和apply会立即调用函数,bind不会立即调用函数call和apply传递的参数也不同
• 普通函数调用,此时 this 指向 window
• 构造函数调用, 此时 this 指向 实例对象
• 对象方法调用, 此时 this 指向 该方法所属的对象
7.JS的基本数据类型和引用数据
• 基本数据类型:undefined、null、boolean、number、string、symbol
• 引用数据类型:object、array、function
8.ES6的新特性
• 块级作用区域 let a = 1;
• 可定义常量 const PI = 3.141592654;
• 变量解构赋值 var [a, b, c] = [1, 2, 3];
• 字符串的扩展(模板字符串) var sum =${a + b};
• 数组的扩展(转换数组类型) Array.from($('li'));
• 函数的扩展(扩展运算符) [1, 2].push(...[3, 4, 5]);
• 对象的扩展(同值相等算法) Object.is(NaN, NaN);
• 新增数据类型(Symbol) let uid = Symbol('uid');
• 新增数据结构(Map) let set = new Set([1, 2, 2, 3]);
• for…of循环 for(let val of arr){};
• Promise对象 var promise = new Promise(func);
• Generator函数 function* foo(x){yield x; return x*x;}
• 引入Class(类) class Foo {}
• 引入模块体系 export default func;
• 引入async函数[ES7]
9.MVVM的理解
• 一个model+view+viewModel框架
• 该开发模式主要体现在vue.js中
• M层:模型 代表数据模型,数据和业务逻辑都在Model中定义。
• V层:视图 代表UI视图,负责数据的展示
• VM层:VM是MVVM思想的核心,因为VM是V和M的调度者。 负责监听Model中数据的改变并且控制视图的更新
10.vue的双向数据绑定
• 数据变化更新视图,视图变化更新数据
进阶问题
1.vue全家桶vuex的作用
• vue全家桶:
• vue(整体架构) + vuex(状态管理) + vue-router(路由) + vue_resource || axios(ajax请求) + mint-UI(移动端UI框架库) || antd-vue(PC端UI框架库)
• react全家桶:
• react(整体架构) + redux || mobx(状态管理) + react-router(路由) + axios(ajax请求) + antd || react-material || antd-model(UI框架库)
2.做项目的时候遇到了什么问题?怎么解决的?
3.对于jquery和axios的理解
4.webpack如何使用?
5.谈谈你对前端工程化项目的理解?
6.后台数据展示到页面上的过程?
7.vuex 的理解
• 状态机,组件内的共享数据, 四个属性,提交突变,分发动作, map 四个辅助函数
8. promise
• 成功状态,失败状态, 一般封装异步函数,async
• 每一个 Promise 都有一个 .then 方法,这个方法接受两个参数,第一个是处理 resolved 状态的回调,一个是处理 rejected 状态的回调
问题
1.介绍 JavaScript 的原型,原型链?有什么特点?
• **原型:**
• 1.JavaScript 的所有对象中都包含了一个 [proto] 内部属性,这个属性所对应的就是该对象的原型
• 2. JavaScript 的函数对象,除了原型 [proto] 之外,还预置了 prototype 属性
• 3. 当函数对象作为构造函数创建实例时,该 prototype 属性值将被作为实例对象的原型 [proto]。
• **原型链:**
• 1. 当一个对象调用的属性/方法自身不存在时,就会去自己 [proto] 关联的前辈 prototype 对象上去找
• 2. 如果没找到,就会去该 prototype 原型 [proto] 关联的前辈 prototype 去找。依次类推,直到找到属性/方法或 undefined 为止。从而形成了所谓的“原型链”
• **原型特点:**
• JavaScript 对象是通过引用来传递的,当修改原型时,与之相关的对象也会继承这一改变
2. Javascript 如何实现继承?
• 1.构造函数绑定:使用 call 或 apply 方法,将父对象的构造函数绑定在子对象上
• function Cat(name,color){
• Animal.apply(this, arguments);
• this.name = name;
• this.color = color;
• }
• 2.实例继承:将子对象的 prototype 指向父对象的一个实例
• Cat.prototype = new Animal();
• Cat.prototype.constructor = Cat;
• 3.拷贝继承:如果把父对象的所有属性和方法,拷贝进子对象
• function extend(Child, Parent) {
• var p = Parent.prototype;
• var c = Child.prototype;
• for (var i in p) {
• c[i] = p[i];
• }
• c.uber = p;
• }
• 4.原型继承:将子对象的 prototype 指向父对象的 prototype
• function extend(Child, Parent) {
• var F = function(){};
• F.prototype = Parent.prototype;
• Child.prototype = new F();
• Child.prototype.constructor = Child;
• Child.uber = Parent.prototype;
• }
• 5. ES6 语法糖 extends:class ColorPoint extends Point {}
• class ColorPoint extends Point {
• constructor(x, y, color) {
• super(x, y); // 调用父类的constructor(x, y)
• this.color = color;
• }
• toString() {
• return this.color + ' ' + super.toString(); // 调用父类的toString()
• }
• }
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。