悟透JavaScript
- 格式:pdf
- 大小:368.24 KB
- 文档页数:25
JavaScript总结及心得JavaScript是一种用于网页开发的脚本语言,用于为网页添加交互性和动态性。
在使用JavaScript的过程中,我总结了一些重要的知识和心得。
首先,JavaScript是一种弱类型语言,这意味着变量的类型可以在运行时根据赋值而自动确定。
这使得JavaScript非常灵活,但也容易引发一些错误。
为了避免出现错误,我学会了使用严格模式('use strict'),它可以强制执行更严格的语法规则,提高代码的可靠性。
其次,JavaScript有许多内置的对象和方法,利用它们可以实现各种功能。
例如,使用数组对象可以轻松地处理和操作数据集合;使用字符串对象可以对文本进行处理和操作。
此外,JavaScript还提供了许多用于DOM操作(文档对象模型)的方法,可以动态地更新和修改网页的内容和结构。
另外,JavaScript支持事件驱动编程,这意味着可以通过监听和处理事件来响应用户的操作。
我发现,利用事件处理程序可以实现交互式的用户界面,并且可以通过事件委托来提高代码的效率。
只要理解了事件的冒泡和捕获机制,以及事件对象的属性和方法,就可以更好地处理和控制事件。
此外,JavaScript还支持面向对象编程(OOP),可以使用类和对象来组织和管理代码。
我喜欢使用构造函数和原型链来创建和继承对象,这样可以更好地组织和重用代码。
同时,JavaScript还支持闭包,可以利用闭包来实现私有变量和函数。
最后,对于效率和性能的考虑,我学会了一些优化技巧。
例如,减少代码的重复执行和不必要的计算,避免使用全局变量,合理使用缓存等。
此外,我也注意到了代码的可读性和可维护性的重要性,尽量使用易于理解和维护的命名规范和代码结构。
总的来说,JavaScript是一门非常强大和灵活的编程语言,可以在网页中实现丰富的交互效果和动态功能。
通过不断学习和实践,我相信自己可以不断提升JavaScript编程的能力和水平。
js实训心得体会JavaScript实训心得体会介绍:在我的大学学习生涯中,我有幸参加了一门关于JavaScript的实训课程。
在这门课程中,我不仅学到了许多有关JavaScript语言的知识和技巧,还体验到了编写实际项目的乐趣。
通过这门实训课,我深刻认识到了JavaScript的魅力和应用价值。
认识JavaScript:在实训课刚开始时,我对JavaScript的认识仅仅停留在简单的概念和语法层面上。
然而,通过实际的编程实践,我逐渐明白了JavaScript 的独特之处。
JavaScript是一种在浏览器端运行的脚本语言,它能够与HTML和CSS相互配合,实现丰富的交互效果。
它不仅可以让网页变得更加生动有趣,还可以提高用户体验,增强网站的功能性。
学习过程中的挑战:在实训课程中,我遇到了许多挑战。
首先,JavaScript语言的灵活性和复杂性使得我需要花费更多时间去理解和掌握。
其次,和其他编程语言不同,JavaScript具有较高的兼容性要求,需要在不同浏览器中进行测试和调试。
这个过程既繁琐又耗时。
此外,JavaScript的快速发展和更新,需要我不断跟进最新的技术和特性,以保持竞争力。
解决问题的思路:在面对问题和挑战时,我采取了一些应对策略,帮助我更好地解决问题。
首先,我学会了善于查阅官方文档和资料,从中获取到最新的语法和技巧。
其次,我积极参与在线社区和论坛,与其他开发者交流和讨论,从中获取到经验和帮助。
最后,我不断锻炼编程思维和解决问题的能力,通过不断实践和尝试,逐渐提升自己的编码水平。
实训项目的收获:通过实训项目的开展,我收获颇多。
首先,我深刻理解了代码的重构和优化的重要性。
在项目中,我经常需要对代码进行优化,以提高网页的性能和用户体验。
其次,我熟练掌握了JavaScript与HTML和CSS的配合使用,实现了多种交互效果和功能模块的开发。
这让我对Web开发产生了更深的兴趣和热情。
最后,通过实训项目,我提升了团队协作和沟通能力,学会了和其他开发人员合作,共同完成一个项目的开发和维护。
关于javascript的心得体会
javascript是一种的常见的网站客户端编程语言,它可以使网页更加丰富多彩,同时让交互效果更加地出色,相信很多人都有使用它来制作网页的经历。
学习javascript时,我发现了一些很有趣的事情:首先是其语法比其他语言更加的简洁,几行代码就可以轻松实现某个功能,节省了时间和空间;其次,它有很强的弹性特性,可以完美的兼容各种浏览器,让设计者们只需要写一次代码就能在所有浏览器上都可以正常的使用;最后,由于javascript的出现,网页上的交互体验得到了很大的提升,交互式体验变得更加出色,给网页设计师们带来了更多创作可能。
对于javascript,我想说:它在节省时间、解决兼容性等方面具有不可替代的作用,越是发展今天,在web前端开发领域,javascript的作用也越加显著;同时,javascript 也是一门持续进步的语言,在语言的发展和更新中,会引入更多的新特性使得javascript 的功能更加的强大,让设计师们可以利用它挖掘出更多强大的功能,更加简单的实现复杂的效果。
总之,javascript帮助我们创造出了更加精美的网页,也为web设计师们带来了巨大的重担,让我们可以更加清晰的看清用户的需求,更加优秀的实现网页设计和使用体验,具有不可替代的作用。
js学习心得
今天看了一下JavaScript,发现了好多与我第一次学习它时的
不同,这一次我看的时候突然发现,我不仅能看懂,更会用,这里我总结了一下几点:
1.编程时相通的,只要抓住一门语言,将他学的心神领会,这样再去其他类型的语言时,就会显得得心应手,就在这个周,我花了为数不多的时间去学习,起初感觉我可能要花费很大的功夫去慢慢研究,等我学的时候,我才发现,与java类似,甚至神似,基本基础部分
一个晚上就解决了,也可以动手去编写一些简单的测试程序,都是可以运行的。
2.英语水平要高。
毕竟编程语言基本都是外国人发明的,他们会;以自己比较熟悉的方式去开发自己熟悉的语言,就比如click,就目前我遇到的所有语言,只要是涉及到事件的都会出现这个单词;比如这个,如果我不明白他的意思我就记住他会很麻烦,但是如果我先将他翻译一遍的话,意思就会变得很好理解。
3.对准一门语言多去练习。
再学习JavaScript的时候,我发现
我会不自觉的想一个问题,如何输入,如何输出,如何定义变量,如何使用函数,如何获取函数的返回值,如何使用数组等等。
当我在学完Java后,我发现我对待其他语言总是可以显现的得
心应手,这让我想起,为什么在大二上学期,别人可以那么快速的掌握java,起初我认为我没有别人聪明,知道现在,我才明白,他们
只不过是比我在大一的时候更早的去掌握了一门语言,所以在学习的
时候会比我快,在发现这一点后,我知道了一个道理,在人生的起点,每个人都一样,只是,每个人在他该做一些东西的年纪没有做,而有的人做了,区别也就产生了。
js的心得体会800字Js的心得体会JavaScript(简称JS)是一种用于网页开发的脚本语言,它可以使网页实现各种动态效果和交互功能。
在过去的一段时间里,我一直在学习和使用JavaScript,并积累了一些心得体会。
在这篇文章中,我将分享我对JavaScript的理解和体会。
1. JavaScript的灵活性和强大功能JavaScript作为一种脚本语言,具有很高的灵活性,可以在网页中嵌入代码,实现各种动态效果。
通过JavaScript,我可以轻松地操作HTML元素,改变它们的样式、内容和结构。
此外,JavaScript还可以与用户进行交互,捕捉用户的操作事件,例如鼠标点击、滚动、键盘输入等。
这使得我可以创建更具吸引力和互动性的网页。
2. JavaScript的跨平台特性JavaScript是一种跨平台的脚本语言,可以在不同的操作系统和浏览器上运行。
这意味着我可以使用相同的代码在不同设备上实现相同的功能,而不必担心兼容性问题。
这种跨平台的特性为网页开发者提供了更大的便利,减少了开发和维护的工作量。
3. JavaScript与HTML、CSS的结合JavaScript与HTML和CSS是密不可分的,它们三者共同构成了现代网页的基础。
通过JavaScript,我可以直接操作HTML元素,改变它们的属性和样式;同时,也可以通过JavaScript动态地创建、删除、修改HTML元素,使网页内容更加丰富和多样化。
在CSS方面,JavaScript还可以控制样式表的属性,实现动态修改页面风格的效果。
4. JavaScript的编程思维学习JavaScript让我更深入地理解了编程思维和逻辑思维。
在编写JavaScript代码的过程中,我学会了分析和解决问题的能力,提高了自己的逻辑思维水平。
对于初学者来说,JavaScript是一个很好的入门语言,它相对简单易学,但又具有一定的编程范式和思维模式。
5. JavaScript社区的活跃和资源丰富JavaScript拥有一个活跃的开发者社区,这意味着我可以很容易地找到解决问题的方案和资源。
学javascript的心得体会总结随着互联网技术的不断发展,JavaScript作为一种客户端脚本语言受到了越来越多的关注和重视。
而作为一种功能强大的编程语言,JavaScript有着无可替代的重要地位,更是当今“互联网+”时代的核心语言之一。
因此,学习JavaScript也越来越受到广大程序员的青睐。
作为一个初学者,学习JavaScript其实是一件比较艰辛的事情。
尤其是那些没有基础的用户,更是需要一段时间来入门。
但随着经验的积累,学习JavaScript的难度也就小了很多。
当我开始学习JavaScript的时候,第一步当然是去学习一些语法的知识,这样的基础知识可以帮助我们更快更好的理解JavaScript 的一些机制,比如变量,循环,条件判断等等。
另外在学习JavaScript 的过程中,了解一些DOM操作机制也是非常有必要的。
在大致掌握了JavaScript的基础知识后,就可以开始编写一些实际的代码了。
这一步会让你对JavaScript有一个更加全面的认识,当然也可以在实战中学习一些实用的技术,比如Ajax,JSON,JSONP,JQuery,React等等。
除了学习技术上的东西外,学习JavaScript也要多方面拓展你的学习维度,比如拓展视野,了解最新的前端技术发展动态。
这样才能更好的提高学习效率,才能更全面的掌握JavaScript。
学习JavaScript最重要的还是要保持持续学习,不断的探索,实践,进步。
一路上你也会经历一些艰辛,但只要有心,奋斗不息,最终你也会成为一名出色的JavaScript程序员。
无论是在学习的过程中还是在开发的实践中,只要你能够积极向上,把握住每一个细节,你就能够更好的提高自己,早日成为一名优秀的前端工程师。
javascript总结及心得JavaScript是一种广泛应用于Web开发的脚本语言,它的诞生使得网页的交互性能得到了很大的提升。
作为一名Web开发者,我在使用JavaScript这门语言的过程中积累了一些心得体会,下面我将总结和分享一下。
首先,JavaScript作为一门动态编程语言,它的灵活性给程序员带来了很大的便利。
相比于其他的编程语言,JavaScript不需要进行类型声明,变量的类型可以根据值的类型自动判断。
这大大减少了代码编写的复杂度,提高了开发效率。
其次,JavaScript的事件驱动机制使得网页可以实现丰富的交互效果。
通过监听各种事件,我们可以对用户的操作做出及时的响应。
例如,当用户点击一个按钮时,我们可以通过JavaScript控制页面跳转、显示隐藏元素、提交表单等。
事件驱动使得网页具有了更多的交互性,使得用户体验得到了极大的提升。
另外,JavaScript还拥有强大的DOM操作能力。
DOM(文档对象模型)是一种用于表示和处理HTML和XML文档的API。
通过JavaScript,我们可以轻松地对DOM进行增删改查的操作。
这使得我们能够动态地改变页面的结构和样式,实现更加复杂和灵活的效果。
在JavaScript中,函数是一等公民。
这意味着我们可以将函数赋值给变量,作为参数传递给其他函数,或者作为函数的返回值。
这种特性使得JavaScript可以实现函数式编程的思想。
函数式编程强调使用纯函数进行开发,这些纯函数不会改变外部状态,可以提供更好的可测试性和可维护性。
另外,JavaScript还支持面向对象编程。
尽管JavaScript不是一门面向对象的语言,但它提供了一些与面向对象编程相关的特性。
我们可以使用构造函数和原型链来创建和继承对象。
这种对象的创建和继承方式可能与其他面向对象编程语言不太相同,但也具有一定的灵活性。
JavaScript的生态系统非常丰富,有众多优秀的第三方库和框架可供使用。
学生js心得体会简短javascript的心得体会【通用5篇】鉴于安全性的需要,该对象收到很多限制,现在只剩下下列属性和方法。
History历史对象有length这个属性,列出历史的项数。
JavaScript 所能管到的历史被限制在用浏览器的“前进”“后退”键可以去到的范围。
本属性返回的是“前进”和“后退”两个按键之下包含的地址数的'和。
读书破万卷下笔如有神,下面为您精心整理了5篇《学生js心得体会简短javascript 的心得体会》,我们不妨阅读一下,看看是否能有一点抛砖引玉的作用。
最新学生js心得体会简短篇一在短短的两周里通过参观电厂、跟班学习,我了解到了:(1)电厂在国民经济中的地位和作用;(2)电厂生产过程;(3)电厂安全规程;(4)电厂现代管理;(5)电厂化学在电厂的作用和意义;(6)电厂在环境保护方面的工作;(7)电厂的总体布置;(8)主要设备的结构、特点、型号、厂家、参数等;(9)电厂生产过程控制方法;(10)电厂水系统流程。
水的预处理、水的去离子水、水汽循环、冷却水循环与处理;(11)电厂燃料;(12)电厂物料平衡。
收集工厂的生产现场数据,对原料消耗量及产物量作简易的估算,了解对生产过程和设备作物料、能量横算的重要性和必须具备的基本知识;(13)环保设备,如脱硫、废水处理、固体废弃物利用等。
通过这一次的实习,自己也学到了许多原先在课本上学不到的东西,而且可以使自己更进一步接近社会,体会到市场跳动的脉搏,在市场的竞争受市场竞争规则的约束,从采购、生产到销售都与市场有着千丝万缕的联系,如何规避风险,如何开拓市场,如何保证企业的生存发展,这一切的一切都是那么的现实。
于是理性的判断就显得重要了。
在企业的实习过程中,我发现了自己看问题的角度,思考问题的方式也逐渐开拓,这与实践密不可分,在实践过程中,我又一次感受充实,感受成长。
我还了解了变电所电气设备的构成、了解配电装置的布置形式及特点,并了解安全净距的意义。
悟透JavaScript又名《JavaScript真经》原著:李战(leadzen)引子编程世界里只存在两种基本元素,一个是数据,一个是代码。
编程世界就是在数据和代码千丝万缕的纠缠中呈现出无限的生机和活力。
数据天生就是文静的,总想保持自己固有的本色;而代码却天生活泼,总想改变这个世界。
你看,数据代码间的关系与物质能量间的关系有着惊人的相似。
数据也是有惯性的,如果没有代码来施加外力,她总保持自己原来的状态。
而代码就象能量,他存在的唯一目的,就是要努力改变数据原来的状态。
在代码改变数据的同时,也会因为数据的抗拒而反过来影响或改变代码原有的趋势。
甚至在某些情况下,数据可以转变为代码,而代码却又有可能被转变为数据,或许还存在一个类似E=MC2形式的数码转换方程呢。
然而,就是在数据和代码间这种即矛盾又统一的运转中,总能体现出计算机世界的规律,这些规律正是我们编写的程序逻辑。
不过,由于不同程序员有着不同的世界观,这些数据和代码看起来也就不尽相同。
于是,不同世界观的程序员们运用各自的方法论,推动着编程世界的进化和发展。
众所周知,当今最流行的编程思想莫过于面向对象编程的思想。
为什么面向对象的思想能迅速风靡编程世界呢?因为面向对象的思想首次把数据和代码结合成统一体,并以一个简单的对象概念呈现给编程者。
这一下子就将原来那些杂乱的算法与子程序,以及纠缠不清的复杂数据结构,划分成清晰而有序的对象结构,从而理清了数据与代码在我们心中那团乱麻般的结。
我们又可以有一个更清晰的思维,在另一个思想高度上去探索更加浩瀚的编程世界了。
在五祖弘忍讲授完《对象真经》之后的一天,他对众弟子们说:“经已讲完,想必尔等应该有所感悟,请各自写个偈子来看”。
大弟子神秀是被大家公认为悟性最高的师兄,他的偈子写道:“身是对象树,心如类般明。
朝朝勤拂拭,莫让惹尘埃!”。
此偈一出,立即引起师兄弟们的轰动,大家都说写得太好了。
只有火头僧慧能看后,轻轻地叹了口气,又随手在墙上写道:“对象本无根,类型亦无形。
javascript实训心得(经典版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的经典范文,如演讲致辞、总结报告、心得体会、合同协议、条据文书、规章制度、自我介绍、策划方案、职业规划、其他范文等等,想了解不同范文格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, our store provides various types of classic sample texts for everyone, such as speeches, summary reports, insights, contract agreements, policy documents, rules and regulations, self introduction, planning plans, career planning, and other sample texts. If you want to learn about different formats and writing methods of sample texts, please stay tuned!javascript实训心得javascript实训心得优秀8篇学习者需要熟悉 JavaScript 语言的基本语法和常用函数,掌握事件处理和 DOM 操作的技巧,注重代码的可读性和可维护性,以提高 JavaScript 代码的质量和效率。
引子编程世界里只存在两种基本元素,一个是数据,一个是代码。
编程世界就是在数据和代码千丝万缕的纠缠中呈现出无限的生机和活力。
数据天生就是文静的,总想保持自己固有的本色;而代码却天生活泼,总想改变这个世界。
你看,数据代码间的关系与物质能量间的关系有着惊人的相似。
数据也是有惯性的,如果没有代码来施加外力,她总保持自己原来的状态。
而代码就象能量,他存在的唯一目的,就是要努力改变数据原来的状态。
在代码改变数据的同时,也会因为数据的抗拒而反过来影响或改变代码原有的趋势。
甚至在某些情况下,数据可以转变为代码,而代码却又有可能被转变为数据,或许还存在一个类似E=MC2形式的数码转换方程呢。
然而,就是在数据和代码间这种即矛盾又统一的运转中,总能体现出计算机世界的规律,这些规律正是我们编写的程序逻辑。
不过,由于不同程序员有着不同的世界观,这些数据和代码看起来也就不尽相同。
于是,不同世界观的程序员们运用各自的方法论,推动着编程世界的进化和发展。
众所周知,当今最流行的编程思想莫过于面向对象编程的思想。
为什么面向对象的思想能迅速风靡编程世界呢?因为面向对象的思想首次把数据和代码结合成统一体,并以一个简单的对象概念呈现给编程者。
这一下子就将原来那些杂乱的算法与子程序,以及纠缠不清的复杂数据结构,划分成清晰而有序的对象结构,从而理清了数据与代码在我们心中那团乱麻般的结。
我们又可以有一个更清晰的思维,在另一个思想高度上去探索更加浩瀚的编程世界了。
在五祖弘忍讲授完《对象真经》之后的一天,他对众弟子们说:“经已讲完,想必尔等应该有所感悟,请各自写个偈子来看”。
大弟子神秀是被大家公认为悟性最高的师兄,他的偈子写道:“身是对象树,心如类般明。
朝朝勤拂拭,莫让惹尘埃!”。
此偈一出,立即引起师兄弟们的轰动,大家都说写得太好了。
只有火头僧慧能看后,轻轻地叹了口气,又随手在墙上写道:“对象本无根,类型亦无形。
本来无一物,何处惹尘埃?”。
然后摇了摇头,扬长而去。
大家看了慧能的偈子都说:“写的什么乱七八糟的啊,看不懂”。
师父弘忍看了神秀的诗偈也点头称赞,再看慧能的诗偈之后默然摇头。
就在当天夜里,弘忍却悄悄把慧能叫到自己的禅房,将珍藏多年的软件真经传授于他,然后让他趁着月色连夜逃走...后来,慧能果然不负师父厚望,在南方开创了禅宗另一个广阔的天空。
而慧能当年带走的软件真经中就有一本是《JavaScript真经》!回归简单要理解JavaScript,你得首先放下对象和类的概念,回到数据和代码的本原。
前面说过,编程世界只有数据和代码两种基本元素,而这两种元素又有着纠缠不清的关系。
JavaScript 就是把数据和代码都简化到最原始的程度。
JavaScript中的数据很简洁的。
简单数据只有 undefined, null, boolean, number和string这五种,而复杂数据只有一种,即object。
这就好比中国古典的朴素唯物思想,把世界最基本的元素归为金木水火土,其他复杂的物质都是由这五种基本元素组成。
JavaScript中的代码只体现为一种形式,就是function。
注意:以上单词都是小写的,不要和Number, String, Object, Function等JavaScript 内置函数混淆了。
要知道,JavaScript语言是区分大小写的呀!任何一个JavaScript的标识、常量、变量和参数都只是unfined, null, bool, number, s tring, object 和 function类型中的一种,也就typeof返回值表明的类型。
除此之外没有其他类型了。
先说说简单数据类型吧。
undefined: 代表一切未知的事物,啥都没有,无法想象,代码也就更无法去处理了。
注意:typeof(undefined) 返回也是 undefined。
可以将undefined赋值给任何变量或属性,但并不意味了清除了该变量,反而会因此多了一个属性。
null: 有那么一个概念,但没有东西。
无中似有,有中还无。
虽难以想象,但已经可以用代码来处理了。
注意:typeof(null)返回object,但null并非object,具有null值的变量也并非object。
boolean: 是就是,非就非,没有疑义。
对就对,错就错,绝对明确。
既能被代码处理,也可以控制代码的流程。
number: 线性的事物,大小和次序分明,多而不乱。
便于代码进行批量处理,也控制代码的迭代和循环等。
注意:typeof(NaN)和typeof(Infinity)都返回number 。
NaN参与任何数值计算的结构都是NaN,而且 NaN != NaN 。
Infinity / Infinity = NaN 。
string: 面向人类的理性事物,而不是机器信号。
人机信息沟通,代码据此理解人的意图等等,都靠它了。
简单类型都不是对象,JavaScript没有将对象化的能力赋予这些简单类型。
直接被赋予简单类型常量值的标识符、变量和参数都不是一个对象。
所谓“对象化”,就是可以将数据和代码组织成复杂结构的能力。
JavaScript中只有object 类型和function类型提供了对象化的能力。
没有类object就是对象的类型。
在JavaScript中不管多么复杂的数据和代码,都可以组织成obj ect形式的对象。
但JavaScript却没有 “类”的概念!对于许多面向对象的程序员来说,这恐怕是JavaScript中最难以理解的地方。
是啊,几乎任何讲面向对象的书中,第一个要讲的就是“类”的概念,这可是面向对象的支柱。
这突然没有了“类”,我们就象一下子没了精神支柱,感到六神无主。
看来,要放下对象和类,达到“对象本无根,类型亦无形”的境界确实是件不容易的事情啊。
这样,我们先来看一段JavaScript程序:var life = {};for(life.age = 1; life.age <= 3; life.age++){switch(life.age){case 1: life.body = "卵细胞";life.say = function(){alert(this.age+this.body)};break;case 2: life.tail = "尾巴";life.gill = "腮";life.body = "蝌蚪";life.say = function(){alert(this.age+this.body+"-"+this.tail+","+this. gill)};break;case 3: delete life.tail;delete life.gill;life.legs = "四条腿";life.lung = "肺";life.body = "青蛙";life.say = function(){alert(this.age+this.body+"-"+this.legs+","+this .lung)};break;};life.say();};这段JavaScript程序一开始产生了一个生命对象life,life诞生时只是一个光溜溜的对象,没有任何属性和方法。
在第一次生命过程中,它有了一个身体属性body,并有了一个say方法,看起来是一个“卵细胞”。
在第二次生命过程中,它又长出了“尾巴”和“腮”,有了tail和gil l属性,显然它是一个“蝌蚪”。
在第三次生命过程中,它的tail和gill属性消失了,但又长出了“四条腿”和“肺”,有了legs和lung属性,从而最终变成了“青蛙”。
如果,你的想像力丰富的话,或许还能让它变成英俊的“王子”,娶个美丽的“公主”什么的。
不过,在看完这段程序之后,请你思考一个问题:我们一定需要类吗?还记得儿时那个“小蝌蚪找妈妈”的童话吗?也许就在昨天晚,你的孩子刚好是在这个美丽的童话中进入梦乡的吧。
可爱的小蝌蚪也就是在其自身类型不断演化过程中,逐渐变成了和妈妈一样的“类”,从而找到了自己的妈妈。
这个童话故事中蕴含的编程哲理就是:对象的“类”是从无到有,又不断演化,最终又消失于无形之中的...“类”,的确可以帮助我们理解复杂的现实世界,这纷乱的现实世界也的确需要进行分类。
但如果我们的思想被“类”束缚住了,“类”也就变成了“累”。
想象一下,如果一个生命对象开始的时就被规定了固定的“类”,那么它还能演化吗?蝌蚪还能变成青蛙吗?还可以给孩子们讲小蝌蚪找妈妈的故事吗?所以,JavaScript中没有“类”,类已化于无形,与对象融为一体。
正是由于放下了“类”这个概念,JavaScript的对象才有了其他编程语言所没有的活力。
如果,此时你的内心深处开始有所感悟,那么你已经逐渐开始理解JavaScript的禅机了。
函数的魔力接下来,我们再讨论一下JavaScript函数的魔力吧。
JavaScript的代码就只有function一种形式,function就是函数的类型。
也许其他编程语言还有procedure或 method等代码概念,但在JavaScript里只有function一种形式。
当我们写下一个函数的时候,只不过是建立了一个function类型的实体而已。
请看下面的程序:function myfunc(){alert("hello");};alert(typeof(myfunc));这个代码运行之后可以看到typeof(myfunc)返回的是function。
以上的函数写法我们称之为“定义式”的,如果我们将其改写成下面的“变量式”的,就更容易理解了:var myfunc = function (){alert("hello");};alert(typeof(myfunc));这里明确定义了一个变量myfunc,它的初始值被赋予了一个function的实体。
因此,typ eof(myfunc)返回的也是function。
其实,这两种函数的写法是等价的,除了一点细微差别,其内部实现完全相同。
也就是说,我们写的这些JavaScript函数只是一个命了名的变量而已,其变量类型即为function,变量的值就是我们编写的函数代码体。
聪明的你或许立即会进一步的追问:既然函数只是变量,那么变量就可以被随意赋值并用到任意地方啰?我们来看看下面的代码:var myfunc = function (){alert("hello");};myfunc(); //第一次调用myfunc,输出hellomyfunc = function (){alert("yeah");};myfunc(); //第二次调用myfunc,将输出yeah这个程序运行的结果告诉我们:答案是肯定的!在第一次调用函数之后,函数变量又被赋予了新的函数代码体,使得第二次调用该函数时,出现了不同的输出。