2021年12月27日 星期一

解決 CPU 待機溫度過高的問題

 解決 CPU 待機溫度過高的問題

前言

  在先前的解決電腦總是很吵的問題 裡透過重塗散熱膏的方式解決 CPU 的風扇總是很吵的問題,但之後發現 CPU 的待機溫度還是有點高,在此把解決的過程做個紀錄。


內容

  在先前的 解決電腦總是很吵的問題 之後,透過 [ www.alcpu.com ] Core Temp 這個軟體來看 CPU 的待機溫度,結果發現溫度會達到 60 度,所以我又拆開機殼後,過沒幾分後溫度就會降到 45 度左右,看一下機殼的狀況後發現機殼風扇沒再轉,本以為是電線鬆脫,所以重插電線,但發現還是不會動,摸了一下風扇的中心部位遽然異常的燙,沒錯,兇手就是機殼風扇,後來買了個新豐善後待機溫度就降到 45 度。


  機殼風扇本以為是個不太重要的存在,但沒想到它不轉動也就算了,還持續發熱,這個發熱遽然可以讓機殼的溫度相差 15 度,真是讓我改觀了。


相關文章與資料

解決電腦總是很吵的問題

[ www.alcpu.com ] Core Temp

2021年12月20日 星期一

解決電腦總是很吵的問題

 解決電腦總是很吵的問題

前言

  最近電腦總是不定時發出很吵的聲音,本想吵一陣子忍一下就過去了,結果發現問題越來越嚴重,這裡把解決的過程做個紀錄。


內容

  在發出很吵的聲音下拆開機殼,發現很多灰塵,所以就把整個機殼就個清潔,不過清潔完後還是會發生,本想就算了忍一下就過去了,但沒想到狀況越來越嚴重,在開機後會處在打開任何影片都會讓顯卡驅動程式 crash ,在反覆多次 crash 後會開始變穩定,想說只發生在開機的那段時間,忍一下就過去了,但過了一陣子狀況更差了,偶而開始跳小藍畫面,我終於決定不忍了。


  查了一下發現最有可能的是 CPU 的散熱膏可能乾了,需要作重塗的動作,所以就去買了散熱膏與酒精,CPU的散熱片我第一次拆,要先拔除風扇電源,再來是將固定的卡栓轉開,卡栓上面有標記旋轉的方向,照著旋轉即可,拆下來後就可以看到 CPU ,接著用酒精清理 CPU 上層與散熱片的接觸面,再來就把散熱膏塗上,塗完後再把散熱片裝回去就完成重塗的動作。


  重塗完後重新開啟電腦馬上有感,開機後觀看影片不再發生顯卡驅動程式 crash 的狀況,很吵的聲音也都不見了,以前一直認為重塗散熱膏是個麻煩的事,頂多只會造成程式跑慢一點而已,但實則不然,不重塗散熱膏可能會造成作業系統的行為異常(如顯卡驅動工作不正常),這次的經驗真是讓我大大的改觀了。

2021年12月13日 星期一

在 JavaScript 檢查空字串的方法

 在 JavaScript 檢查空字串的方法

前言

  最近在 [ www.itread01.com ] 如何檢查JavaScript中的空字串? 裡發現簡短的檢查空字串的方法,在此做個紀錄。


內容

  範例如下

const ar=[ null , undefined , '' , '0' , '123' ];
for( let i=0;i<ar.length;i++ ){
  //use !!
  console.log(`[${i}]:${ !!ar[i] }`);
  //use Boolean()
  console.log(`[${i}]:${ Boolean( ar[i] ) }`);
}


方法有兩個,一個是"!!",另一個是 Boolean() ,這兩個看起來都很簡短,要注意連字串長度是0也會被判為空字串,"!!"利用的是"!"運算的特性,可以理解 null 與 undefined ,但令我意外的是字串長度是0時也會有一樣的結果,第二個方法就真的是新發現,轉成布林值得結果剛好跟空字串的結果一致,這就只能用記的了。


參考資料

[ www.itread01.com ] 如何檢查JavaScript中的空字串?

2021年12月6日 星期一

讓 JavaScript 的 function 支援不同型別的輸入

 讓 JavaScript 的 function 支援不同型別的輸入

前言

  最近需要 讓 JavaScript 的 function 支援不同型別的輸入,結果發現遽然忘了怎麼做,這次把複習的過程做個紀錄。


內容

  範例如下

class MyClass{
  constructor(){
    this._buffer = [];
  }
  addNumber(ele){
    if( typeof ele === 'number')
      this._buffer.push(ele);
    else if( Array.isArray(ele) ){
      for(let i=0;i<ele.length;i++)
        this._buffer.push( ele[i] );
    }
    else
      console.log('unsupported type!');
  }
  showContant(){
    this._buffer.forEach( function(ele){
      console.log(ele);
    });
  }
}
let a=new MyClass();
a.addNumber(1);
a.addNumber([2,3,4,5]);
a.showContant();


範例的 addNumber() 可以同時支援 number 與 Array 型別,要注意的是檢查是否是 Array 是用 Array.isArray() ,而非使用 typeof ,還有要注意這裡推入資料時使用的是傳統迴圈,而非使用 forEach() ,這是因為 this 這個變數並不能直接在匿名函式中正常動作。