js知识点

  1. get和post的区别
    1. get是表单的默认传送方式,数据是和表头一起发送,有大小限制
    2. post是和请求体一起发送给服务器,理论上讲是没有大小限制的,可以上传文件,而且数据不会附加到url后面,比get方法更加安全
  2. HTML页面的加载流程
    1. 从上到下依次创建每个dom对象,遇到js执行js
    2. 从上到下依次渲染每个标记,最后触发window.onload
  3. 样式的来源
    1. 浏览器默认样式
    2. 用户自定义样式
    3. 继承样式
  4. css初始化的作用是解决不同版本,不同浏览器的兼容性问题
  5. 选择器优先级
    1. 用户自定义样式>id选择器>类选择器、伪类选择器、属性选择器>标签选择器>通用选择器
  6. 元素浮动后的三大变化
    1. 浮动元素脱离当前文档流,父元素高度减去浮动元素高度,后面元素顶上去
    2. 浮动元素的高度会变成盒图的实际高度
    3. 后面元素的内容会避开浮动元素,避免被覆盖
  7. css兼容性问题是因为不同浏览器对同一标记的默认样式不同引起的,或者是同一个浏览器的不同版本造成的兼容性问题
    1. css兼容性案例:ie6/7中子元素高度大于父元素高度时父元素的高度会失效,而在ie的高版本或者其他浏览器中,父元素的高度不变,子元素溢出
  8. 渐进式增强:代码主要兼容低版本浏览器,在保证低版本用户的体验的情况下尽可能的兼容高版本浏览器
  9. 优雅降级:优先考虑高版本浏览器,尽可能的兼容低版本浏览器
  10. position定位属性
    1. static:默认值,相当于没有开始定位属性
    2. relative:相对定位,开启后不会脱离文档流,不会影响其他元素,而是相对于元素的当前位置进行定位。
    3. absoulte:绝对定位,设置元素脱离当前文档流,设置元素不会避开后面元素的content而是覆盖,设置元素会相对于前面最近开启定位属性的元素定位,如果前面没有设置定位属性,则相对于浏览器窗口进行定位
    4. fixed,固定定位,设置元素脱离当前文档流,永远相对于窗口定位
  11. 设置垂直水平居中
    1. 父元素有高度时,子元素设置line-height:父元素高度的一半,margin:0 auto;
    2. 不定宽高垂直水平居中:
      1. 父元素开始相对定位,子元素开始绝对定位。子元素设置top:50%,left:50%,在设置margin-left:子元素宽度的一半,margin-top:子元素高度的一半,将子元素拉回到居中位置
      2. 父元素使用弹性布局:flex,设置justtify-content:center,align-item:center
      3. 父元素开始相对定位,子元素开始绝对定位。子元素设置top:0,left:0,right:0,buttom:0,margin:auto
  12. javascript的执行流程
    1. 预编译阶段:创建所有带var的变量,并赋值为undefind,创建所有的形参,创建所有有名函数。
      1.   匿名函数不参与预编译
    2. 执行阶段,从上到下依次执行每条语句
  13. 面向对象:使用对象的时候,只考虑对象的功能,不考虑具体实现的方法
  14. display:none和visibility:hidden的区别:
    1. hidden  会渲染,仅仅是不显示样式
    2. none:不渲染,没有宽高,不占地方
  15. 函数重载
    1. 函数根据传入参数的个数或者参数的类型来实现不同的功能
      1. 判断参数的类型:object.prototype.Tostring.call
      2. 判断参数的个数:length方法
  16. 提高js的运行性能
    1. 减少dom更新次数
    2. 使用文档碎片代替空div   docunment.createDocumentFragmen
    3. 空div会被渲染,会改变原有的dom结构,而文档碎片不会
  17. cookie是web服务器向客户端浏览器存储的数据,下次进入这个网站时cookie会在请求头中自动发送给服务器
    1. 特点:cookie体积小,而且cookie是自动发送的可以长期储存
    2. 使用场景:免登录,用户名提示
  18. 跨域方案
    1. jsonP
    2. cors
    3. proxy
  19. 原型,实例,原型链,继承
    1. 原型链:通过对象的__proto__属性指向函数的原型对象,一层一层向上找,直到找到Object.prototype为止,层层继承的链接结构被称为原型链
    2. 原型:创建的每一个函数都有一个原型属性,原型属性是一个指针,指向一个对象。这个对象上放这所有通过这个原型创建的实例都可以使用的方法(原型方法)
    3. es5继承主要通过call方法改变this指向来实现属性的继承,通过原型来实现方法的继承。es6通过super实现属性的继承,通过constructor实现方法的继承
  20. 数组的变异方法和非变异方法
    1. 变异方法:改变原有数组,不需要一个新的数组接受
      1. pop  删除并返回数组末尾元素
      2. push  向数组尾部添加一个元素
      3. shift   数组头部添加一个元素
      4. unshift  数组尾部删除一个元素
      5. splice 删除数组任意位置的元素/替换元素/在任意位置拆入元素
      6. sore 排序,通过一个回调函数来判断递增还是递减
      7. reserve  反序
    2. 非变异数组:不会改变原有数组
      1. concat 链接数组
      2. join 将数组按照指定的字符连接成一个字符串
      3. slice  截取返回起始下标到结束下标之前的元素
      4. indexof  返回指定元素在数组中首次出现的位置,如果没有则返回-1
      5. map 数组遍历器
      6. filte  数组过滤器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值