新手前端学习笔记

0 阅读7分钟

前端入门必懂|从JS and CSS Clock出发,吃透前端“三权分立”思想✅

作为前端新手,每一节基础课都能解锁新的认知!今天跟着课程学习了JS and CSS Clock(JS和CSS时钟),看似是一个简单的小案例,却藏着前端开发的核心逻辑——模块化、职责分离,尤其是前端“三权分立”思想,彻底打通了我对HTML、CSS、JS三者关系的模糊认知,整理了详细的学习笔记和感悟,分享给和我一样刚入门的小伙伴~

先明确一个核心前提:我们学习JS and CSS Clock,不是为了“古法编程”炫技,而是通过这个简单案例,理解前端开发的规范和逻辑,掌握prompt背后的领域知识,为后续复杂开发打下基础,这才是学习的核心意义。

一、核心重点:前端“三权分立”,各司其职不越界

前端开发的“三权分立”,本质就是HTML、CSS、JS三者模块化分工,各自负责自己的核心职责,互不干扰又相互配合,这也是前端代码整洁、可维护的关键。结合JS and CSS Clock案例,我们逐一拆解三者的职责:

1. HTML:负责“解构”,搭建页面骨架

HTML的核心作用是构建页面的结构,就像时钟的“表盘骨架”,没有骨架,后续的样式和行为都无从谈起。重点掌握这几个关键点:

  • 盒子模型与树状结构:HTML页面本质是一个树状结构,通过嵌套的div(盒子)搭建基础布局,比如时钟的整体容器、表盘、指针,都是通过div嵌套实现的;
  • Emmet快捷输入:新手写HTML最耗时的就是嵌套结构,学会Emmet语法能大幅提升效率,比如搭建时钟结构,只需输入 .clock>.clock-face>(.hand) ,回车就能自动生成嵌套结构,其中div可省略(Emmet默认标签为div);
  • 选择器基础:案例中用到了类名选择器(.clock、.clock-face、.hand)和子元素选择器(>),类名选择器用于定位具体元素,子元素选择器用于定位嵌套关系中的直接子元素,这是后续CSS样式定位的基础。

简单来说,HTML就是“搭架子”,把时钟的各个部分(表盘、指针)的位置和层级确定好,不负责任何美观和交互。

2. CSS:负责“样式”,打造视觉美感

CSS(层叠样式表)的核心作用是美化HTML骨架,就像给时钟的骨架“上色、塑形”,让原本单调的div变成美观的时钟表盘和指针。

在JS and CSS Clock案例中,CSS负责设置时钟的大小、形状、颜色、阴影,比如将.clock设置为圆形表盘,.hand设置为指针样式,调整指针的位置和旋转基点,这些都是CSS的核心工作。

这里要记住一个关键原则:CSS只负责“看起来怎么样”,不负责“做什么”,所有视觉相关的需求,都交给CSS来处理,避免和HTML、JS混淆。

3. JS:负责“行为”,实现交互逻辑

JS的核心作用是实现页面的交互和动态效果,就像给时钟“注入灵魂”,让指针能够随着时间转动,实现时钟的核心功能。

在本案例中,JS的职责就是获取当前时间,计算时针、分针、秒针的旋转角度,然后通过DOM操作动态修改CSS样式,让指针实时转动。除此之外,JS还负责处理页面的事件(比如时钟的重置、暂停等,本案例可延伸)。

同样要明确原则:JS只负责“做什么”,不负责页面结构和视觉样式,避免出现“用JS修改元素样式”的不规范操作(特殊场景除外)。

二、关键细节:前端引入顺序与性能影响

除了“三权分立”,课程中还提到了一个容易被新手忽略,但对页面性能影响极大的点——HTML、CSS、JS的引入顺序,结合笔记整理了核心要点,新手一定要记牢:

1. CSS的引入:放在head头部

CSS文件需要通过link标签引入,并且要放在HTML的head标签内。原因很简单:CSS需要更早地与HTML融合,让浏览器在渲染页面时,能够同步加载样式,用户打开页面就能快速看到静态效果,避免出现“先看到杂乱的HTML,再加载样式”的尴尬场景。

2. JS的引入:放在body结束之前

JS文件通过script标签引入,绝对不建议放在head头部!因为JS是阻塞性加载的,如果放在head,会阻塞HTML的解析和CSS的渲染,导致页面加载变慢,用户需要等待更长时间才能看到页面内容。

正确的做法是将script标签放在body标签的结束之前(之前),这样既能保证页面的静态样式已经加载完成,又能避免JS阻塞页面渲染,让用户先看到完整的静态页面,再加载JS实现交互效果。

3. 性能小知识点:0.1s的影响

课程中提到一个震撼的数据:网页每快0.1s,用户满意度提升,付费转化可增加1000万$ 。这也印证了前端性能的重要性,而规范的引入顺序,正是优化页面加载速度的基础步骤之一,新手从入门就要养成注重性能的习惯。

三、核心原则:模块化与职责分离

无论是“三权分立”,还是引入顺序,核心都围绕一个原则——模块化,职责分离。具体来说,就是“一个文件一个功能”:

  • HTML文件:只写页面结构,不掺杂任何CSS和JS代码;
  • CSS文件:只写样式,通过选择器定位HTML元素,不写JS逻辑;
  • JS文件:只写交互行为,通过DOM操作控制HTML和CSS,不直接编写样式。

这样做的好处很明显:代码结构清晰,便于后期修改和维护;多人协作时,不会出现“修改JS影响样式”“修改CSS破坏结构”的问题;也能让我们更清晰地理解前端开发的逻辑,避免陷入“一锅粥”式的编码误区。

四、学习感悟:从案例到思维,新手的成长之路

刚开始学习JS and CSS Clock时,我以为只是简单的“用JS控制指针转动”,但越学越发现,这个小案例背后藏着前端开发的底层逻辑——“三权分立”和职责分离。

作为前端新手,我们很容易陷入“急于实现效果,忽略规范”的误区,比如用JS直接修改元素样式,或者把CSS代码写在HTML的style属性里,虽然能实现效果,但后期维护起来会非常麻烦。而通过这个案例,我明白了:前端开发不仅要“能实现”,还要“规范实现”,模块化和职责分离,就是规范的核心。

另外,课程中提到的“不是为了古法编程”,也让我深受启发:学习这些基础案例,不是为了掌握“如何手写一个时钟”,而是为了理解背后的领域知识,掌握前端开发的思维方式,比如如何拆分需求、如何分工协作、如何注重性能,这些能力才是我们后续学习更复杂框架(比如React、Vue)的基础。

五、总结

一节JS and CSS Clock的课程,不仅让我学会了一个简单的前端小案例,更让我吃透了前端“三权分立”的核心思想,掌握了HTML、CSS、JS的职责分工和规范引入顺序,也明白了模块化开发的重要性。

对于前端新手来说,基础的积累比快速实现效果更重要。后续我会继续深入练习这个案例,尝试扩展功能(比如添加时钟样式切换、时间格式调整),同时牢记职责分离的原则,规范自己的编码习惯,一步步夯实前端基础,向更专业的前端开发者迈进~

最后,附上本次学习的核心笔记总结(可直接收藏):

  1. 前端三权分立:HTML解构(骨架)、CSS样式(美观)、JS行为(交互);

  2. Emmet快捷语法:.clock>.clock-face>(.hand) 快速生成嵌套结构;

  3. 引入顺序:CSS放head,JS放body结束前;

  4. 核心原则:模块化、职责分离,一个文件一个功能。