说说掌握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 相关文章推荐
js 鼠标点击事件及其它捕获
Jun 04 Javascript
javascript addBookmark 加入收藏 多浏览器兼容
Aug 15 Javascript
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
Sep 19 Javascript
jQuery提交多个表单的小例子
Jun 30 Javascript
JavaScript中的数组特性介绍
Dec 30 Javascript
手机图片预览插件photoswipe.js使用总结
Aug 25 Javascript
从零学习node.js之模块规范(一)
Feb 21 Javascript
原生js实现简单的链式操作
Jul 04 Javascript
浅谈Vue服务端渲染框架Nuxt的那些事
Dec 21 Javascript
详解小程序循环require之坑
Mar 08 Javascript
laydate只显示时分 不显示秒的功能实现方法
Sep 28 Javascript
vue在图片上传的时候压缩图片
Nov 18 Vue.js
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+DBM的同学录程序(5)
2006/10/09 PHP
Windows2003 下 MySQL 数据库每天自动备份
2006/12/21 PHP
PHP中Date()时间日期函数的使用方法小结
2011/04/20 PHP
PHP下使用CURL方式POST数据至API接口的代码
2013/02/14 PHP
详解PHP对象的串行化与反串行化
2016/01/24 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
求解开jscript.encode代码的asp函数
2007/02/28 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
2015/12/31 Javascript
JavaScript事件类型中焦点、鼠标和滚轮事件详解
2016/01/25 Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
2017/02/16 Javascript
jquery中关于bind()方法的使用技巧分享
2017/03/30 jQuery
AngularJS实现注册表单验证功能
2017/10/16 Javascript
解决循环中setTimeout执行顺序的问题
2018/06/20 Javascript
vue-cli3.0 环境变量与模式配置方法
2018/11/08 Javascript
JavaScript实现动态添加、移除元素或属性的方法分析
2019/01/03 Javascript
vue使用过滤器格式化日期
2021/01/20 Vue.js
python教程之用py2exe将PY文件转成EXE文件
2014/06/12 Python
python自然语言编码转换模块codecs介绍
2015/04/08 Python
Python实现一个简单的验证码程序
2017/11/03 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
Python爬虫之pandas基本安装与使用方法示例
2018/08/08 Python
python 杀死自身进程的实现方法
2019/07/01 Python
以设计师精品品质提供快速时尚:PopJulia
2018/01/09 全球购物
电子狗项圈:eDog Australia
2019/12/04 全球购物
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
2014/08/09 面试题
让生命充满爱演讲稿
2014/05/10 职场文书
化妆品活动策划方案
2014/05/23 职场文书
后勤管理员岗位职责
2014/08/27 职场文书
2014年预备党员群众路线教育实践活动对照检查材料思想汇报
2014/10/02 职场文书
大学生万能检讨书范例
2014/10/04 职场文书
2015年党员干部承诺书
2015/01/21 职场文书
挂靠协议书
2015/01/27 职场文书
离婚案件上诉状
2015/05/23 职场文书
五一晚会主持词
2015/07/01 职场文书
python 单机五子棋对战游戏
2022/04/28 Python