record | chenfx

chenfx , record everything……


  • 首页

  • 归档

  • 站点地图

css语法,除了属性和选择器还需要知道这些带@的规则

发表于 2019-03-10 | 阅读次数:

CSS 是前端工程师每天必不可少的必修课,那么它的资料又是怎样的呢,说起来真的很糟糕,这是因为 CSS 并没有像 HTML 和 JavaScript 那样的一份标准文档。

在这里 我们一共能看到98份 CSS 相关的标准,它们各自从不同的角度规定了 CSS 的特性。将 working draft 状态的去掉后仍可以得到 22 份候选标准和 6 份推荐标准。对于这些知识,怎么才能把这些离散的标准组织成易于理解及记忆的形式?

这里,根据 winter 老师的经验,他提供的方法是根据 CSS 语法来进行,任何 CSS 的特性都必须通过一定的语法结构表达出来,所以语法可以帮助我们发现大多数的 CSS 特性,因此了解一波CSS 语法的最新标准,看这里;这篇文档阅读体验比较差,幸好,winter 老师给我们做了总结抽取(跟着大佬走准没错),接下来一起看看。

在标准中可以看到,去除空格、HTML 注释等无效信息,CSS 的顶层样式表由两种规则组成的规则列表构成,一种被称为 at-rule,也就是 at 规则,另一种是 qualified rule,也就是普通规则。

at-rule 由一个 @ 关键字和后续的一个区块组成,如果没有区块则以分号结束;这些 at-rule 在开发中使用机会远远小于普通的规则,因此大部分内容可能比较陌生。

这些 at 规则正式掌握 CSS 的高级特性所必须的内容;而 qualified rule 则是普通的 CSS 规则,也就是我们熟悉的,由选择器和属性指定构成的规则。

阅读全文 »

javascript对象,你知道全部的对象分类吗

发表于 2019-03-05 | 阅读次数:

前面的学习过程中学习了 JavaScript 对象的部分基础知识,它只是特定的一部分,并没有覆盖全部的 JavaScript 对象。

比如说,在不管怎样编写代码的过程中,都没法绕开 Array ,实现一个跟原生的数组行为一模一样的对象,这是由于原生数组的底层实现了一个自动随着下表变化的 length 属性。

并且,在浏览器环境中,我们也无法单纯依靠 JavaScript 代码实现 div 对象,只能依靠 document.createElement 来创建;这也说明了 JavaScript 的对象机制并非简单的属性组合 + 原型。

在日常工作中接触到的主要 API,几乎都是下面这些对象提供的,理解这些对象的性质,我们才能真正理解所使用的 API 的一些特性。

阅读全文 »

javascript对象,真的需要模拟类吗

发表于 2019-03-01 | 阅读次数:

在刚进入 JavaScript 世界并通过公司实习的时候就发现,在使用 JavaScript 编写代码的过程中随处可见的 function 配合 new 关键字来操作,这就是以前常见的 JavaScript “模拟面向对象”。

在上一篇文章中已经知道 JavaScript 本身就是面向对象的,它并不需要模拟,只是它实现面向对象的方式和主流的流派不太一样,所以才让很多人产生误会。

那么,随着理解的思路继续深入,这些“模拟面向对象”实际上做的事情就是“模拟基于类的面向对象”。

尽管我认为“类”并非面向对象的全部,但是我们不应该责备社区出现这样的方案;但是 JavaScript 在“原型运行时”的基础上引入了 new、this等语言特性,使之看起来更像基于类的面向对象语言 Java,这种半吊子模拟,缺少了继承等关键特性,才导致大家视图对它进行修补,进而产生了种种解决方案。

庆幸的是,从 ES6 开始, JavaScript 提供了 class 关键字来定义类,尽管,这样的方案仍然是基于原型运行时系统的模拟,但是它修正了之前的一些常见的“坑”,统一了社区方案。实际上,我认为“基于类”并非面向对象的唯一形态,如果我们把视线从“类”移开,Brenan 当年选择的原型系统,就是一个非常优秀的抽象对象的形式。

阅读全文 »

javascript对象,面向对象还是基于对象

发表于 2019-02-25 | 阅读次数:

与其他语言相比,JavaScript 中的“对象”总是显得更加特殊,一些在学习 JavaScript 面向对象时往往会有很多疑惑:

  • 为什么 JavaScript(知道 ES6)有对象的概念,但是却没有像其他语言那样有类的概念?
  • 为什么在 JavaScript 对象里可以自由添加属性,而其他的语言却不能?

甚至,在一些争论中,有人说“JavaScript 并非面向对象的语言,而是基于对象的语言”;实际上,基于对象和面向对象两个形容词都出现在了 JavaScript 标准的各个版本中。

阅读全文 »

javascript类型,有哪些不知道的细节

发表于 2019-02-12 | 阅读次数:

任何语言,其基本类型都是每个程序员必须掌握的概念,但是,这些概念你是真正的全部了解吗?其中包含哪些细节内容?那么看看下面的几个问题:

  • 为什么有的编程规范要求用 void 0 代替 undefined?
  • 字符串有最大长度吗?
  • 0.1 + 0.2 不是等于 0.3 么?为什么 JavaScript 里得到的答案不是这样的?
  • ES6 新加入的 Symbol 对象是什么?
  • 为什么给对象添加的方法能用在基本类型上?

前面的学习过程中,从 JavaScript 模块从运行时、文法和执行过程三个角度去进行并剖析了其知识体系,这里的学习内容就是从运行时的角度去看 JavaScript 的类型系统的。

运行时类型是代码实际执行过程中我们用到的类型,所有的类型数据都会属于7个类型之一。从变量、参数、返回值到表达式中间结果,任何 JavaScript 代码运行过程中产生的数据,都具有运行时类型。

阅读全文 »
1…567…13
chenfx

chenfx

64 日志
13 标签
GitHub
Creative Commons
© 2016 — 2023 chenfx
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.3

渝公网安备 50010302001280号

渝ICP备16001477号-1