基础知识点
 
1.水平垂直居中
  1. 子绝父相,子盒子设置绝对定位,设置top:50%;left:50%,margin-top:-50%;margin-left:-50%;
  2. 子绝父相,子盒子设置绝对定位,设置 left & top & right & bottom为0;margin: auto;
  3. 伸缩盒子,父元素设置flex;justify-content: center;align-items: center;
  4. 利用transform属性,需要设置子绝父相,设置top:50%;left:50%;transform:translate(-50%, -50%);
2.圣杯布局
  1. 中间盒子设置宽度100%,左右margin,留出左右盒子的位置
  2. 左右盒子在通过定位至左右
3.兼容性问题
  1. 标签样式在不同的浏览器各自的margin 和padding差异较大, 解决方案:css里 *{margin:0;padding:0;}
  2. 当在a标签中嵌套img标签时,在某些浏览器中img会有蓝色边框;解决方案:给img添加border:0;或者是border:none;
  3. 图片默认有间;隙解决方案:1)给img标签添加左浮动float:left;2)给img标签添加display:block。
 
4.清除浮动的方法?(重点)
      1.父级div定义height
      2.结尾处家空div标签clear:both
      3.父级div定义 伪类:after和zoom
     4.父级div定义 overflow:hidden
 
5.前端优化技巧
  1. 压缩css,js,图片
    2.减少http请求次数,合并css,js 合并图片(雪碧图)
    3.使用CDN
    4.减少dom元素数量
    5.图片懒加载
    6.静态资源另外用无cookie得域名
    7.减少dom的访问(缓存dom)
    8.巧用事件委托
    9.样式表置顶,脚本置低
6.this指向问题
  一般来说,谁调用,this就指向谁,特殊情况除外
  普通函数调用,此时 this 指向 window
  定时器函数, 此时 this 指向 window

  更改this指向的三个方法

  1.call( )方法调用一个函数,其具有一个指定的this值

    fn.call(改变其this指向, [指定的参数] ) 如果指定了null或者undefired,则内部this指向window

    应用场景:①借用构造函数

        ②借用其他对象的方法

  2.apply( )方法调用一个函数,其具有一个指定的this值,作为一个数组提供的参数

    fn.apply(var1, var2) 应用:把数组展开

    应用场景:把数组展开,传递给调用的方法

  3.bind 不会调用函数,会返回一个新的函数

    应用场景:①改变定时器内部的this,②改变事件处理函数的this

 
7、json字符串转化方法
JSON.parse(str); //由JSON字符串转换为JSON对象
JSON.stringify(obj); //将JSON对象转化为JSON字符
 
进阶知识点
 
1、设置千分符

 function farmat(mun) {
if (mun === null) return;
var m = parseInt(mun).toString();
var len = m.length;
if (len <= 3) return m;
var n = len % 3;
if (n > 0) {
return m.slice(0,n)+","+m.slice(n,len).match(/\d{3}/g).join(",")
} else {
return m.slice(n,len).match(/\d{3}/g).join(",")
}
}
var a =farmat(1000000)
console.log(a);
 
2、只能输入数字和小数点
 function clearNoNum(obj){
obj.value = obj.value.replace(/[^\d.]/g,""); //清除“数字”和“.”以外的字符
obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');//只能输入两个小数
if(obj.value.indexOf(".")< 0 && obj.value !=""){//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
obj.value= parseFloat(obj.value);
}
}
 
3、统计每一个字符串出现的次数
 //字符串
var strs = "asdasdadd";
function getmaxstr(str){
if(str.length == 1){return str;}
var newarr = [];
for(var i = 0 ; ss= str.length, i<ss; i++ ){
if(!newarr[str.charAt(i)]){
newarr[str.charAt(i)] = 1;
}else{
newarr[str.charAt(i)] +=1;
}
}
console.log(newarr);
var maxkey='';
var maxvalue=1;//设定一个值
for(var k in newarr){
if(newarr[k]> maxvalue){//根据这个值做判读 将数组中的每个元素 与这个值做比较! 如果大于他,那么将住宿
maxvalue = newarr[k];//出现的次数
maxkey = k;//次数最多的 字母
}
}
console.log(maxkey);
return maxkey;
}
getmaxstr(strs);
 //数组
var arr =["a","b","c","c","c","d"];
Array.prototype.diaohuan=function(arr){
var newarr=[];
for(var i = 0; i<this.length; i++){
if(!newarr[this[i]] ){
newarr[this[i]] = 1;
}else{
newarr[this[i]] +=1;
}
}
console.log(newarr);
var maxkey = 1;
var maxvalue ="";
for (var k in newarr){
if(newarr[k] > 1){
maxvalue =newarr[k];
maxkey = k;
}
}
return maxkey;
console.log(maxvalue);
}
alert(arr.diaohuan());

高难度知识点

1.怎样引入一个第三方的包?require与import的区别:

  遵循规范:
  require 是 AMD规范引入方式,
  import是es6的一个语法标准,如果要兼容浏览器的话必须转化成es5的语法.

  调用时间:
  require是运行时调用,所以require理论上可以运用在代码的任何地方,
  import是编译时调用,所以必须放在文件开头.

  本质:
  require是赋值过程,其实require的结果就是对象、数字、字符串、函数等,再把require的结果赋值给某个变量,
  import是解构过程,但是目前所有的引擎都还没有实现import,我们在node中使用babel支持ES6,也仅仅是将ES6转码为ES5再执行,import语法会被转码为require.

 2.在那调用第三方支付接口?为什么?前端调接口和后端调接口各有什么区别,优势与特点:
 
  一般支付接口都是由后端和支付单位联系调取的,前端调接口容易被劫持,不安全.

