<p>对比java中的相关知识点,我很容易操作java中的基本对象,javascript就不那么容易了,我在使用javascript的过程中遇见了这些问题:</p>
<ul>
<li>javascript用var初始化变量,并没有类型声明,因为javascript是弱类型语言,这种类型语言是要做类型推导的,java这种强类型语言就不需要。</li>
<li>如何声明一个数组</li>
<li>如何声明一个json对象</li>
<li>如何遍历一个数组</li>
<li>javascript中有list这种数据类型么,都有哪些数据类型</li>
<li>如何创建一个函数</li>
<li>匿名函数</li>
</ul>
<p>菜鸟教程真是不错,概念讲的清楚明白,除了闭包那点不是很清楚之外。回头在研究什么是闭包。先说说我从菜鸟教程中看到了什么?几乎我的问题都被解决了:</p>
<ul>
<li>javascript的数据类型还是有的,虽然语言是弱类型的,弱类型仅仅是说生命的时候没有声明类型,但不代表这在初始化的时候没有类型。</li>
<li>javascript有对象的概念,同样跟java一样最根本的对象是Object,还可以自定义对象,javascript语言本身就有的对象是,字符串,数字,日期,数组,函数,对函数本身也是对象</li>
<li>javascript中有值相等和绝对相等,绝对相等是指类型值相等并且类型一样,也就是typeof(object1)和typeof(object2),值相等比较使用==,绝对相等使用===</li>
<li>javascript的对象都是有键值对组成的,这点跟json十分的相似,只是json要求键也必须要是字符串。</li>
<li>有内建的方法进行javascript对象和json之间的转换</li>
<li>javascript对象也是用{}括起来的</li>
<li>javascript对象可以遍历</li>
<li>有两种遍历方法,一种跟java中的一样三段式,两段式的跟java有区别,是 for(var key in object) ,用了 in 关键字,此时的key是object中的键,获取值需要使用,这种遍历对象的方法必须是自定义对象,原生对象不能这样遍历,需要查询<a href="http://www.runoob.com/jsref/jsref-tutorial.html">这里</a>知道都有什么方法和属性才好</li>
<li>能够遍历的东西很多,对象本身可以遍历,数组可以遍历,字符串也可以遍历</li>
<li>获取对象中值的办法有两种,一种是object.keyname,object.methodname(),另外一种是object['keyname'],object'methodname',提供两种方式就很讨厌,我只用第一种</li>
<li>如何创建一个对象?1.可以直接将大括号括起来的对象赋值给变量var a = {id:1,name:'tian'} ; 2.可以var a = new Object(); a.id = 1;这样</li>
<li>如何创建一个函数?1.function x(a, b) {return a * b;},此时可调用x(2,3)返回6 2.var x = function(a,b) {return a * b} ,此时也可以调用x(2,3),返回6。这里要明白一个重要的概念就是函数也是变量,这两种方法都能体现,第一种是声明函数时候声明了函数名字,第二种函数没有名字,是一个匿名函数,此时必须将这个函数赋值给一个变量,不然的话永远都不可能被调用,因为没有名字嘛。</li>
<li>匿名函数是学习闭包过程中的一大障碍,1.(function(){console.log('hello')})() //会打印hello. 2.function() {console.log('hello')}//仅仅定义了一个匿名函数</li>
</ul>
<p>收获最大的就是知道了这么多javascript中的数据类型,以及读取他们的方法。</p>