mvvm bug很难被调试,应该如何定位问题?

Vue 是一套用于构建用户界面的渐进式框架, 自底向上逐层应用,核心只关注视图层

jsx 不是强制的,但jsx让代码更具可读性 jsx 中可以使用表达式,使用方法用 单大括号进行包裹

React 非常灵活,但它也有一个严格的规则

所有 React 组件都必须像纯函数一样保护它们的 props 不被更改。
3. 项目做过哪些性能优化,你知道的性能优化方式有哪些 4. 项目难点是什么,怎么解决的 5. 说一下diff运算的理解,虚拟dom的原理 9. 假如需要你封装一个表格组件,你的思路是什么 15. 你的设计稿是多大的,

>相同:在不影响客户体验的前提下,将频繁的回调函数,进行次数缩减.避免大量计算导致的页面卡顿.
>不同:防抖是将多次执行变为最后一次执行,节流是将多次执行变为在规定时间内只执行一次.

· 不要在同一行声明多个变量
· 使用对象字面量替代new Array这种形式
· If语句必须使用大括号

var 重复声明, 不能限制修改 函数级

let 不能重复声明 ,变量,块级 , 不存在变量提升 不会预处理 应用: 循环遍历加监听,使用

const 不能重复声明 常量 块级

let 防止重复声明,变量 只在代码块里起作用

const 防止重复声明,常量

1.如果有且仅有一个参数,()也可以不写

2.如果有且仅有一个语句并且是 return ,{ } 也可以不写

参数扩展、数组展开 ...扩展

map: 映射 : -- 对应 有多少个就会返回多少个

reduce: 进去很多 返回值 只有个 用于求平均分之类

filter : 过滤 过滤出你想要的值 用于 删除某一项

这个是相当于满足条件的那个就会返回出去


1. 继承是与 构造函数 相关的应用
2. 是指让一个构造函数去继承另一个构造函数的属性和方法
3. 继承是发生在两个构造函数之间的
4. 继承的是父级的属性和方法
出现在两个构造函数之间的关系
当A构造函数的属性和方法被B 构造函数的实例使用了
那么我们就说 B继承自A 构造函数
 A是B 的构造函数的父类
 B是A 的构造函数的子类
 
 

new 操作符具体干了什么?

创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型
属性和方法被加入到 this 引用的对象中
新创建的对象由 this 所引用,并且最后隐式的返回 this 

JS数组去重的几种常见方法?

2. 利用数组原型对象上的includes方法。 4. 利用数组原型对象上的 splice 方法

每个对象都有 __proto__ 属性,指向了创建该对象的构造函数的原型。其实这个属性指向了 [[prototype]],但是 [[prototype]]是内部属性,我们并不能访问到,所以使用 _proto_来访问。 对象可以通过 __proto__ 来寻找不属于该对象的属性,__proto__ 将对象连接起来组成了原型链。

async 和 await 相比直接使用 Promise 来说,优势在于处理 then 的调用链,能够更清晰准确的写出代码。缺点在于滥用 await 可能会导致性能问题,因为 await 会阻塞代码,也许之后的异步代码并不依赖于前者,但仍然需要等待前者完成,导致代码失去了并发性

    7. 基本数据类型与复杂数据类型有什么区别?

基本数据类型存储在栈内存,存储的是值。
复杂数据类型存储在堆内存,存储的是地址。当我们把对象赋值给另外一个变量的时候,复制的是地址,指向同一块内存空间,当其中一个对象改变时,另一个对象也会变化。

3. 新的多媒体标签 (视频 音频) 5. 浏览器的支持度(所有现代浏览器都支持 HTML5) 6. HTML5通过meta标签达到监听并适配设备屏幕的布局 7. WebSocket 本地缓存 可以是不同的浏览器就行通信 客户端和服务器之间的数据交换变得更加简单 8. 媒体查询 (响应式布局)

sass: 一个css的预编译语言 也就是用写代码的方式写css 然后把文件编译成css文件运行
· 均具有“变量”、“混合”、“嵌套”、“继承”、“颜色混合”五大基本特性
· Scss和LESS语法较为严谨,LESS要求一定要使用大括号“{}”,Scss和Stylus可以通过缩进表示层次与嵌套关系
· Scss无全局变量的概念,LESS和Stylus有类似于其它语言的作用域概念
 

