CCZX

Results 10 comments of CCZX

BFC的全称叫做**块级格式化上下文**,拥有BFC属性的元素是一个独立的空间,内部的布局不会影响外部,外部的布局也不会影响内部。BFC元素在计算高度的时候浮动元素也会参与计算,在页面中是一个独立的容器,BFC区域不会与浮动元素重合。BFC可以用来解决margin塌陷和清除浮动。 创建BFC: 1. float不为none 2. position不为static和relative 3. overflow:hidden 4. display为inline-block、table-cells等

string、number、undefined、null、object、symbol。 null不是一个对象而是一个原始值。 基本数据类型的值存储在栈内存里,而复杂类型的的地址存储在栈内存,值存储在堆内存。

HTML5新增了许多语义化标签和一些新的API,废除了一些旧的标签,语义化标签的出现使得代码更具有可读性,对搜索引擎更加的友好,废除的一些旧的标签更加体现了结构样式分离的的思想,比如center标签。

基于事件冒泡, 我们在父节点上绑定事件,然后当子节点触发该事件之后会冒泡到父节点,父节点可以通过事件对象来判断子节点类型,然后触发相应事件。 好处: 避免绑定过多的事件, 动态添加的子节点不需要在绑定事件, 不用担心字节带你销魂后子节点的事件没有解绑

这里涉及到JavaScript的Event Loop,首先js引擎在执行代码的时候,会把整个script看作一个宏任务,在执行内部代码的时候如果遇到同步任务就进入主线程等到它执行完成,遇到异步任务就会把它放入事件表注册,当事件满足执行条件的时候就把他的放入任务队列,当主线程空闲的时候就会依次清空任务队列,但是需要注意的是异步任务又微任务和宏任务之分,当主线程空闲时会先清空微任务列表的所有任务,然后再执行宏任务的一个任务。

setTimeuot是异步的任务,当遇到异步任务的时候会把该任务到事件表注册,当时间到的时候会把setTimeout的回调函数加入事件队列,只有当同步任务执行完成之后才会执行事件队列的任务,所以会有偏差,所以严格来说setTimeout 只是让开始执行时间不小于规定的时间。

防抖函数的作用是限制用户的频繁操作,影响网页的性能,防抖函数的原理是如果用户频繁操作事件处理函数就不会执行,只有当进行了最后一次操作,并且时间大于设定的时间才会执行;防抖函数的应用十分广泛:比如:1.只有在用户最后一次改变页面尺寸时才做一些操作,2:当用户在搜索框停止输入后发起Ajax请求; ```javascript function debounce(fn, wait, immediate = false) { let timer = null return function(...arg){ if(immediate) { fn.apply(this,arg) immetiate = false } timer ? clearTimout(timer) : "" timer = setTimeout(()=>{...

JavaScript执行上下文是JavaScript代码执行时的一个虚拟的环境,JavaScript首先会创建一个全局的执行上下文,如果后面遇到函数执行就创建该函数的执行上下文,并压入执行栈栈顶,当函数执行完成之后就从栈顶移除。JavaScript采用的是静态作用域,如果在访问某个变量的时候在自己的作用域中没有查询到,就会顺着作用域链向上查找知道全局作用域。

```css display: none; visibly: hidden; opacity: 0; top: -1000px; transform: translateX() height: 0; overflow; hidden ```

`XSS`叫做跨域脚本攻击,通过注入恶意代码来攻击目标网站 - 反射型:通过URL传参的方式来攻击 - DOM型:通过插入恶意HTML代码 - 持久型:保存再服务器上 **防范** 后端进行字符串转译