HTML&CSS&JS | 青训营笔记

92 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天

按课表内容来讲青训营前三天的芝士应该算是第一大模块了,这里我们再次接触了梦开始的地方——前端开发三剑客。当初开始接触前端的时候,这些东西对我来说还是很生涩的玩意,后面接触到各种现代架构后逐渐忘记了这些老家伙。但经过青训营的课程,我对他们产生了新的理解,感觉像是接触到了新世界。

前端

前端,顾名思义前面的那头,主要以ui界面与用户交互,同时与后端一系列服务处理这些交互。

前端技术栈,便是HTML、CSS、JavaScript三座大山。

HTML

过多重复内容忽略,对我来说比较陌生的便是HTML语义化。可能是之前学习时没注意过,这个概念让我对前端开发有了新的认识——“传达的是内容,不是样式”。互联网最初的目的是进行知识共享,而语义化正是将现在网络的发展引向最初的那个目标。

<h1>Hello World!</h1>
<p style="font-size:32px; font-weight:900;">Hello World!</p>

效果如下

image.png

虽然他们看起来是一样的,但搜索引擎不这么认为,帮助视觉障碍人士浏览网页的阅读器也不这么认为。作为一名开发者,我们要知道我们面对的用户不仅仅是同事和普通用户,充分理解并应用语义化将对所有用户都很友好。

CSS

作为一个知识树比较奇葩的前端小白,我对CSS的继承及优先级计算竟没有任何知识储备……

优先度主要参考三个参数:id选择器,(伪)类选择器,元素选择器。根据一条CSS样式的选择器不同,按顺序填成三位数,哪个大哪个优先级就高。最后一个元素的样式将经过一系列复杂的计算来确定。

image.png

偷个懒用课上的截图(逃……

利用CSS画图也是曾经遇到过的一个有意思的解决方法,当时的场景要求使用一个小圆点,可以这样搞

// CSS
#circle {
  width: 100px;
  height: 100px;
  background-color: blue;
  border-radius: 50px;
}

// HTML
<div id='circle' />

image.png

感觉灵活性蛮高的

JavaScript

月影老师讲了js的三大原则:各司其职,组件封装,过程抽象。这是一份好的代码的一个标准。

各司其职,就要使js与HTML、CSS分离,专注做好各自的任务,比如js处理事件逻辑

组件封装,将一部分实现某个东西的代码抽离组合在一起,变成一个较独立的功能单元。这在比较流行的react、vue等框架中已经有了相当广泛的应用。

过程抽象,应用函数式编程思想,处理局部细节。(本身就很抽象……)

对于js本身,需要学的内容好多像红宝书、犀牛书等已经很全面了。而对于实践中可能出现的各种问题,月影老师也分享了一些优化代码的技巧。这让我想起来之前竞赛时学到的种种算法,其实他们都是相通的,就比如拼接字符串的log(N)做法,对于竞赛生还是很熟悉的。

在之后的学习工作中,为了避免像leftpad之类的事情发生,我们要经常问问自己:这段代码还能不能继续优化啊……