閱讀415 返回首頁    go 阿裏雲 go 技術社區[雲棲]


java學習 JavaScript學習心得

java學習 JavaScript學習心得

用Java也有段時間了,現在想想當時學這個的時候,也是挺辛苦的,所以成就感油然而生.剛開始學些基礎的,Javaweb輕量級軟件開發,當時作為新手而言看的<Head First Java(第二版·中文版)>這本書,在我覺得這本書還是不錯的,沒有基礎的同學可以在逗逼的氣氛中搞定基礎語法、體會麵向對象的思想,有編程基礎的同學也會發現原來技術書也可以寫成這樣!厲害了...Java是目前最流行的編程語言之一——它可以用來編寫Windows程序或者是Web應用,移動應用,網絡程序,消費電子產品,機頂盒設備,它無處不在,下麵就來說說我在學習的時候遇到的一些問題,簡單談談在下的心得吧!也希望大家多指教了.

其實基礎一些的還好.我想說說JavaScriptJavaScript 是腳本語言,是一種輕量級的編程語言,是可插入 HTML 頁麵的編程代碼,插入 HTML 頁麵後,可由所有的現代瀏覽器執行。JavaScript 是與 HTML 和 CSS 結合運行在瀏覽器中,強大且富有表現力的語言。基於一個叫做 ECMAScript 的開放標準,JavaScript 快速的發展成為“網絡的編程語言”。jQuery 所有的力量都來自於 JavaScript,所以無需贅言,它是一門值得學習的重要語言。擁有 JavaScript 的基礎知識,會對理解,構建和調試代碼很有幫助。如果你想學習Java可以來這個群,首先是二二零,中間是一四二,最後是九零六,裏麵有大量的學習資料可以下載。

java學習 JavaScript學習心得

下麵還是列舉一些關於這方麵的問題吧,看過之後大家應該也就清楚了

第一個

{a:1}.a報錯,錯誤Uncaught SyntaxError: Unexpected token .

解決:

({a:1}.a) // 或({a:1}).a

對象字麵值不能正確解析

第二個

123.toFixed(2)報錯,錯誤Uncaught SyntaxError: Unexpected token ILLEGAL

解決:

(123).toFixed(2) // >> "123.00"// 以下兩種都可以,但完全不推薦123..toFixed(2)123 .toFixed(2)

數字的點操作符

第三個.

嚐試解釋下連等賦值的過程。下麵的代碼為什麼是這樣的輸出?

var a = {n:1};var b = a; a.x= a = {n:2};console.log(a.x);// --> undefinedconsole.log(b.x);// --> {n:2}

連等賦值問題

第四個

下麵的代碼返回什麼,為什麼?

var x =20;var temp = { x:40,foo:function() {var x =10;returnthis.x; } }; (temp.foo, temp.foo)(); // 20,而不是40

逗號操作符

第五個

parseInt傳入數字時為什麼有以下輸出?

parseInt(0.000008) // >> 0parseInt(0.0000008) // >> 8

parseInt傳入數字

java學習 JavaScript學習心得

也不說那麼多了,簡單說這幾個吧,下麵給大家分析一下吧

第一個

聲明對象字麵值時,語句開頭不應該用

{

,因為js解釋器會認為這是語句塊(

block

)的開始。

同理,類似問題

{ name: "mc", id: 1 }

會報錯

Uncaught SyntaxError: Unexpected token :

也是這個道理。

({ name: "mc", id: 1 })

即可正確解析。但稍注意下,

{name: "mc"}

是不會報錯的,它等同於

name: "mc"

,並返回一個字符串

"mc"

第二個

很簡單,js解釋器會把數字後的

.

當做小數點而不是點操作符。

第三個

我們可以先嚐試交換下連等賦值順序(

a = a.x = {n: 2};

),可以發現輸出不變,即順序不影響結果。

那麼現在來解釋對象連等賦值的問題:按照es5規範,題中連等賦值等價於

a.x = (a = {n: 2});

,按優先獲取左引用(

lref

),然後獲取右引用(

rref

)的順序,

a.x

a

中的a都指向了

{n: 1}

。至此,至關重要或者說最迷惑的一步明確。

(a = {n: 2})

執行完成後,變量

a

指向

{n: 2}

,並返回

{n: 2}

;接著執行

a.x = {n: 2}

,這裏的

a

就是

b

(指向

{n: 1}

),所以

b.x

就指向了

{n: 2}

第四個

逗號操作符會從左到右計算它的操作數,返回最後一個操作數的值。所以

(temp.foo, temp.foo)();

等價於

var fun = temp.foo; fun();

fun

調用時

this

指向

window

,所以返回20。

第五個

parseInt(arg)

時會調用

arg.toString()

(0.000008).toString() // "0.000008"(0.0000008).toString() // "8e-7"

到此今天的談論就結束了,雖然說文章不是很詳細,但也希望可以幫到大家

最後更新:2017-06-17 13:04:01

  上一篇:go  新版共享虛機上線通知,穩定99.999%的服務、數據可靠性,8線機房,1000M帶寬共享
  下一篇:go  自動建立正確索引(btree,hash,gin,gist,sp-gist,brin,bitmap...)的方法