Re: [問題] js型態轉換問題
: 在良葛格型態轉換章節最後有提到一句
: "在弱型別語言中,型態轉換往往自動發生,最好還是實際測試了解結果,
: 避免不必要的型態轉換而發生誤判或錯誤的運算結果。"
: 意思難道是說 "我根本不知道在型態轉換到底是怎麼轉的,反正測測看就知道了" ?
http://dorey.github.io/JavaScript-Equality-Table/unified/
這裡很清楚的列出 javascript == 跟 === 的對應
其實有點複雜,我相信大部分人不會想要用腦袋去記這個東西
所以真的有需要的話要嘛查表,要嘛寫 code 實驗
這是有規範,但是沒什麼規律的東西...
當然能夠記起來最好,這可以少踩很多地雷
: 但是在型態轉換中 java 語言可以清晰清楚地寫出轉換規則及邏輯
如果你先寫習慣了 Java 這種強形態的語言,來碰弱形態的語言應該都會有這種感覺
根本的原因是 Java 不喜歡幫你自動作型別轉換,但是 Javascript 喜歡自動幫你轉換
所以 Java 不同類別之間的比較一定是不一樣,Javacript 就要看他怎麼轉...
個人覺得比起搞清楚 javascript 怎麼自動轉換,減少 javascript 自動轉換的機會
且儘量用 === 會是更安全的做法...
====
講到自動轉型我就想到 PHP....
剛從 Java 跳槽 PHP 的時候要取陣列長度下意識的寫了這樣的 Code
$ary = array(1, 2, 3); // [1,2,3], 長度是 3
$length = $ary.length; // 這行是錯的,正確做法是 count($ary)
// 「.」是 PHP 的字串串接,加上找不到
// 「length」變數定義的時候會自動轉成字串"length"
// 回傳值是字串 "Arraylength"
if ($length>2) {
// 永遠跑不進來,字串被 cast 成整數 0,所以一定小於 2
// 拿去做四則運算程式也不會有錯誤訊息
}
這 code 以 PHP 明明寫錯的離譜,但是沒有任何 warning 跑出來害我找半天啊混蛋...
--
你們這些只會躲在家裡發些缺乏社會知識討論串的傢伙
--護士魔女蔻睦姬
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.187.99.209
※ 文章網址: http://www.ptt.cc/bbs/Ajax/M.1401859165.A.B56.html
※ 編輯: GALINE (106.187.99.209), 06/04/2014 13:21:45
推
06/04 14:14, , 1F
06/04 14:14, 1F
推
06/04 18:00, , 2F
06/04 18:00, 2F
推
06/04 20:36, , 3F
06/04 20:36, 3F
→
06/04 20:37, , 4F
06/04 20:37, 4F
→
06/04 20:37, , 5F
06/04 20:37, 5F
→
06/05 00:13, , 6F
06/05 00:13, 6F
討論串 (同標題文章)
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章