web 前端面试题个人总结

2 篇文章 0 订阅
2 篇文章 0 订阅
angular的缺点,1不适合做动画效果,不适合频繁操作的项目,适合数据交互的项目,
2学习成本太高,思维方式和后台相似,所以前端人员学习起来比较吃力。


angular unpr报错,未知属性报错,属性未注入。


angular dups报错,数组报错,加上


angular重复值报错:加上track by $index


angular服务有几种,三种:service,factory,provider(value,constant)
angular三大核心方法:1、$watch(监听v层),2、$digest(遍历,修改),3、$apply(作用域,通知控制器重新渲染页面)


angular项目架构如何构建,(文件夹结构):v页面,m数据,c控制器, router 路由 filter过滤器  生产环境,有个dist,压缩文件  public 静态资源库   node-modules 插件  。


如何看待angular 2.0;用ts语法写的,学习成本较高。


angular过滤器:currency (货币处理),date (日期格式化),filter(匹配子串),json(格式化json对象), limitTo(限制数组长度或字符串长度),lowercase(小写),uppercase(大写),number(格式化数字),orderBy(排序),自定义过滤器


filter服务·  传参  自定义方法 。。。。




githuber下载项目,先安装,后输入命令,


为什么要用路由  减少页面刷新跳转 增加用户体验


angular 减少ng-model 链式   避免出现ng-repeat  angular的优化





ECMA:   element class 注释 attribute


angular 为什么用自定义指令 
app.directive("px",function(){
return {
template:"<h1>aaaa</h1>"
}})


ng-click在移动端也有延迟 不到100毫秒
onclick在移动端有300毫米延迟


ng-route配置起来比较简单
ui-route支持在视图里嵌套视图 配置起来比较麻烦




ajax的同步  async:true 同步 异步


h5中有一个动画函数:   request animation frame     16帧  1000/60 没有时间


amd 所有模块准备好  
cmd 一个一个调模块
comon 跑在服务器






自定义指令:ECMA 元素 class message注释 属性attribute  使用原因:为了封装一些功能组件 当angular不满足需求时,自定 义指令写一个属性ng-tap写一个方法进去,执行原生JS的事件。


angular的自定义服务不要加$防止覆盖angular本身的一些。。。自定义的东西不能加入controller


$scope.$emit发送出去




$scope.$broadcast 广播 只有子集知道 父集不知道


必须有嵌套关系


$service 全局传递 不需要嵌套


模块化开发是为了降低程序耦合度  便于维护




敏捷开发  结对开发 封闭开发








判断数据类型
constrctor  判断构造函数 
valueof    判断数据类型的原始值  最顶层  一般不使用
tostring  转换成16进制来判断 不常用
typeof
new array prototype 判断原形 原形链指向顶层对象
instanceof  在原形链上判断  object function array  负责数据类型








btc 京东 天猫


oto  微商 


ctc  卖的是服务  流量  淘宝


ptp 




什么是原形链继承  每一个方法都有一个链条最终指向顶层对象object 使用原因:节省空间,减少了重写方法的必要  


面向对象没有返回值有this的情况下    默认返回 return    触发js垃圾回收机制 隐式返回  


angular的服务:angular内部可以提供一些方法   provider service factory




面向对象是一种思想   




推断  内联 标记式


css图片整合压缩,gulp压缩。img-minify




项目上线流程:开发环境,测试环境,生产环境:压缩代码提交上线,




如何用gulp   有压缩目录   合并是 concat  js压缩 uglify   .task






富文本编辑器,先把接口给我,然后用插件直接调用,。cms新闻管理系统。


移动端和pc端区别:移动端有视网膜窗口。手指事件,轻量级zipto,zipto的bug,压缩版本有event模块,没压缩的没有event模块,第一次默认触发tap事件。shme进去再暴露出去


on-click 可以在移动端直接用




表达式里不可以加on click事件  可以用ng-click  onclick 容易指向window




脏值是$watch 在监听 $digest时发生变化的值 


脏值检测






let 声明与var let 不指向全局 块级作用域
var 存在提前预解析 let 没有预解析与提前声明 只能先声明后调用 不允许重复声明 为了更加安全
bootstraop如何处理低版本浏览器兼容:这个框架不兼容低版本,建议手写,即使兼容了性能也很差


mvc:数据,视图,控制器。数据链接到控制器,c映射到v层,v再映射给m,mvvm就是后台的mvp。


原生的移动端手指事件:( touchstart / touchmove / touchend,)但必须用事件监听.   es5新加的


分页,用ajax实现,每个页面都有一个ID,linmit控制每页显示多少。




实现后台管理的步骤:功能模块划分,技术选型,项目架构(文件夹分类),


es6新增
forEach  map reduce some  every filter Date.now() new Date()    JSON.stringify(str) 对象序列化    JSON.parse()字符串反序列化  eval()




<ng-view>嵌套的视图</ng-view>自定义标签 
<div ng-view></div>  自定义属性(不推荐)




echars  bug 绘制时 在移动端容易出现重影   解决办法  anard把渲染关掉


新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。es6和es5的区别
首先要有extends     super() 是用来改变this的指向 继承父类的this
extend 用来扩展函数


堆是用来解释的  stack栈是用来存储的   如果是值 去堆里  方法和对象去哪呢。。。。。。栈


Symbol表示独一无二的值  一般用来判断重名 数据类型
array.from  array.of 缺点 API 不能够被转换--es5  --es3 ---不兼容低版本浏览器 set  对象也不能转换


react.js 核心库文件  react-dom.js 操作DOM元素  browser.min.js 浏览器进行es6 或者jsx语法的编译


类继承比原形继承快   
总结 1. const 主要是为了变量更加安全,不会互相覆盖
// 2. let  没有预解析与提前声明,只能在声明后调用   不指向全局 块记作用域 作用域更加安全 
//      3. 弱类型语言开始像强类型语言转变
//      4. 不予许重复声明 
/*创建ajax对象(XMLHttpRequest/ActiveXObject(Microsoft.XMLHttp))
判断数据传输方式(GET/POST)
打开链接 open()
发送 send()
当ajax对象完成第四步(onreadystatechange)数据接收完成,判断http响应状态(status)200-300之间或者304(缓存)执行回调函数*/


10.你能解释一下JavaScript中的继承是如何工作的吗?
/*子构造函数中执行父构造函数,并用call\apply改变this
克隆父构造函数原型上的方法*/




什么是FOUC?你如何来避免FOUC?
/*由于css引入使用了@import 或者存在多个style标签以及css文件在页面底部引入使得css文件加载在html之后导致页面闪烁、花屏
用link加载css文件,放在head标签里面*/


 为什么利用多个域名来存储网站资源会更有效?
//确保用户在不同地区能用最快的速度打开网站,其中某个域名崩溃用户也能通过其他郁闷访问网站




规避javascript多人开发函数重名问题
/*命名空间
封闭空间
js模块化mvc(数据层、表现层、控制层)
seajs
变量转换成对象的属性
对象化*/




react着重处理组件  操作虚拟DOM节点  mv  render  通过状态来改变  require common.js||           angular是$wacth $digest $apply mvvm


webpack 和gulp 的区别


webpack会自动处理依赖关系 
gulp依赖关系过于明显




array of 把一组值转换成数组




解构赋值 颠倒赋值  左右结构一致
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值