推倒JS的青春之旅
青春啊,只有一次,花有重开日,人无再少年。群里的小伙伴们,我是嫉妒你们的,在每次群视频的时候。虽然我觉得自己依然还年轻。有人说青春就是用来浪费的,也有点道理。虽然我并不希望你们这样,哈哈,感慨一下就算了。
今天(8月7日)晚上8点的先行者计划周末群视频,这次讲的内容比较偏向理论多一些,主要内容就是组件的定义和它的生命周期,可以划分为产生、使用,销毁,三个阶段。许多同学表示没太听懂,但我没法同情你们,而且我表示以后这种偏理论的东西肯定还会有。但你们必须听,听不懂硬听。学习也是一种艰苦的体力劳动。要明白这种偏理论的东西培训班必然不会讲,因为讲这种东西“不出活”。搞几个小例子让你们做做好多啊,你们自己也有成就感、还高兴、还觉得老师挺好,老师还轻松。但理论这种东西是提高层次的阶梯,必须硬学。你们也不必想着哪公司里找个人能像培训班老师那么仔细的给你们讲明白,不可能的。为什么?因为人家没那么闲工夫,给你讲半天你还听不懂。就是听我的课,你们也应该能感受到,其实我不太会讲课,我只是把我会的东西都仔细的整理出来,然后讲给你们听,不太讲究什么教学方法,更多的是一种方向性的指引。
讲一下同学们的作业,其中“木沐”的作业有一个小BUG,导致ta的作业到我这不运行,其实就是AJAX方法里,少了一句dataType:'json',没有这句,它load回来的东西就是字符串,就不是JSON对象。所以data.selects就得不到,就没有length,所以就undefined了。
这就是写东西的时候,没有手指记忆,就是做的少。不说别人,就像我,在写一些特定的东西的时候,都不用想,直接就先把一些程式化的东西写出来了,什么url啊,type啊,success啊,等等,,然后才是过脑子开始想逻辑。我相信ta也是看了很多教程啊,视频这那的,因为ta的作业写的整体很不错。但这种细节上的缺失却造成了整体的问题。这就是教程看的多,但没怎么用好。要我说啊,看教程,就看它的理论部分,具体JS实现其实一代而过就好。因为JS就是那么写,哪本书里也不能把它写出花了。只能是不同的角度去讲。
以前我推荐过一种反向学习JS逻辑的方法,就是在网上找个例子。然后你把它的JS,一句一句,一段一段的,用中文给翻译过来。就这样,
if(!data.select){
return false;
}
$('#selectDiv').get(ajax.url,function(){
popup('$(#xxx)');
});
假设你看不懂上面这一段JS,是假设啊。那你就一行一行的用中文翻译,
if(!data.select){
//如果data里的select没有,
return false;
//那么就返回false,然后整个JS就停止了。因为返回的是false
//如果data里有select,就不返回false,就接着执行到selectDiv那里。
$('#selectDiv').get(ajax.url,function(data){
//ID是selectDiv的这个DIV,
//它获取ajax的url里的链接返回的数据,
//返回的数据被第二个参数的匿名函数获取
popup( data );
//返回的是data,然后回传给popup
});
就这样,一句一句的,我这就是一个意思。当然上面那么简单的东西谁都能看懂。但如果你看一些JS框架之类的,有些东西很绕,就可以用这种方法。这种方法很笨很累,得一行一和的打字。但它应该也好使。有兴趣的同学可以试试。
还有一种思维方式上的练习,就是尽量去想,不是你用JS在做什么,而是你用JS这种语言告诉机器,让机器做什么。想像电脑是一人能听懂JS语言的机器人。你跟他说弹出一个窗口,它听不懂。你跟它说,alert('xxx'),这它就能听懂了。
这就是学会说机器人话。反正我就是这么想的。就好比学英语要学语法和单词,学机器人话就要学习JS语法,单词就是那些命令。
然后尽量还是加入一些组织之类的,什么QQ群啊,学习组织之类的,适当的都可以加入。虽然有些群水的厉害,但毕竟群主还是多少会点东西的。你可以不在群里发言,只跟群主单聊啊。
当初我就这么做过,我加了十几个QQ群,然后把这十多个QQ群里的群主和管理员,大概30来人全都申请加为好友。这里面至少一半通过我的好友请求,然后我把这十几个QQ群全退了。然后只要我有不懂的问题,我就把我的问题,同时发给这十几个人,里面肯定会有人回答我的。。。虽然这个方法有点不太好,但当时为了学习,脸也就不要了。
- 颠覆者的游戏:程序语言
- CTF| SQL注入之login界面
- 懒惰的力量
- 让AI自动修复程序中的bug:微软亚洲研究院新研究 | 附论文
- OpenDaylight与Mininet应用实战之OpenFlow1.0协议分析二
- Javascript: 世纪机器语言?
- OpenDaylight与Mininet应用实战之基本环境搭建一
- 永恒不变的魅力
- MobileNet教程(2):用TensorFlow搭建安卓手机上的图像分类App
- OpenDaylight与Mininet应用实战之流表操作三
- 天啊,这个围笑代表什么?麻省理工的AI比你更懂 | 论文+Demo
- elixir:灵丹妙药?or 徒有其名?
- OpenDaylight与Mininet应用实战之三层转发机制四
- 程序员效率指南
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python写的小程序
- 不求甚解之 Spanning Tree
- C语言常用的一些转换工具函数收集
- OpenAI Gym入门级导游 | 附PDF手册下载 | 山人刷强化 | 4th
- python中常见关于Excel表格读写操作
- 2行代码搞定一个定时器!
- python算法题练习---二分法
- 局部加权线性回归 | 冰水数据智能专题 | 3rd
- 一文探讨 RPC 框架中的服务线程隔离
- Python3与Python2的具体区别
- 分布式系统的概念都搞懂了吗?(上)
- Kafka-manager部署与使用简单介绍
- 面向对象的7种设计原则(5)-里氏代换原则
- CentOS7下利用Google Authenticator实现SSH登录的二次身份验证
- 满分室间质评之GATK Somatic SNV+Indel+CNV+SV(下)性能优化