• 面试经验


    一、块级元素和行内元素

    1.行内元素 不识别 margin-top/bottom(无效) padding-top/bottom(虽然增大了行内元素的面积,但是并没有与相邻元素拉大距离,padding部分覆盖下面)

    2.行内元素 设置float属性后 将变成块级元素(可设置宽高);

    二、安卓机型flex兼容

    1.display:box/inline-box; (old)

    2.display: flexbox/inline-flexbox;(old)

    3.display: flex/inline-flex;

    三、强制类型转换

    Number()

    true=1,false=0; 任何空转为0;把纯数字或‘’的字符串转为纯数字,否则返回NaN;

    parseInt()

    整数转换 排除空字符串,从第一位开始转换,如果第一位不是字符串返回NaN;如果是则转换到不是数字的那一位为止;

    parseFloat()

    四、a++和++a区别

    a++ 先赋值再++  alert(a++) 1

    ++a 先++在赋值  alert(++a) 2

    五、移动端一像素边框

    .border-image-1px {
        border- 1px 0px;
        -webkit-border-image: url("border.png") 2 0 stretch;
        border-image: url("border.png") 2 0 stretch;
    }
    
    
    .border-1px {
        position: relative;
    }
    .border-1px:after {
        position: absolute;
        content: '';
        top: -50%;
        bottom: -50%;
        left: -50%;
        right: -50%;
        -webkit-transform: scale(0.5);
        transform: scale(0.5);
        border-top: 1px solid #666;
        border-bottom: 1px solid #666;
    }
    

     六、defer和async

    <script src="../CGI-bin/delscript.js" defer></script>

    <script src="../CGI-bin/delscript.js" async="async"></script>

    defer并行加载js文件,会按照页面上script标签的顺序执行(延迟)

    async并行加载js文件,下载完成立即执行,不会按照页面上script标签的顺序执行(异步)

     七、闭包

    使用闭包主要是为了设计私有的方法和变量。闭包的优点是可以避免全局变量的污染,缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。在js中,函数即闭包,只有函数才会产生作用域的概念

    1.函数嵌套函数

    2.函数内部可以引用外部的参数和变量

    3.参数和变量不会被垃圾回收机制回收

    八、缓存清除

    1.meta方法

    <META HTTP-EQUIV="pragma" CONTENT="no-cache"> 
    <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> 
    <META HTTP-EQUIV="expires" CONTENT="0">

    2.ajax

      $.ajax({
         url:'www.haorooms.com',
         dataType:'json',
         data:{},
         cache:false, /*清除*/
         ifModified :true ,
    
         success:function(response){
             //操作
         }
         async:false
      });
    

     3.时间戳  和 随机数

    链接:http://www.haorooms.com/post/js_llq_hc

    九、ES6的了解

    新增模板字符串(为JavaScript提供了简单的字符串插值功能)、箭头函数(操作符左边为输入的参数,而右边则是进行的操作以及返回的值Inputs=>outputs。)、for-of(用来遍历数据—例如数组中的值。)arguments对象可被不定参数和默认参数完美代替。ES6promise对象纳入规范,提供了原生的Promise对象。增加了letconst命令,用来声明变量。增加了块级作用域。let命令实际上就增加了块级作用域。ES6规定,var命令和function命令声明的全局变量,属于全局对象的属性;let命令、const命令、class命令声明的全局变量,不属于全局对象的属性。。还有就是引入module模块的概念

    十、js继承方式及其优缺点

    原型链继承、借用构造函数(类式继承)、组合式继承

    十一、闭包

    使用闭包主要是为了设计私有的方法和变量。闭包的优点是可以避免全局变量的污染,缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。在js中,函数即闭包,只有函数才会产生作用域的概念

    特性:

    1.函数嵌套函数

    2.函数内部可以引用外部的参数和变量

    3.参数和变量不会被垃圾回收机制回收

    十二、position:absolutefloat属性的异同

    • 共同点:对内联元素设置floatabsolute属性,可以让元素脱离文档流,并且可以设置其宽高。

    • 不同点:float仍会占据位置,absolute会覆盖文档流中的其他元素。

    十三、css3新增伪类

        p:first-of-type 选择属于其父元素的首个 <p> 元素的每个 <p> 元素。
    
        p:last-of-type  选择属于其父元素的最后 <p> 元素的每个 <p> 元素。
    
        p:only-of-type  选择属于其父元素唯一的 <p> 元素的每个 <p> 元素。
    
        p:only-child    选择属于其父元素的唯一子元素的每个 <p> 元素。
    
        p:nth-child(2)  选择属于其父元素的第二个子元素的每个 <p> 元素。
    
        :enabled  :disabled 控制表单控件的禁用状态。
    
        :checked        单选框或复选框被选中。

    十四、CSS3新特性

    CSS3实现圆角(border-radius),阴影(box-shadow),
    
    对文字加特效(text-shadow、),线性渐变(gradient),旋转(transform)
    
    transform:rotate(9deg) scale(0.85,0.90) translate(0px,-30px) skew(-9deg,0deg);//旋转,缩放,定位,倾斜
    
    增加了更多的CSS选择器  多背景 rgba
    
    在CSS3中唯一引入的伪元素是::selection.
    
    媒体查询,多栏布局
    
    border-image
    

    CSS3中新增了一种盒模型计算方式:box-sizing。盒模型默认的值是content-box, 新增的值是padding-boxborder-box,几种盒模型计算元素宽高的区别如下:

    content-box(默认)

    布局所占宽度Width:

    Width = width + padding-left + padding-right + border-left + border-right
    
    • 1
    • 2

    布局所占高度Height:

    Height = height + padding-top + padding-bottom + border-top + border-bottom
    
    • 1
    • 2

    padding-box

    布局所占宽度Width:

    Width = width(包含padding-left + padding-right) + border-top + border-bottom
    
    • 1
    • 2

    布局所占高度Height:

    Height = height(包含padding-top + padding-bottom) + border-top + border-bottom
    
    
    • 1
    • 2
    • 3

    border-box

    布局所占宽度Width:

    Width = width(包含padding-left + padding-right + border-left + border-right)
    • 1

    布局所占高度Height:

    Height = height(包含padding-top + padding-bottom + border-top + border-bottom)

    十五、数组indexof方法

    $.inArray( value, array [, fromIndex ] )

    十六、说说你对作用域链的理解

    作用域链的作用是保证执行环境里有权访问的变量和函数是有序的,作用域链的变量只能向上访问,变量访问到window对象即被终止,作用域链向下访问变量是不被允许的。

    创建ajax过程

    (1)创建XMLHttpRequest对象,也就是创建一个异步调用对象.

    (2)创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息.

    (3)设置响应HTTP请求状态变化的函数.

    (4)发送HTTP请求.

    (5)获取异步调用返回的数据.

    (6)使用JavaScript和DOM实现局部刷新.

    十七、对前端模块化的认识

    AMD 是 RequireJS 在推广过程中对模块定义的规范化产出。

    CMD 是 SeaJS 在推广过程中对模块定义的规范化产出。

    AMD 是提前执行,CMD 是延迟执行。

    AMD推荐的风格通过返回一个对象做为模块对象,CommonJS的风格通过对module.exports或exports的属性赋值来达到暴露模块对象的目的。

  • 相关阅读:
    跑mmaction代码遇到的问题:KeyError: 'xxxDataset is not in the dataset registry' when test #3751
    内存 显存 缓存
    fvcore计算模型参数量和计算量
    深度学习中模型参数量和计算量的理解与计算
    linux安装tmux
    findDecoder imread_(...) can't open/read file: check file path/integrity
    self._traceback = tf_stack.extract_stack()
    VRChat制作世界需要的unity包
    onnxruntime、cuda、cudnn、显卡驱动
    耗时统计
  • 原文地址:https://www.cnblogs.com/liujian9527/p/6811291.html
Copyright © 2020-2023  润新知