前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >前端小知识10点(2020.6.28)

前端小知识10点(2020.6.28)

作者头像
进击的小进进
发布2020-07-02 15:17:18
3960
发布2020-07-02 15:17:18
举报
1、浏览器页面的生命周期

从开始加载页面到离开页面的先后顺序为:

DOMContentLoaded 等构件完 dom 树,js 加载完后才会触发

load 等所有资源(图片、音频)加载完后,才会触发

beforeunload 在即将离开页面前触发

unload 在离开页面时触发

2、箭头函数和普通函数的区别

① 写法不同

普通函数:

代码语言:javascript
复制
function a(){
  //xxx
}

箭头函数:

代码语言:javascript
复制
const a=()=>{
  //xxx
}

② 箭头函数不会创建自身的执行上下文(词法环境、变量环境)

③ 因为箭头函数没有自身的执行上下文,所以就不会创建自身的 this,而是从外层作用域继承 this

注意: 箭头函数是在声明时,就从外层作用域继承了this,而不是在运行时

④ 因为是在声明时,就指定了this,所以this的指向永远不变

⑤ 根据 ③ 可知,箭头函数不能作为构造函数使用,所以也就不能new

3、new 的原理

比如 new 的对象为:

代码语言:javascript
复制
function father(){ }

① 根据 father 的构造函数创建对象 that

代码语言:javascript
复制
const that=Object.create(father.prototype)

father.prototype对应fatherconstructor

② that 执行 father,为自身的constructor赋值

代码语言:javascript
复制
father.call(that)

③ 返回 that

完整的 new 为:

代码语言:javascript
复制
function father(){}

function new(){
  //that 指代 this    
  const that=Object.create(father.prototype)
  father.call(that)
  return that
}
4、getElementById和querySelector的区别

getElementById获取目标节点后,当节点更新时,getElementById会跟着更新, 但是querySelector类似于快照,当获取目标节点后,当节点更新时,它不会跟着更新

5、HTTP 的 GET 和 POST 请求有什么区别?

① 发送参数的位置不同 get的参数放在urlpost封装在body

② 参数长度限制 get请求参数因为放在url中,所以长度有限制 post请求参数长度没有限制

③ 编码方式 GET请求只能进行url编码,而POST支持多种编码方式

④ 安全 postget安全

6、bind
代码语言:javascript
复制
  function func(a,b,c){
    console.log(a,b,c)
  }
  const newFunc=func.bind(null,'a','b')
  newFunc('c') //'a','b','c'
  func('c') //'a',undefined,undefined

当使用.bind()传入参数后,在后续使用时,需要注意新传的参数。(我觉得.bind()是破坏可读性的函数)

7、yarn run start 和 yarn start 是没有区别的

参考:https://segmentfault.com/q/1010000022092499

8、更新 npm 包版本时,常用的命令
代码语言:javascript
复制
//2.0.0 —> 2.0.1
npm version patch && git push --follow-tags && npm publish 
//2.0.0 —> 2.1.0
npm version minor && git push --follow-tags && npm publish
//2.0.0 —> 3.0.0
npm version major && git push --follow-tags && npm publish
9、less中我想让一个hover样式只对 有item类 且 没有light类 的元素执行
代码语言:javascript
复制
.light{

}

.item{
        &:not(.light):hover{
            color: #FE6225
        }
    }
10、nth-of-type对所有子元素进行筛选,不分type,nth-child对同类型的子元素进行筛选

css:

代码语言:javascript
复制
    /*nth-of-type 表示 div 所属的父元素中,先筛选出子元素是 div 的集合, 然后根据 div 是在偶数位置的情况*/
    #app div:nth-of-type(even) {
      color:blue;
    }

    /*nth-child 表示 div 所属的父元素中,所有子元素且 div 是在偶数位置的情况*/
    #app div:nth-child(even) {
      color:red;
    }

html:

代码语言:javascript
复制
<div id="app">
  <span>a</span>
  <div>b</div>
  <div>c</div>
  <div>d</div>
</div>
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 webchen 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、浏览器页面的生命周期
  • 2、箭头函数和普通函数的区别
  • 3、new 的原理
  • 4、getElementById和querySelector的区别
  • 5、HTTP 的 GET 和 POST 请求有什么区别?
  • 6、bind
  • 7、yarn run start 和 yarn start 是没有区别的
  • 8、更新 npm 包版本时,常用的命令
  • 9、less中我想让一个hover样式只对 有item类 且 没有light类 的元素执行
  • 10、nth-of-type对所有子元素进行筛选,不分type,nth-child对同类型的子元素进行筛选
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档