说说掌握JavaScript语言的思想前提想学习js的朋友可以看看


Posted in Javascript onApril 01, 2009

潜意识里也就不会用面向对象的思想去编写JavaScript代码,也很少会去深入了解prototype, closures等概念。这导致书写的代码经常很糟糕。 

       对于JavaScript的学习,可能最重要的还是要从思想上认识到JavaScript不是玩具语言。JavaScript的作用远不止增加点表单验证,我们可以看看GMail、看看Google Maps,如果开发者们没有对JavaScript足够尊敬,是不大可能写出如此优秀的Web应用的。 

       JavaScript门槛很低,但门槛低并不意味着容易掌握。一定程度上,JavaScript的入门容易以及其极大的灵活性,使得要掌握 JavaScript变得很难。从纯语言上讲,我个人的经验是,学习 JavaScript比学习Java更具挑战性。我们大多习惯了传统的面向对象表述方式,一定程度上甚至会认为类、封装、继承等概念都得像Java、 C++那样,可能都从来没想过没有class, extend, override等概念也能面向对象。JavaScript的面向对象打破了这种思想上的禁锢:世界是多样性的,条条大路通罗马。夸张一点说,深入学习 JavaScript,更多的是一种思想上的挑战,能活跃思路,扩大视野,甚至改变对世界的看法。 

       上面所说的这些,无意于夸大JavaScript的作用和难度。每个人都或多或少的会强调自己所学的知识,但在这里,我希望自己能很客观的传递一个观点:无论什么语言,想要精通,都很不容易;如果想学习某门语言,就得从思想上尊敬这门语言,在尊敬的基础上去学习,才有可能掌握这门语言的精髓。除了JavaScript,再举个HTML的例子: 

       经常能听到这样的话:HTML多容易,花个一两天也就会了。我自己也曾这么认为。但随着使用HTML经验的增长,慢慢感觉到, 对于Web前端开发来说,HTML可以说是最难的。HTML4.01规范中的91个元素就如汉字里的2500个常用字一样,我们读完小学后对常用字应该就都认识了,但要用汉字写篇优秀的文章,却并不容易。HTML也是这样,大部分宣称HTML很容易的开发者,往往只停留在认识body, p, form, table, div, ul等标签上,对于dl, legend, sub, caption等并非生僻的标签甚至都不认识。在常用字还认不全的情况下,宣称HTML很容易,真的很狂妄。(HTML的难度在于如何利用标签构建出结构 良好且富含语义的代码,就如写作文一样,不能认为认识几个字就自信能妙笔生花。) 

       总之,语言无贵贱难易,要从思想上尊敬重视一门语言,才有可能驾驭它,否则,将永远游离在专业程序员的宝殿之外。

Javascript 相关文章推荐
jQuery的一些特性和用法整理小结
Jan 13 Javascript
jQuery获取浏览器中的分辨率实现代码
Apr 23 Javascript
JavaScript自动设置IFrame高度的小例子
Jun 08 Javascript
jquery增加时编辑jqGrid(实例代码)
Nov 08 Javascript
js触发select onchange事件的小技巧
Aug 05 Javascript
使用javascript实现雪花飘落的效果
Jan 13 Javascript
JS数组去重(4种方法)
Mar 27 Javascript
JS数组求和的常用方法总结【5种方法】
Jan 14 Javascript
微信小程序JS加载esmap地图的实例详解
Sep 04 Javascript
微信小程序页面滚动到指定位置代码实例
Sep 07 Javascript
微信小程序scroll-view隐藏滚动条的方法详解
Mar 25 Javascript
js实现tab栏切换效果
Aug 02 Javascript
setTimeout 不断吐食CPU的问题分析
Apr 01 #Javascript
js Flash插入函数免激活代码
Mar 31 #Javascript
响应鼠标变换表格背景或者颜色的代码
Mar 30 #Javascript
用JavaScript实现单继承和多继承的简单方法
Mar 29 #Javascript
javascript 极速 隐藏/显示万行表格列只需 60毫秒
Mar 28 #Javascript
一个tab标签切换效果代码
Mar 27 #Javascript
js onpropertychange输入框 事件获取属性
Mar 26 #Javascript
You might like
php设计模式 Factory(工厂模式)
2011/06/26 PHP
php设计模式 Delegation(委托模式)
2011/06/26 PHP
详解php比较操作符的安全问题
2015/12/03 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
Laravel统一错误处理为JSON的方法介绍
2020/10/18 PHP
javascript获取鼠标点击元素对象(示例代码)
2013/12/20 Javascript
javascript如何写热点图
2015/12/08 Javascript
浅谈jQuery中的checkbox问题
2016/08/10 Javascript
AngularJS实现根据变量改变动态加载模板的方法
2016/11/04 Javascript
javascript防篡改对象实例详解
2017/04/10 Javascript
JS实现队列的先进先出功能示例
2017/05/10 Javascript
Vue CLI3 如何支持less的方法示例
2018/08/29 Javascript
微信小程序全局变量改变监听的实现方法
2019/07/15 Javascript
基于vue 实现表单中password输入的显示与隐藏功能
2019/07/19 Javascript
Vue+Node服务器查询Mongo数据库及页面数据传递操作实例分析
2019/12/20 Javascript
vue实现的封装全局filter并统一管理操作示例
2020/02/02 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
解决vue-router 嵌套路由没反应的问题
2020/09/22 Javascript
[03:03]DOTA2校园争霸赛 济南城市决赛欢乐发奖活动
2013/10/21 DOTA
python socket网络编程步骤详解(socket套接字使用)
2013/12/06 Python
Python Web开发模板引擎优缺点总结
2014/05/06 Python
Python THREADING模块中的JOIN()方法深入理解
2015/02/18 Python
Python基础教程之正则表达式基本语法以及re模块
2016/03/25 Python
Pycharm简单使用教程(入门小结)
2019/07/04 Python
PyQt5实现登录页面
2020/05/30 Python
css3 pointer-events 介绍详解
2017/09/18 HTML / CSS
什么是索引指示器
2012/08/20 面试题
介绍一下UNIX启动过程
2013/11/14 面试题
政法大学毕业生自荐信范文
2014/01/01 职场文书
公司年会晚宴演讲稿
2014/01/06 职场文书
金融专业大学生自我评价
2014/01/09 职场文书
三分钟演讲稿事例
2014/03/03 职场文书
社会实践活动报告
2015/02/05 职场文书
党员年度个人总结
2015/02/14 职场文书
不同意离婚代理词
2015/05/23 职场文书
vue项目中的支付功能实现(微信支付和支付宝支付)
2022/02/18 Vue.js