袁来如此的工作笔记
袁来如此的工作笔记
竹杖芒鞋轻胜马,谁怕? 一蓑烟雨任平生。

JavaScript学习总结

浏览量:951

由于以前JavaScript用的比较的少,所以对JavaScript的认识非常的肤浅,这周看了蛮多关于javascript的书和文档,对JavaScript终于有了一些初步的认识,总结一下,希望懂JavaScript的高手多多指点。 

 

1、JavaScript可以作为单独的文件存在但也必须通过在HTML 文档中调用才能起作用,它和大多数脚本语言一样在浏览器中是解释执行。其实JavaScript只要一个txt文本就可以编程了,没不像Java那样需要特定的环境 

 

2、“对象本无根,类型亦无形。本来无一物,何处惹尘埃?”这是我看的一部武功秘籍 里面的一句话,但是它确实讲到了JavaScript的精髓。。JavaScript 就是把数据和代码都简化到最原始的程度看看下面一段有趣的代码: 

 

var anObject = {}; //一个对象 
anObject.aProperty = "Property of object"; //对象的一个属性 
anObject.aMethod = function(){alert("Method of object")}; //对象的一个方法 
 
//主要看下面: 
alert(anObject["aProperty"]); //可以将对象当数组以属性名作为下标来访问属性 
anObject["aMethod"](); //可以将对象当数组以方法名作为下标来调用方法 
for( var s in anObject) //遍历对象的所有属性和方法进行迭代化处理 
alert(s + " is a " + typeof(anObject[s])); 
 
同样对于 function 类型的对象也是一样: 
var aFunction = function(){}; //一个函数 
aFunction.aProperty = "Property of function"; //函数的一个属性 
aFunction.aMethod = function(){alert("Method of function")}; //函数的一个方法 
 
//主要看下面: 
alert(aFunction["aProperty"]); //可以将函数当数组以属性名作为下标来访问属性 
aFunction["aMethod"](); //可以将函数当数组以方法名作为下标来调用方法 
for( var s in aFunction) //遍历函数的所有属性和方法进行迭代化处理 
alert(s + " is a " + typeof(aFunction[s]));,看看下面一段有趣的代码

 

是的,对象和函数可以象数组一样,用属性名或方法名作为下标来访问并处理。那么,它到底应该算是数组呢,还是算对象?哈哈“对象本无根,类型亦无形”无论对象还是函数,还是类,大家最原始的都一样 

 

3、再就是this了,JavaScript的this和Java的this可不是同一个东西哦,在 JavaScript 函数中,你只能把this 看成当前要服务的“这个”对象。this 是一个特殊的内置参数,根据this 参数,您可以访问到“这个”对象的属性和方法,但却不能给this 参数赋值。在一般对象语言中,方法体代码中的 this 可以省略的,成员默认都首先是“自己” 的。但JavaScript 却不同,由于不存在“自我”,当访问“这个”对象时,this 不可省略! 

 

for example : 
   function WhoAmI() //定义一个函数WhoAmI 
{ 
alert("I'm " + this.name + " of " + typeof(this)); 
}; 
 
WhoAmI(); //此时是this 当前这段代码的全局对象,在浏览器中就是window 对象,其name 属性为空字符串。 
输出:I'm of object 
 
var BillGates = {name: "Bill Gates"}; 
BillGates.WhoAmI = WhoAmI; //将函数WhoAmI 作为BillGates 的方法。 
BillGates.WhoAmI(); //此时的this 是BillGates。输出:I'm Bill Gates of object 
var SteveJobs = {name: "Steve Jobs"}; 
SteveJobs.WhoAmI = WhoAmI; //将函数WhoAmI 作为SteveJobs 的方法。 
SteveJobs.WhoAmI(); //此时的this 是SteveJobs。输出:I'm Steve Jobs of object 
WhoAmI.call(BillGates); //直接将BillGates 作为this,调用WhoAmI。输出:I'm Bill Gates of object 
WhoAmI.call(SteveJobs); //直接将SteveJobs 作为this,调用WhoAmI。输出:I'm Steve Jobs of object

 

4、JavaScript 执行引擎并非一行一行地分析和执行程序,而是一段一段(一(<script></script>为一段))地分析执行 

for example: 
function myfunc () 
{ 
alert("hello"); 
}; 
myfunc(); //这里调用myfunc,输出yeah 而不是hello 
function myfunc () 
{ 
alert("yeah"); 
}; 
myfunc(); //这里调用myfunc,当然输出yeah

 

,在第一次调用myfunc 之前,第一个函数语句定义的代码逻辑,已被第二个函数定义语句覆盖了。所以,两次都调用都是执行最后一个函数逻辑 好了就到这里了,以后学到更多再编辑吧  


打赏