美文网首页
面试准备2

面试准备2

作者: Nico酱 | 来源:发表于2016-12-29 22:45 被阅读14次

    浮动元素居中

    <style>
        .box1{
                width:100px;
                height:100px;
                background-color:red;
                float:left;
                margin-left:50%;
                position: relative;
                left:-50px;
            }
    </style>
    

    描述flex布局

    flex称为弹性盒子,采用flex布局的元素称为容器,子元素成为容器成员,flex有两条轴,一条称为主轴,一条称为交叉轴;
    有很多属性可以控制局部方式
    flex-direction|flex-wrap|justify-content|align-items|align-content|flex-flow
    order|align-self
    

    cookie,sessionStorage,localStorage

    相同点:三者都可以存储数据,都有大小限制
    cookie主要用于和交互,二localstorage和sessionstorage主要用于存贮数据
    cookie有时效性,可以设置什么时候失效,而localstorage在用户不清理的时候一直存在,sessionstroage是会话性质,在结束会话后会清除
    cookie可以设置路径,有作用域
    

    对前端进行优化

    1,使用合并压缩的文件,使用css spirits
    2,使用外部引入的js和css文件,css文件放在头部,js放在尾部
    3减少空src的标签,删除无用的dom节点,将资源放在不同的域名
    4,使用cdn服务,合理的设置http缓存
    5,合理的使用cookie和webstorage
    
    

    做两套响应式,如何判断和跳转

    navigator.useagent的字符串,使用正则进行匹配,可以得知,然后通过window.location.hreg进行跳转
    

    第三方插件

     ;(function($, window, document, undefined) {
            var defaults = {};
            function Drag(opt) {
                var config = $.extend({},
                defaults, opt || {});
            }
            Drag.prototype.say = function() {
                console.log('hello')
            }
            $.fn.myplugin = function(opt) {
                var a = new Drag(opt);
                return a.say();
            }
        })(jQuery, window, document)
        $(function(){
            $('#btn').myplugin();
        })
    

    angular

    1,双向数据绑定(mvvm, mvc是单向数据绑定)
    2,依赖注入,帮助开发者更容易理解,开发和测试
    3,指令
    4,过滤器
    5,控制器
    6,ui路由
    7,三种通信方式:1.servise 2.$rootscope 3.events事件
    8.$rootscope是所有的$scope的父对象
    9,$watch $q,$digest,$apply
    10,ng-show,ng-if
    

    冒泡排序

    var a =[1,23,12,32,34,112,12,89];
    //第一个数和后面每个数两两进行比较,如果有比较大的数就就换位置,
    //小的就跑到最上面,每次都从a[0]开始排序
    //每运行一次就拍好一个数,所以就要减去i
    for(var i =0;i<a.length-1;i++){
      for(var j=0 ;j<a.length-i-1;j++){
        if(a[j]<a[j+1]){
          var temp = a[j+1];
          a[j+1]=a[j];
          a[j] = temp;
        }
      }
    }
    console.log(a);
    

    angular相关

    1.directive中可以设置 A 属性 C 类 E 标签 M 注释
        app.directive('xheader',function(){
          return {
            restrict: ec,
            scope:false,
            remplateUrl:,
            replace:false,
            link:function(scope,ele,attr){
              
            }
          }
        })
    2.通信方式 service $rootscope 指定绑定事件
    3.尽量使用angular.element $http.$timeout 
    4. ng-repeat 时数组有相同的值,可以在后面添加track by $index
    5. 页面不能调用原生方法
    6. filter |filterName:argument    或者    $filter(data)(argument)
    7.app.filter('name',function(){
      return function(data,argument){
        return a;
      }
    })
    8.app.service('ajax',function(){
      this.say=function(){
        
      }
    })
    9.脏检查机制:Angular 在 scope 模型上设置了一个 监听队列,用来监听数据变化并更新 view 。每次绑定一个东西到 view 上时 AngularJS 就会往 $watch 队列里插入一条 $watch,用来检测它监视的 model 里是否有变化的东西。当浏览器接收到可以被 angular context 处理的事件时,$digest 循环就会触发,遍历所有的 $watch,最后更新 dom。
    10.不利于 SEO
    因为所有内容都是动态获取并渲染生成的,搜索引擎没法爬取。
    

    相关文章

      网友评论

          本文标题:面试准备2

          本文链接:https://www.haomeiwen.com/subject/yswpvttx.html