Web前端2019面试总结的更多相关文章

  1. Web前端2019面试总结2

    1.js继承: 想要继承,就必须要提供个父类(继承谁,提供继承的属性) 组合继承(组合原型链继承和借用构造函数继承)(常用) 重点:结合了两种模式的优点,传参和复用 特点:1.可以继承父类原型上的属性 ...

  2. Web前端2019面试总结4

    1.span标签的width和height分别为多少?     首先span不是块级元素,是不支持宽高的,但是style中有了个float:left:就使得span变成了块级元素支持宽高,height ...

  3. Web前端2019面试总结3(东软集团面试题)

    严禁转载,严禁分享,只供私自鉴赏,请君悉知! 一:基础题 1.什么是margin塌陷?请写出至少三种解决margin塌陷的方法. 答:当两个盒子在垂直方向上设置margin值时,会出现一个有趣的塌陷现 ...

  4. 2015腾讯暑期实习生 Web前端开发 面试经历

    [2015腾讯暑期实习生 Web前端开发 面试经历] 好吧,首先声明,我被刷了,应该是跪在二面 微信查到的面试状态一直呈现复试中 .. 整整四天了.. 看来是没希望了 不过也是一次经历,记录一下还是可 ...

  5. web前端工程师面试技巧 常见问题解答

    web前端工程师面试技巧 常见问题解答 每年的春招是各企业需求人才的黄金时期,不少的前端大牛或者前端新手在面试时候不知道怎么来回答面试官的问题,下面来看下我转载的这篇文章吧,希望对从事前端工作的你有所 ...

  6. Web前端开发面试技巧

    Web前端开发面试技巧 面试前端工程师对我来说是一件非常有意思的事,因为面试过程很大程度上也是自我提升的过程.无论大公司还是小公司,之所以在如何招聘到真正有能力的,前端工程师方面会遇到同样的问题. 近 ...

  7. 2018最新Web前端经典面试试题及答案

    javascript: JavaScript中如何检测一个变量是一个String类型?请写出函数实现 typeof(obj) === "string" typeof obj === ...

  8. Web前端经典面试试题(二)

    上次由于时间有限只分享了一部分的前端面试题,所以本篇继续分享前端经典面试试题 一. 栈和队列的区别? 栈的插入和删除操作都是在一端进行的,而队列的操作却是在两端进行的. 队列先进先出,栈先进后出. 栈 ...

  9. 2019最新Web前端经典面试试题(含答案)

    1,阐述清楚浮动的几种方式(常见问题)(1)父级div定义 height原理:父级div手动定义height,就解决了父级div无法自动获取到高度的问题. 优点:简单.代码少.容易掌握 缺点:只适合高 ...

随机推荐

  1. 解决tomcat部署项目中碰到的几个问题

    在tomcat上部署项目并进行测试,经常会碰到各种问题.在不同的操作系统上部署,对问题的解决也会有一些差异. 1 发现问题 1.1 项目部署 先将项目达成war包,放到tomcat的webapps目录 ...

  2. 《前端之路》之 Javascript 模块化管理的来世今生

    目录 第二章 - 04: Javascript 模块化管理的来世今生 一.什么是模块化开发 1-1.模块化第一阶段 1-2.封装到对象 1-3. 对象的优化 二.模块化管理的发展历程 2-1.Comm ...

  3. .NETCore 下支持分表分库、读写分离的通用 Repository

    首先声明这篇文章不是标题党,我说的这个类库是 FreeSql.Repository,它作为扩展库现实了通用仓储层功能,接口规范参考 abp vnext 定义,实现了基础的仓储层(CURD). 安装 d ...

  4. 强化学习(十六) 深度确定性策略梯度(DDPG)

    在强化学习(十五) A3C中,我们讨论了使用多线程的方法来解决Actor-Critic难收敛的问题,今天我们不使用多线程,而是使用和DDQN类似的方法:即经验回放和双网络的方法来改进Actor-Cri ...

  5. spring boot redis 数据库缓存用法

    缓存处理方式应该是 1.先从缓存中拿数据,如果有,直接返回.2.如果拿到的为空,则数据库查询,然后将查询结果存到缓存中.由此实现方式应该如下: private String baseKey = &qu ...

  6. 【学习笔记】【Design idea】二、产品内测、公测、候选版本的概念及版本代码的书写

    一.前言 参考:百度百科 https://baike.baidu.com/item/beta/640969?fr=aladdin 广义上对测试有着三个传统的称呼:Alpha(α).Beta(β)和Ga ...

  7. windows之如何把文件夹转换成iso文件

    (1)oscdimg下载路径: 链接:https://pan.baidu.com/s/1U_SfamsOvI2nav9odAzujQ提取码:21fr (2)以管理员身份运行cmd命令: Oscdimg ...

  8. HDP 2.6 requires libtirpc-devel

    HDP 2.6 requires libtirpc-devel 个问题,截止 Mustafa Kemal MAYUK 2017年06月30日 06:30 hadoopPowerSystems Hell ...

  9. 微服务与RPC

    1.微服务架构 1.1 特征 自动化部署,端点智能化,语言和数据的去中心化控制. 1.2架构 一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制( ...

  10. 暖春许愿季丨i春秋给你送福利

    没有一点点防备 也没有一丝顾虑 就这样出现——暖春许愿季 纳尼?这不是我的歌声里 是i春秋在搞活动 这次准备搞个大的 多大呢 看这里 你许下心愿 我帮你实现 这是一棵神奇的心愿树 是一个畅所欲言之地 ...