说说掌握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 相关文章推荐
仿猪八戒网左下角的文字滚动效果
Oct 28 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
May 07 Javascript
一个简单的弹性返回顶部JS代码实现介绍
Jun 09 Javascript
JSuggest自动匹配下拉框使用方法(示例代码)
Dec 27 Javascript
php读取sqlite数据库入门实例代码
Jun 25 Javascript
一个小例子解释如何来阻止Jquery事件冒泡
Jul 17 Javascript
基于jquery实现等比缩放图片
Dec 03 Javascript
JScript实现地址选择功能
Aug 15 Javascript
vue-router之nuxt动态路由设置的两种方法小结
Sep 26 Javascript
微信小程序实现点击图片旋转180度并且弹出下拉列表
Nov 27 Javascript
原生js实现点击按钮复制内容到剪切板
Nov 19 Javascript
javascript前端实现多视频上传
Dec 13 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
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
基于MySQL分区性能的详细介绍
2013/05/02 PHP
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
js不是基础的基础
2006/12/24 Javascript
javascript  Error 对象 错误处理
2008/05/18 Javascript
Prototype中dom对象方法汇总
2008/09/17 Javascript
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
2011/03/25 Javascript
JS localStorage实现本地缓存的方法
2013/06/22 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
2013/10/17 Javascript
js自动查找select下拉的菜单并选择(示例代码)
2014/02/26 Javascript
javascript常见操作汇总
2014/09/03 Javascript
JavaScript弹出对话框的三种方式
2016/03/23 Javascript
javascript三种代码注释方法
2016/06/02 Javascript
Javascript基于jQuery UI实现选中区域拖拽效果
2016/11/25 Javascript
新闻上下滚动jquery 超简洁(必看篇)
2017/01/21 Javascript
jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
2017/03/04 Javascript
Vue 过渡实现轮播图效果
2017/03/27 Javascript
微信小程序模版渲染详解
2018/01/26 Javascript
如何在JavaScript中优雅的提取循环内数据详解
2019/03/04 Javascript
微信小程序 行的删除和增加操作实现详解
2019/09/29 Javascript
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
[48:32]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python基本语法经典教程
2016/03/11 Python
python学习 流程控制语句详解
2016/06/01 Python
matplotlib.pyplot画图 图片的二进制流的获取方法
2018/05/24 Python
python+opencv+caffe+摄像头做目标检测的实例代码
2018/08/03 Python
python 求1-100之间的奇数或者偶数之和的实例
2019/06/11 Python
Django之使用内置函数和celery发邮件的方法示例
2019/09/16 Python
Python安装与卸载流程详细步骤(图解)
2020/02/20 Python
python编写扎金花小程序的实例代码
2021/02/23 Python
手机端用rem+scss做适配的详解
2017/11/15 HTML / CSS
法律专业应届生自荐信范文
2014/01/06 职场文书
给老婆的搞笑检讨书
2014/01/12 职场文书
党员思想汇报材料
2014/12/19 职场文书
Spring中bean的生命周期之getSingleton方法
2021/06/30 Java/Android
MySQL里面的子查询的基本使用
2021/08/02 MySQL