牛客网前端刷题手记(2)

  1. css布局中的BFC:block formatting context,块级格式化上下文,是指一个独立的块级渲染区域( formatting context拥有一套渲染规则,决定了子元素如何定位,以及与其他元素的相互关系和作用),就是页面上的一个隔离的独立容器,容器里面的子元素是不会影响到外面的元素,规定了内部block-level box如何布局。BFC的区域不会与float box叠加。在css2.1中满足下列css声明之一的元素便会生成BFC。(1)根元素;(2)float的值不为none;(3)overflow的值不为visible(overflow属性指的是如果内容溢出一个元素框会发生什么。详情:overflow);(4)display的值为inline-block、table-cell、table-caption;(5)position的值为absolute或fixed。BFC的作用:防止margin重叠;解决浮动相关问题使得父元素包含子元素不产生高度塌陷(创建BFC子浮动元素也会参与其高度计算);多栏布局的一种方式特点:左右两栏宽度固定,中间栏可以根据浏览器宽度自适应。(参考文档)。
  2. function关键字后跟一个*定义了一个生成器函数,它返回一个Generator对象。
  3. #是id,#content>.content id选择器大于类,伪类和属性选择器。
  4. <a href=URL, target=_blank>....</a>浏览器总在一个新打开、未命名的窗口载入目标文档;<a href=URL, target=_self>....</a>在当前窗口打开;<a href=URL, target=_parent>....</a>使得目标文档载入父窗口;<a href=URL, target=_top>....</a>在整个窗口中打开被链接文档。
  5. <ul><li>嵌套无序列表;<ol><li>嵌套有序列表;<dl>(定义描述列表)和<dt>(定义项目/名字)<dd>(描述每一个项目/名字)嵌套带有项目和描述的描述列表;<a>不能嵌套。
  6. typeof有string ,number,object,undefined,boolean,function。
  7. 作用域(scope):通常指一段代码中使用的函数和变量并不总是可用的,限定其可用性的范围即作用域。提高程序的逻辑的局部性,增强程序可靠性,减少名字冲突
  8. 作用域链(scope chain):函数拥有可以通过代码访问的属性和一系列仅供javascript引擎访问的内部属性,其中一个属性就是[[scope]],该内部属性包含了函数被创建的作用域中对象的集合,这个集合被称为函数的作用域链,它决定了那些数据能被函数访问。当创建了一个函数后,它实际上保存了一个作用域链,并且作用域链会被创建此函数的作用域中可访问的数据对象填充。当执行一个函数的时候会创建一个运行期上下文(execution context)【有人称运行环境】,运行期上下文定义了函数执行的环境。每个运行期上下文都有自己的作用域链,用于标识符解析,当运行期上下文被创建时,而它的作用域链初始化为当前运行函数的[[scope]]所包含的对象。这些值按照它们出现在函数中的顺序被复制到运行期上下文的作用域链中,它们组成了一个新的对象叫“活动对象”,该对象包含了函数的所有局部变量、命名参数、参数集合以及this,然后推入作用域前端,当运行期上下文被销毁,活动对象也随之销毁(参考文档)。
  9. 改变作用域链的方式:with:将制定的对象添加到作用域链中;try catch语句:延长作用域链,在作用域链的前端临时添加变量,该对象执行代码后移除,catch块会创建一个新的变量对象;eval:是把字符串转化为js代码,可计算某个字符,并执行其中的javascript代码,例如:document.write(eval(“2+2”)) 输出:4 。
  10. css的三种定位机制:(1)文档流:元素排版布局过程中,元素自左向右,自上向下的流式排版。(2)浮动(float):属性有none、left、right,只有横向浮动,没有纵向浮动;元素应用float属性后,将会脱离普通流,其容器父元素得不到脱离普通流的子元素高度;会将元素的display属性变为block。(3)绝对定位:position:absolute 相对于已定位的最近的祖先元素,如果没有已定位的最近祖父元素,那么它的位置就相当于最初的包含块(body)绝对定位的框可以从他的包含块向上左下右移动,绝对定位的框脱离普通流,所以可以与其他元素重叠,通过Z-Iindex属性来控制堆放次序。(:position其它属性:static是position的默认值,元素按照正常的文档流进行排列静态元素不会受到top,bottom,left,right影响;fixed是生成绝对定位元素,产生的效果不随着滚动条的移动而改变位置,相对于浏览器;relative是生成相对定位的元素是对于其正常位置定义的,没有脱离文档流。)
  11. 只能输入零/非零开头的数字的正则表达式:^(0|[1-9][0-9]*)$ ; ^代表以……开头,$代表以……结尾 , * 代表任意多次,|是或,()是组,[]是集合。
  12. 主流浏览器内核私有属性css前缀:(1)mozilla内核(firefox,flock等) -moz;(2)webkit 内核(safari,chrome等) -webkit; (3)opera内核(opera浏览器) -o; (4)trident内核(ie浏览器) -ms。

猜你喜欢

转载自blog.csdn.net/Xseking/article/details/83049293