你都做过哪些Vue的性能优化?

如果需要使用v-for给每项元素绑定事件时使用事件代理 在更多的情况下,使用v-if替代v-show 使用路由懒加载、异步组件 长列表滚动到可视区域动态加载 使用cdn加载第三方模块 还可以使用缓存(客户端缓存、服务端缓存)优化、服务端开启gzip压缩等。

项目中遇到过什么问题?

一些常见问题 1.自我介绍 2.面试完你还有什么问题要问的吗 3.你有什么爱好? 4.你最大的优点和缺点是什么? 5.你为什么会选择这个行业,职位? 6.你觉得你适合从事这个岗位吗? 7.你有什么职业规划? 8.你对工资有什么要求? 9.如何看待前端开发? 10.未来三到五年的规划是怎样的? 11.你的项目中技术难点是什么?遇到了什么问题?你是怎么解决的? 12.你们部门的开发流程是怎样的 13.你认为哪个项目做得最好? 14.说下工作中你做过的一些性能优化处理 15.最近在看哪些前端方面的书? 16.平时是如何学习前端开发的? 17.你最有成就感的一件事 18.你为什么要离开前一家公司? 19.你对加班的看法 20.你希望通过这份工作获得什么?


png24位的图片在iE6浏览器上出现背景,解决方案是做成PNG8
 

说说移动端是如何调试的?

(1)微信内置浏览器调试

项目测试没问题。但是放到线上就有问题了,你是怎么分析解决的?

(1)后端原因:后端接口,后端服务器 (2)域名、IP和路径问题 (4)线上库、框架、工具的版本和本地不—致问题 (5)线上和本地数据资源不—致问题

对前端界面工程师这个职位是怎么样理解的?

1. 前端是最贴近用户的程序员,前端的能力就是能让产品从 90分进化到 100 分,甚至更好
2. 参与项目,快速高质量完成实现效果图,精确到1px;
3. 与团队成员,UI设计,产品经理的沟通;
4. 做好的页面结构,页面重构和用户体验;
5. 处理hack,兼容、写出优美的代码格式;
6. 针对服务器的优化、拥抱最新前端技术。

说一下浏览器的缓存机制?

浏览器缓存机制有两种,一种为强缓存,一种为协商缓存
对于强缓存,浏览器在第一次请求的时候,会直接下载资源,然后缓存在本地,第二次请求的时候,直接使用缓存。
对于协商缓存,第一次请求缓存且保存缓存标识与时间,重复请求向服务器发送缓存标识和最后缓存时间,服务端进行校验,如果失效则使用缓存

WebPack 是一个模块打包工具,
他做的事情是,分析你的项目结构,找到javascript 模块(commonJs)以及其它的一些浏览器 不能直接运行的扩展语言 (Scss,jsx,vue 等) ,并将其打包为合适的格式以供浏览器使用

怎么判断一个对象为空对象

1. 将 json 对象转化为 json 字符串,在判断该字符串是否为 {}
 

gulp 是工具链 构建工具。
webpack 是文件打包工具,可以把项目的各种js 文件 css文件等打包合并成一个或多个文件,主要编译模块的方案

cookie 是网站为了标识用户身份存在用于本地终端 是在请求中携带,
 localStorage 存储持久数据,浏览器关闭后数据不丢失除非主动删除数据
 sessionStorage 数据在当前浏览器窗口关闭后自动删除
 cookie 设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭

localStorage: 长期存储数据,浏览器关闭后数据不的清除
 

href 是指向网络资源所在位置,建立和当前元素 或 当前文档之间的链接 , 用于超链接
src 是指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在的位置

第一次握手,由浏览器发起,告诉服务器,我要发起请求了,
第二次握手,由服务器发起,告诉浏览器我准备接受了,你发送吧
第三次握手,由浏览器发送,告诉服务器,我马上发送了准备接受吧
 

