重识JavaScript
来源:互联网 发布:一搜同志个人网络东北 编辑:程序博客网 时间:2024/06/12 19:05
一、开篇:解释为什么叫重新认识JavaScript?
纯属个人学习误区,缘起大学期间的迷茫和对就业的恐慌,曾误打误撞投入了Java的怀抱,并以此来谋生,对Java的崇拜犹如朝圣者对佛祖的虔诚一样,导致对其他技术不屑唯Java独尊的心态,带来现在对JavaScript理解和认识上的态度不够好,所以现在有必要对这方面的知识进行整理,知识可能不够系统,结合当前的开发经验想到哪写哪,对技术之外的话题不会有太多的扯淡,一切为了更好更快的掌握JavaScript这门技术。
二、Java和JavaScript之间有什么联系?
没有什么联系,字面上都有Java,二者的区别可以说是有天壤之别。
区别1:Java是静态语言,源代码需要编译器先编译成class字节码后才能运行;JavaScript是动态语言,代码通过浏览器提供的JavaScript引擎边解释边执行;
区别2:Java是真正面向对象的语言,即使最简单的程序也要设计对象;JavaScript是基于对象和事件驱动的编程语言;
区别3:在Java世界中万事万物皆对象(Object),所以“类”是Java世界的最基础也是最重要的一个角色;而JavaScript中最重要的角色是函数(function),和Java中的方法相似,但却又有很多比较“变态”的地方以下重点讨论。
三、重点学习什么,忽略什么?
变量定义、流程控制、运算符之类的就没有必要再详细学习了,和Java中类似。
四、定义函数的三种方式
JavaScript中的函数永远是独立存在的,即使函数被定义在一个类中,它也是独立存在的。函数定义的方法有三,
第一种:
function 函数名 (p1, p2) {//函数体}这种方式比较常见,易于理解。
第二种:
function (p1, p2) {// 函数体}这种是匿名函数,也比较常见,初次不太好理解,据说Java8也要支持匿名函数了,hoho~~,看来这种方式也比较重要。
第三种:
new Function(p1, p2, ……pN, funBody) ;这种方式是通过Function的构造器创建的一个函数,p1到pN是新创建函数的形参列表,funBody是新创建函数的函数体,这种方式比较繁琐,不推荐使用。
五、调用函数的三种方式
第一种:调用者.函数名(参数列表);
第二种:函数名.call(调用者,参数列表);
第三种:函数名.apply(调用者, arguments);
六、函数的三种功能
第一种:
函数就当成一个函数来使用。
第二种:
函数当类来使用。定义一个函数,就产生了一个函数,一个类,为该类创建了一个构造器;因此,定义了一个JS函数,就产生了一个JS类,可以通过new的方式来调用它的构造器。
把函数当类使用时,函数里的变量可以分为:1、类变量(使用函数名作为前缀); 2、实例变量(使用this作为前缀); 3、局部变量(不使用前缀,或者使用var 来修饰);
第三种:
函数当成类的一个方法来使用。此时函数依然是独立存在的。
七、var的作用
JavaScript脚本都可以省略var。但是,某些时候我们要强调是新声明了一个变量,就必须使用var了。
用var 和不用var 的区别:
用var:表示声明一个新的变量。
不用var:如果上下文中该变量存在,直接用已有的变量;如果不存在,才声明一个新的变量。
八、this前缀的作用
当在函数里访问一个变量时;
如果使用this.前缀:
程序只搜索主调对象里是否包含该实例变量;如果不存在,当成undefined处理。
如果没有this.前缀:
A、 程序会先搜索当前函数中是否存在该局部变量;
B、如果A搜索不存在,程序会搜索主调对象中是否存在该实例变量;
C、如果B搜索还不存在,程序会先搜索主调对象所在的对象中是否存在,该实例变量,如果不存在,一直向上,直到window对象为止。
九、总结及注意事项
函数概念比较多,定义的方式比较变态,应该多练习,多写代码才能深入理解,另外,可以看下jQuery的源代码,或者其他开源JS框架的代码。
- 重识JavaScript
- 重识JavaScript
- 重识Javascript系列---BOM
- 重识JavaScript(一)
- 重识JavaScript(二)
- 重识JavaScript(三)
- 重识JavaScript(四)
- 重识JavaScript(七)
- 重识JavaScript(八)
- 重识JavaScript(九)
- 重识JavaScript(十)
- 重识Javascript系列---ECMAScript继承
- 重识Javascript系列---ECMAScript变量
- 重识Javascript系列---ECMAScript内置对象
- javascript 页面重定向
- 重构javascript
- JavaScript重定向
- 重拾javascript
- java_冒泡排序
- ubuntu deb包管理
- Poj 3233 Matrix Power Series
- Linux 挂载没启用的数据盘
- windows程序设计 例题解析 DEVCAPS1.C
- 重识JavaScript
- 传说中的WCF(9):流与文件传输
- HTML使用CSS的三种方式
- 最全的 Twitter Bootstrap 开发资源清单(转)
- TSM恢复时报错ANS1314E
- 好看html样式
- 波士顿闷热
- android左右滑动加载分页以及动态加载数据
- matlab在64位的机子上不能运行notebook解决方法