摘要: JS中this的指向 this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象。 实例 定义函数与对象并调用,注意只有调用函数才会使this指向调用者,但箭头函数除外。 function s(){ console.log( 阅读全文
posted @ 2020-03-24 13:27 WindRunnerMax 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 函数声明与函数表达式 定义一个函数的方法主要有三种 函数声明、函数表达式、new Function构造函数,函数声明与函数表达式定义的函数较为常用,构造函数的方式可以将字符串定义为函数。 函数声明 函数声明会将声明与赋值都提前,也就是整个函数体都会被提升到作用域顶部。 s(); // 1 funct 阅读全文
posted @ 2020-03-24 13:26 WindRunnerMax 阅读(247) 评论(0) 推荐(0) 编辑
摘要: CSS优先级 当样式表比较复杂时,很容易出现多个样式对作用于一个标签的情况,这时就需要注意CSS优先级来决定哪些样式会被作用于该标签,哪些会被覆盖。 选择器的优先级 对于标签自有的属性,选择器的优先级规则为: 内联样式 > ID 选择器 > 类选择器 = 属性选择器 = 伪类选择器 > 标签选择器 阅读全文
posted @ 2020-03-24 13:25 WindRunnerMax 阅读(401) 评论(0) 推荐(0) 编辑
摘要: iframe框架及优缺点 HTML5不再支持使用frame,关于frame与iframe的区别,可以参阅 iframe与frame的区别。 基本使用 src:规定在iframe中显示的文档的URL。 frameborder:规定是否显示框架周围的边框。 scrolling:规定是否在iframe中显 阅读全文
posted @ 2020-03-24 13:24 WindRunnerMax 阅读(976) 评论(0) 推荐(0) 编辑
摘要: JS事件流模型 事件捕获Event Capturing是一种从上而下的传播方式,以click事件为例,其会从最外层根节向内传播到达点击的节点,为从最外层节点逐渐向内传播直到目标节点的方式。 事件冒泡Event Bubbling是一种从下往上的传播方式,同样以click事件为例,事件最开始由点击的节点 阅读全文
posted @ 2020-03-24 13:23 WindRunnerMax 阅读(929) 评论(0) 推荐(1) 编辑
摘要: 事件冒泡及阻止 当一个元素接收到事件的时候,会把他接收到的事件传给自己的父级,一直到window,当然其传播的是事件,绑定的执行函数并不会传播,如果父级没有绑定事件函数,就算传递了事件,也不会有什么表现,但事件确实传递了。 事件冒泡的原因是事件源本身可能没有处理事件的能力,即处理事件的函数并未绑定在 阅读全文
posted @ 2020-03-24 13:22 WindRunnerMax 阅读(426) 评论(0) 推荐(0) 编辑
摘要: 重绘与回流 重绘与回流是浏览器渲染的时候进行的操作,当页面内容发生改变的时候,就会触发重绘或者回流 重绘 当渲染树中的一些元素需要更新属性,而这些属性只是影响元素的外观,风格,而不会影响布局的,比如background-color,则就叫称为重绘Repaint,重绘不一定触发回流。 回流 当渲染树中 阅读全文
posted @ 2020-03-24 13:20 WindRunnerMax 阅读(458) 评论(0) 推荐(0) 编辑
摘要: 浏览器渲染与内核 浏览器内核可以分成两部分:渲染引擎与JS引擎。最开始渲染引擎与JS引擎并没有明确的区分,但随着JS引擎越来越独立,内核就越来越倾向于只指渲染引擎。 渲染过程 不同浏览器内核的渲染方式不同,但整体流程基本一致: 自上而下,首先解析HTML标签,生成DOM Tree。 在解析到<lin 阅读全文
posted @ 2020-03-24 13:19 WindRunnerMax 阅读(285) 评论(0) 推荐(0) 编辑
摘要: apply()、call()、bind() 每个Function对象都存在apply()、call()、bind()方法,其作用都是可以在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖以运行的作用域。 使用 apply()、call()、bind()都能改变函数对象的this 阅读全文
posted @ 2020-03-24 13:17 WindRunnerMax 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 匿名函数与自执行函数 匿名函数就是指的没有名字的函数,即定义函数对象时不定义函数体名字,但是必须将匿名函数作为表达式赋予一定操作,比如将其作为变量值或者让其自执行,否则这次定义将无意义,解释器也会抛出异常。 匿名函数 /** * 定义函数 声明式 * 声明式会导致函数提升,function会被解释器 阅读全文
posted @ 2020-03-24 13:15 WindRunnerMax 阅读(650) 评论(0) 推荐(0) 编辑