第一次挥手, 浏览器发起,发送给服务器 ,我东西发送完了,你准备关闭吧
第二次挥手,服务器发送,告诉浏览器,我东西接收完了(请求报文) 我准备关闭了 你也准备吧
第三个挥手, 服务器发起,告诉浏览器,我东西发送完了,(响应报文) 我准备关闭了 你也准备吧
第四次挥手, 浏览器发起,告诉浏览器,我东西接受完了,我准备关闭,你也准备吧

你平时做接口测试的过程中发现过哪些bug?

1.常规错误,接口没有实现,没按约定返回结果,边界值处理出错等
2. 输入异常值,(空值,特殊字符,超过约定长度,等) 接口抛错,没做封装处理
3. 输入错误的参数,多输入,少输入的参数,
4. 安全性问题,如明文传输,返回结果含有敏感信息,没对用户身份信息做校验,没做恶意请求拦截等

怎么用css 实现一个三角形?

// 给其他三个边框都设为 透明

2. 设置请求地址请求信息 4. 服务器正在接受数据 5. 服务器接受完成数据了

每次定义函数数据类型的时候,都会天生自带一个porpttype 这个属性, 这个属性指向函数的原型对象

每个实例对象( object )都有一个私有属性(称之为 __proto__ )指向它的构造函数的原型对象(prototype )。该原型对象也有一个自己的原型对象( __proto__ ) ,层层向上直到一个对象的原型对象为 null。根据定义,null 没有原型,并作为这个原型链中的最后一个环节 (原型链)

1. 客户端输入用户名和密码
2. 服务端来验证这个用户名和密码 如果是正确的 会签发一个token 再把这个 token 返回给客户端 
3. 客户端把这个token 存储起来 
4. 客户端每次像服务端请求资源的时候需要带着服务端签发的 token 
5. 服务端 然后做比较 如果是验证成功 ,就会返回客户端请求的数据

该项目主要是为企业提供了 方便管理所有地区发货量,库存管理,销售额度管理,员工管理 ,地区人员分配的管理系统

负责的模块有: 原材料管理,员工原理这几个模块

“HTTP状态码中302、401、502分别是什么情况?

使用代码分割 实现代码分割 让组件按需加载 优化项目 性能
 

可以减少服务器压力 股票交易 聊天室 实时图表更新

在使用中,我发现大家对于 MVVM 以及 MVVM 衍生出来的框架(比如 ReactiveCocoa)有一种「敬畏」感。这种「敬畏」感某种程度上就像对神一样,这主要表现在我没有听到大家对于 MVVM 的任何批评。

我感觉原因首先是 MVVM 并没有很大程度上普及,大家对于新技术一般都不熟,进而不敢妄加评论。另外,ReactiveCocoa 本身上手的复杂性,也让很多人感觉到这种技术很高深难懂,进而加重了大家对它的「敬畏」。

MVVM 的作用和问题

MVVM 在实际使用中,确实能够使得 Model 层和 View 层解耦,但是如果你需要实现 MVVM 中的双向绑定的话,那么通常就需要引入更多复杂的框架来实现了。

第一点:数据绑定使得 Bug 很难被调试。你看到界面异常了,有可能是你 View 的代码有 Bug,也可能是 Model 的代码有问题。数据绑定使得一个位置的 Bug 被快速传递到别的位置,要定位原始出问题的地方就变得不那么容易了。

第二点:对于过大的项目,数据绑定需要花费更多的内存。

某种意义上来说,我认为就是数据绑定使得 MVVM 变得复杂和难用了。但是,这个缺点同时也被很多人认为是优点。

  • 王阳明曾在贵州龙场这个驿站当站长。那是个穷得要死驿站,百无聊赖又心有不甘的王阳明,面对满天星斗,他突然欣喜若狂,说...

MVVM是MVC的增强版,和MVC没有本质区别,只是代码的位置变动而已

Model:应用程序中处理数据逻辑的一部分,通常用来模型对象对数据库的存取等操作

View:视图部分,通常指前端页面用来对用户展示的一部分

Controller:控制层通常用来处理业务逻辑,负责从视图读取数据,并向模型发送数据

可以将ViewMode看作是Model和View的连接桥,View可以通过事件绑定Model,Model可以通过数据绑定View,通过ViewMode可以实现数据和视图的完全分离

我要回帖

更多关于 此软件无法运行于被调试状态 的文章

 

随机推荐