为什么强调是基础知识,因为往往基础知识才是最容易被忽略,最容易忘记的部分,其实也是最难掌握全面和深入的部分。其实我更愿意叫这些知识为核心知识,其实它们并不基础,而是整个知识体系的核心。
比如你是不是在面试的最关键时刻面对一道“基础的”排序题抓耳挠腮?你在快乐编码的时候被一个似曾相识的“基础的”API打断而翻箱倒柜找文档?几个人能说自己全面的了解Java几个基础类库?这些基础的往往也是最重要的、最核心的。
这个方法其实由来已久,而我昨天在coding的时候突然觉得它非常的重要也非常的好,值得一用。昨天在写个JavaScript的Calendar突然用到求一个浮点数的“天花板”(coders应该都知道天花板是什么吧,呵呵。考虑到非coder,天花板就是大于这个浮点数的最小整数,是不是很形象,其实编程也是一种艺术)。硬是不记得那个天花板的方法怎么写,虽然是滚瓜乱熟的个方法,但是因为很久没用加上E文不好只要打断正在状态的思路去google,找到这个API:
Question: What mathematical functions are supported in JavaScript?
Answer: JavaScript supports the following mathematical functions (methods of the Math
object):
Math.abs(a) // the absolute value of a
Math.acos(a) // arc cosine of a
Math.asin(a) // arc sine of a
Math.atan(a) // arc tangent of a
Math.atan2(a,b) // arc tangent of a/b
Math.ceil(a) // integer closest to a and not less than a
Math.cos(a) // cosine of a
Math.exp(a) // exponent of a
Math.floor(a) // integer closest to and not greater than a
Math.log(a) // log of a base e
Math.max(a,b) // the maximum of a and b
Math.min(a,b) // the minimum of a and b
Math.pow(a,b) // a to the power b
Math.random() // pseudorandom number in the range 0 to 1
Math.round(a) // integer closest to a
Math.sin(a) // sine of a
Math.sqrt(a) // square root of a
Math.tan(a) // tangent of a
Note that trigonometric functions assume that the argument is in radians, not degrees!
另外推荐一个绝佳的JavaScript doc地址 : http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference然后继续编码,发现刚才的思路已经没有了,极度郁闷!所以找一种把这些基础熟记于心的方法非常重要,最重要是不要那么容易忘记。
记得大学时候一次偶尔去E文系MM的寝室
,发现MM床头、床边贴满了纸条,上面写满了密密麻麻的E文。当时问MM,有必要这样吗?MM说绝对是学习E文这种靠死记硬背并且不能忘记东西的好方法。当时对E文极度排斥,所以并没在意。现在想多么好的一个方法从身边溜走了,我觉得放在学习编程中的基础知识同样适用,并且效果更好!因为各种基础知识,API还有些相互关联和有一定规律,你可以把它们打印出来贴在床头或者抬眼可即的地方,经常不经意的扫描不仅可以加深记忆说不定那天还能悟出其中的精妙呢?
推荐象Java基础API、JavaScript API doc、一些流行库如prototye、jquery等的API都可以拿来贴在床边,编码时遇到可以快速查阅,平时没事可以经常扫描。保证你不再害怕面试时的基础题,不再怕被这些API打断了!
掌握好的学习方法往往事半功倍,所以强烈建议大家平时可以总结一些好的学习方法和技巧,最好与他人交流分享。会让你的学习轻松而快乐,并且效果好!
posted on 2007-03-26 22:34
cresposhi 阅读(2586)
评论(18) 编辑 收藏