查看積分策略說明發表回覆
Discuz! 代碼
提示插入
直接插入
說明訊息

插入粗體文本 插入斜體文本 插入下劃線 置中對齊 插入超級連結 插入信件位址 插入圖像 插入 flash 插入代碼 插入引言 插入列表
刪除線 直線分隔線 虛線分隔線
    
添加文字底框
內容 [字數檢查]:

表情符號

更多 Smilies
字型大小 |||
溫馨提示:本區開放遊客瀏覽。


文章關鍵字 : [功能說明]
(關鍵字可加強搜索準確性, 如關鍵字多於一組, 請以 , 作分隔, e.g. : 阿笨,shiuh,第一笨)

 關閉 URL 識別 | html 禁用
 關閉 表情符號 | 表情符號 可用
 關閉 Discuz! 代碼 | Discuz! 代碼 可用
使用個人簽名
接收新回覆信件通知
推薦放檔網絡空間

檔案(Torent, zip等)
  1. freedl
  2. multiupload
  3. btghost
  4. 便當狗
  5. mediafire
  6. pillowangel
圖片(JPG, GIF等)
  1. hotimg
  2. tinypic
  3. mousems2
  4. imageshack
  5. imm.io
>>>歡迎推薦好用空間


最新10篇文章回顧
Ailio

 發表於 2016-8-17 01:24 PM

php有 === 喔

因為php隱含轉型 null 0 false 用 == 判斷會視為一樣

如果遇到某些要判斷回傳值 是 0 但不是 null 時 就必須使用 ===


leacks

 發表於 2016-8-16 07:57 PM


引用:
335012寫到:
節錄自: JavaScript 設計模式 P.22

引用:
避免隱含的型別轉換
JavaScript在比較變數時會隱含的做型別轉換。這就是為什麼 false == 0 或 " " == 0
會回傳 true 的原因。

為了避免隱含的型別轉換造成困惑,應總是用 === 和 !== 運算子來比較,可以同時比較
運算式結果的型別跟值:

var zero = 0;
if (zero === false) {
    //不會執行,因為 zero 是 0,不是 false
}

if (zero == false) {
    //這個區塊會執行...
}
另一個思想流派認為如果 == 能滿足需求,使用 === 則顯得累贅。例如當你使用 typeof
你知道會回傳一個字串,所以沒有理由去使用嚴格比對。儘管如此,JSLint要求使用嚴格比較
;這樣確實讓程式碼更一致,並在閱讀程式碼的時候可以少花一點精神。


所以小弟認為,見仁見智..
另外,要把 if 敘述提到 for 外面的話..
是否就不需使用 if 敘述了?
直接 return "沒中"; 或是 alert("沒中"); 會比較好?

謝謝提出想法。



感謝解說
因為我之前寫c之類,甚至印象連php都沒有三個等於
尤其是c,不同型別,除非是null之類,不然根本不讓你比


335012

 發表於 2016-8-1 11:27 PM

節錄自: JavaScript 設計模式 P.22

引用:
避免隱含的型別轉換
JavaScript在比較變數時會隱含的做型別轉換。這就是為什麼 false == 0 或 " " == 0
會回傳 true 的原因。

為了避免隱含的型別轉換造成困惑,應總是用 === 和 !== 運算子來比較,可以同時比較
運算式結果的型別跟值:

var zero = 0;
if (zero === false) {
    //不會執行,因為 zero 是 0,不是 false
}

if (zero == false) {
    //這個區塊會執行...
}
另一個思想流派認為如果 == 能滿足需求,使用 === 則顯得累贅。例如當你使用 typeof
你知道會回傳一個字串,所以沒有理由去使用嚴格比對。儘管如此,JSLint要求使用嚴格比較
;這樣確實讓程式碼更一致,並在閱讀程式碼的時候可以少花一點精神。


所以小弟認為,見仁見智..
另外,要把 if 敘述提到 for 外面的話..
是否就不需使用 if 敘述了?
直接 return "沒中"; 或是 alert("沒中"); 會比較好?

謝謝提出想法。


leacks

 發表於 2016-8-1 06:29 PM

我沒有學js
不過一般不是 if( last3 == num ) {嗎? 為啥你有3個等於??
我找了
http://www.w3school.com.cn/tiy/t.asp?f=js_ifthen
try一下是兩個阿


你的程式思維有問題
應該多一個變數或你愛用bl也可以

if( last3 == num ) {
            bl='中獎'
            result.push( myArray + ":" + i );
        }

for外面
if( bl!='中獎' ) {
           result.push('沒中');
        }


335012

 發表於 2016-8-1 01:14 AM

各位驢友,大家好
有些問題想請教一下眾驢友。
小弟目前以JavaScript寫了一小段程式碼
用來對發票號碼,供自己爽...

var myArray = ["12345678", "87654321", "78965432"]; //儲存發票號碼

var checkArray = function ( num ) {
    var len = myArray.length,
        i = 0,
        result = [],
        bl = "Bad Luck",  //沒中獎..
        last3;  //檢查末三碼
    for ( ; i<len; i+=1 ) {
        last3 = myArray[i].slice(5, 8);
        if( last3 === num ) {
            result.push( myArray[i] + ":" + i );
        }
        if( typeof num !== 'string' ) { //以字串處理,怕有0開頭之數字
            return "請加引號";
        }
        if( last3 !== num ) {
            result.push(bl);
        }
     }

     return result;
};
https://jsfiddle.net/cyz9Lyfv/3/

我的問題是當參數num在陣列裡的元素找不到相同的末三碼時
該如何跳出迴圈,只傳回一次變數bl就好
因為假設有一百張發票都沒中(很正常)在主控台就還好
在網頁裡使用alert或是document.writln就很煩了.....
我有嘗試過break,程式運行就會卡彈....
不知小弟描述的是否清楚

不知眾驢友,有何想法
懇請多多指教,用力鞭打





所在時區為 GMT+8, 現在時間是 2024-12-4 02:02 AM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.019755 second(s), 6 queries , Qzip disabled