Day2:JS的三座大山:原型异步作用域

2019-04-05  本文已影响0人  知鱼君

温习CSS

选择器分类

image.png

选择权权重

ID选择器 +100
类 属性 伪类 +10
元素 伪元素 +1
其他选择器 +0

字体

字体的fallback机制

字体族不加引号

行高

行高由line-box决定,line-box由inline-box组成,inline-box的高度决定行高

背景

灵活运用CSS可以实现很多有意思的图形

雪碧图的作用:优化页面,减少HTTP请求数

base64和性能优化:节省HTTP连接数,一般只用作少量小图标

边框

边框的属性:线性、大小、颜色

边框之间的衔接是用斜的方式,可以做成三角形

滚动

auto scroll

文字折行

overflow-wrap, word-break, white-space

装饰器属性及其他

font-weight, itatic, text-decoration, cursor

CSS HACK

只在一部分浏览器上生效的手法,叫做CSS HACK

最近几年的前端中,这一块用的越来越少了

面试真题

CSS面试真题

  1. CSS样式(选择器)的优先级
  1. 雪碧图的作用
  1. 自定义字体的使用场景
  1. base64的使用
  1. 伪类和伪元素的区别
  1. 如何美化checkbox

原型和原型链

构造函数

原型规则

原型规则是学习原型链的基础

[].__proto__ == Array.prototype
true
{}.__proto__ == Object.prototype
true
fn.__proto__ == Function.prototype
true
image.png

作用域和闭包

this

this要在执行时才能确认值,定义时无法确认

.bind必须是函数表达式的方式,不能是函数声明的方式

作用域

当前作用域没有定义的变量,叫做自由变量

一个自由变量,一直不断的往它的父级作用域去找,形成了一个链式结构

闭包

一个函数的作用域看在它定义时候的作用域,而不是执行时候的作用域

function F1() {
  var a = 100
  // 返回一个函数(函数作为返回值)
  return function () {
    console.log(a)
  }
}
// f1 得到一个函数
var f1 = F1()
var a = 200
f1()

闭包的使用场景

function F1() {
  var a = 100
  return function () {
    console.log(a) // 自由变量,父作用域寻找
  }
}
var f1 = F1()
function F2(fn) {
  var a = 200
  fn()
}
F2(f1)

真题

  1. 创建10个a标签,点击的时候弹出来对应的序号
var i
for (i=0; i<10; i++){
  (function(i){
    // 函数作用域
      var  a = document.createElement('a')
      a.innerHTML = i + '<br>'
      a.addEventListener('click', function(e){
        e.preventDefault()
        alert(i) // 自由变量,要去父作用域获取值
      })
      document.body.appendChild(a)
   })(i)
}

自执行函数,就是不用调用,只要定义完成,立即执行的函数

利用了闭包,保存了状态,调用时获取函数作用域的变量,而不是再外面一层

  1. 如何理解作用域

异步和单线程

何时需要异步

js是单线程语言,同时只能干一件事

其他知识

Date.now()

Math.random()

数组API

对象API

今日感想

上一篇 下一篇

猜你喜欢

热点阅读