要理解JavaScript,你得首先放下对象和类的概念,回到数据和代码的本原。前面说过,编程世界只有数据和代码两种基本元素,
而这两种元素又有着纠缠不清的关系。JavaScript 就是把数据和代码都简化到最原始的程度。
JavaScript 中的数据很简洁的。简单数据只有 undefined, null, boolean, number 和string 这五种,而复杂数据只有一种,即
object。这就好比中国古典的朴素唯物思想,把世界最基本的元素归为金木水火土,其他复杂的物质都是由这五种基本元素组成。
JavaScript 中的代码只体现为一种形式,就是function。
注意:以上单词都是小写的,不要和Number, String, Object, Function 等JavaScript 内置函数混淆了。要知道,JavaScript
语言是区分大小写的呀!
任何一个JavaScript 的标识、常量、变量和参数都只是unfined, null, bool, number, string, object 和 function 类型中的一
种,也就typeof 返回值表明的类型。除此之外没有其他类型了。
...
function myfunc ()
{
alert("hello");
};
myfunc(); //这里调用myfunc,输出yeah 而不是hello
function myfunc ()
{
alert("yeah");
};
myfunc(); //这里调用myfunc,当然输出yeah
按理说,两个签名完全相同的函数,在其他编程语言中应该是非法的。但在JavaScript 中,这没错。不过,程序运行之后却发现一
个奇怪的现象:两次调用都只是最后那个函数里输出的值!显然第一个函数没有起到任何作用。这又是为什么呢?
原来,JavaScript 执行引擎并非一行一行地分析和执行程序,而是一段一段地分析执行的。而且,在同一段程序的分析执行中,定
义式的函数语句会被提取出来优先执行。函数定义执行完之后,才会按顺序执行其他语句代码。也就是说,在第一次调用myfunc 之前,
第一个函数语句定义的代码逻辑,已被第二个函数定义语句覆盖了。所以,两次都调用都是执行最后一个函数逻辑了。
如果把这个JavaScript 代码分成两段,例如将它们写在一个html 中,并用标签将其分成这样的两块:
这时,输出才是各自按顺序来的,也证明了JavaScript 的确是一段段地执行的。
...
详细内容见附件
|
文件: |
悟透JavaScript.pdf |
大小: |
302KB |
下载: |
下载 | |
阅读(2346) | 评论(0) | 转发(0) |