<p>對比java中的相關(guān)知識點(diǎn),我很容易操作java中的基本對象吼畏,javascript就不那么容易了,我在使用javascript的過程中遇見了這些問題:</p>
<ul>
<li>javascript用var初始化變量,并沒有類型聲明芝硬,因?yàn)閖avascript是弱類型語言,這種類型語言是要做類型推導(dǎo)的轧房,java這種強(qiáng)類型語言就不需要拌阴。</li>
<li>如何聲明一個數(shù)組</li>
<li>如何聲明一個json對象</li>
<li>如何遍歷一個數(shù)組</li>
<li>javascript中有l(wèi)ist這種數(shù)據(jù)類型么,都有哪些數(shù)據(jù)類型</li>
<li>如何創(chuàng)建一個函數(shù)</li>
<li>匿名函數(shù)</li>
</ul>
<p>菜鳥教程真是不錯奶镶,概念講的清楚明白迟赃,除了閉包那點(diǎn)不是很清楚之外〕д颍回頭在研究什么是閉包纤壁。先說說我從菜鳥教程中看到了什么?幾乎我的問題都被解決了:</p>
<ul>
<li>javascript的數(shù)據(jù)類型還是有的捺信,雖然語言是弱類型的酌媒,弱類型僅僅是說生命的時候沒有聲明類型,但不代表這在初始化的時候沒有類型迄靠。</li>
<li>javascript有對象的概念秒咨,同樣跟java一樣最根本的對象是Object,還可以自定義對象梨水,javascript語言本身就有的對象是拭荤,字符串,數(shù)字疫诽,日期舅世,數(shù)組,函數(shù)奇徒,對函數(shù)本身也是對象</li>
<li>javascript中有值相等和絕對相等雏亚,絕對相等是指類型值相等并且類型一樣,也就是typeof(object1)和typeof(object2),值相等比較使用==,絕對相等使用===</li>
<li>javascript的對象都是有鍵值對組成的摩钙,這點(diǎn)跟json十分的相似罢低,只是json要求鍵也必須要是字符串。</li>
<li>有內(nèi)建的方法進(jìn)行javascript對象和json之間的轉(zhuǎn)換</li>
<li>javascript對象也是用{}括起來的</li>
<li>javascript對象可以遍歷</li>
<li>有兩種遍歷方法,一種跟java中的一樣三段式,兩段式的跟java有區(qū)別网持,是 for(var key in object) ,用了 in 關(guān)鍵字,此時的key是object中的鍵宜岛,獲取值需要使用,這種遍歷對象的方法必須是自定義對象,原生對象不能這樣遍歷功舀,需要查詢<a >這里</a>知道都有什么方法和屬性才好</li>
<li>能夠遍歷的東西很多萍倡,對象本身可以遍歷,數(shù)組可以遍歷辟汰,字符串也可以遍歷</li>
<li>獲取對象中值的辦法有兩種列敲,一種是object.keyname,object.methodname(),另外一種是object['keyname'],object'methodname',提供兩種方式就很討厭帖汞,我只用第一種</li>
<li>如何創(chuàng)建一個對象戴而?1.可以直接將大括號括起來的對象賦值給變量var a = {id:1,name:'tian'} ; 2.可以var a = new Object(); a.id = 1;這樣</li>
<li>如何創(chuàng)建一個函數(shù)?1.function x(a, b) {return a * b;},此時可調(diào)用x(2,3)返回6 2.var x = function(a,b) {return a * b} ,此時也可以調(diào)用x(2,3),返回6翩蘸。這里要明白一個重要的概念就是函數(shù)也是變量所意,這兩種方法都能體現(xiàn),第一種是聲明函數(shù)時候聲明了函數(shù)名字鹿鳖,第二種函數(shù)沒有名字扁眯,是一個匿名函數(shù),此時必須將這個函數(shù)賦值給一個變量翅帜,不然的話永遠(yuǎn)都不可能被調(diào)用,因?yàn)闆]有名字嘛命满。</li>
<li>匿名函數(shù)是學(xué)習(xí)閉包過程中的一大障礙涝滴,1.(function(){console.log('hello')})() //會打印hello. 2.function() {console.log('hello')}//僅僅定義了一個匿名函數(shù)</li>
</ul>
<p>收獲最大的就是知道了這么多javascript中的數(shù)據(jù)類型,以及讀取他們的方法胶台。</p>