[编程开发] 感觉自己学会了JavaScript所有基础知识,为什么老师留一个日历的作业我还是写不出来?

[复制链接]
yyctt 发表于 2023-10-8 03:12:37|来自:北京航空航天大学 | 显示全部楼层 |阅读模式
感觉自己学会了JavaScript所有基础知识,为什么老师留一个日历的作业我还是写不出来?
全部回复5 显示全部楼层
dermot 发表于 2023-10-8 03:13:22|来自:北京航空航天大学 | 显示全部楼层
我知道了功夫书上的每一个动作,但是跟一个普通人打架,依然每次都被揍。这是为什么呢?
这个普通人的所有招式都没写到书里,当对方攻击过来的时候,你根本不知道可以用哪一招对抗,因为书上没说...那怎么办?
最好的办法不是再把书读一遍,而是理解功夫书上的每一招可以应对哪一类攻击,比如上路的所有攻击可以侧防,下路的所有攻击可以推挡等等。
<hr/>运用 JS 也是一样的,先看清问题长什么样,分解下问题,然后把学到的 JS 发挥出来。最简单的日历就是纯展示无交互,那么每个月份有几天?每天都对应星期几?最后就演变成一个数学问题,你需要做的只是结合 Date 把数学公式推导出来而已
sevil 发表于 2023-10-8 03:14:02|来自:北京航空航天大学 | 显示全部楼层
做一个日历组件,难吗?说容易也容易,结合 JavaScript 原生 Date 来做基础的月份视图,的确不算复杂。可要往复杂了说,还是有很多可以深入的细节的。
比如,支不支持选中?是否支持范围?是否支持选中多个范围?选择多范围时每次选取和之前的已选项的合并策略?如何支持预设快捷选项并且方便扩展?
是否支持日期的禁用?禁用项和已选项有什么叠加关系?
是否支持配置并列现实多个视图并保持联动?
单元格内容如何让外部进行扩展?如果我要往里边加待办事项,有什么方便扩展的方式?
是否支持键盘/读屏器操作?如何管理焦点?如何支持多语言?
当然,最后的大杀器还是如
@廖雪峰所说的:如何支持农历?
十四 发表于 2023-10-8 03:14:18|来自:北京航空航天大学 | 显示全部楼层
日历真的不简单啊
那一日人们想起了被daylight saving time支配的恐怖...


source:1883: Supervillain Plan
叛逆∵生活 发表于 2023-10-8 03:15:03|来自:北京航空航天大学 | 显示全部楼层
顺着 @程墨 大佬的回答,我也补充一下,为什么感觉对JavaScript的基础理解的挺好,但是很多东西做不出来。
阻碍你的是“思维惯性”,想想你是怎么学JavaScript的,看各种书,各种理论教程,然后还可以练习小demo,最后发现自己都掌握的差不多了,接着,老师布置作业,做一个日历,啥,不会做,懵逼了吧!
因为你学到的JavaScript知识只是用来解决了小demo,你没有学习如何思考解决各种问题的方案。就像一个刚刚驾考满分的人,如果这时候去路上开车,遇到各种突发情况,可能就死翘翘了。
而且,除了个别大神,谁敢说自己学会了所有JavaScript知识?就说说日历吧,我也没做过,从问题来分析实现方案:
1、日历需要如何呈现,用原型图或者设计图表达出来。
2、有哪些功能模块。
3、如何定义各个模块的数据结构。
4、模块之间的逻辑交互理顺。
5、用自己掌握的基础知识去实现一个简洁版。
6、对写好的代码进行优化。
7、后续兼容性问题的处理。

所以说,一个日历,也就是一个需求,他不仅仅考察你的基础知识,更多是你提炼问题,分析问题,找到解决思路的能力,要做到这些,就得摆脱你固有的思维惯性,忘记学JavaScript时候练习的那些小 demo,那些真没什么难度。
最后说说前端,真的要掌握各种前端技术才能有自信跟老板拿工资干活吗?做前端的有很多种人,比如会干活又会造轮子的,只会干活的,会干活又会出书的等等,大部分前端都是属于只会干活的,不会做日历就要被淘汰了吗?那我是不是现在就跟老板辞职,辞职理由:不会写日历插件,请老板放我一条生路!
老板肯定会一巴掌甩过来:楼下不是有好几个会造日历的吗,跟他们要去一个啊!
shzlq 发表于 2023-10-8 03:15:44|来自:北京航空航天大学 | 显示全部楼层
谢邀。
实现一个这样的Calendar控件吗?挺难的,让我来做我也要费好大劲,还不一定做得对。

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则