iT邦幫忙

0

複習基礎JavaScript

小弟因疫情影響,整天在家苦等Offer
於是心血來潮,將自己之前的考題整理成筆記
上來與大家分享交流
JavaScript太久沒複習了,連一些簡單的型別宣告作用域等等都沒了印象
今天就來談談這些基本的執行
https://ithelp.ithome.com.tw/upload/images/20210529/20137810ctz0dVyTgT.jpg
(上面答案寫錯不要理我)
Const compare = function(){
Let num = 123;
Let str = ‘123’;

Console.log(num == str);
Console.log(num === str);

Str = ‘hello’;
Let obj = new String(‘hello’);

Console.log(str == obj);
Console.log(str === obj);
}

Ans: true, false, true, false

兩個等於 == →比較value裡面的值,像123 = ‘123’
三個等於 === →比較型別, str = ‘hello’; != new String(‘hello’);
像這樣↓
https://ithelp.ithome.com.tw/upload/images/20210529/20137810li6sXZF5JC.jpg
Str →物件 “hello”
Obj →建構子 String {“hello”}
這是javascript的弱型別特性,以下網站有詳細的javascript弱型別特性
https://medium.com/@yining1204/%E9%97%9C%E6%96%BCjavascript%E7%9A%84%E5%BC%B1%E5%9E%8B%E5%88%A5%E7%89%B9%E6%80%A7-93ffcdcf623e

https://ithelp.ithome.com.tw/upload/images/20210529/20137810XrkU7PH3Qs.jpg
這一題,主要考上述程式會輸出什麼數值
首先要先了解let var 跟 var的區別
懶人包:作用域不一樣,var的作用域在函數(function)裡,let的作用域則是在區塊(block)裡。

OK,有了此認知後去試想著程式如何執行
https://ithelp.ithome.com.tw/upload/images/20210529/20137810KiHRxL8MPZ.jpg
Let num = 2;這段宣告僅在function numberGenrator(){}
當呼叫到function addNum(){}時,會將num=5;回傳回來,
進而取代了上面的let num = 2; 此時num的值為5。
有關作用域的介紹,可以看下列網站
https://realdennis.medium.com/%E9%96%92%E8%81%8A-var%E8%88%87let%E7%9A%84%E6%87%B6%E4%BA%BA%E5%8C%85-javascript-b5a3f40ee28d
再來釐清一下const 是什麼宣告呢?
宣告 const 會對於它的值建立一個唯讀的參考。並不是說這個值不可變更,而是這個變數不能再一次指定值。例如,假設常數的內容(值)是個物件,那麼此物件的內容(物件的參數)是可以更改的。
所以 const numGen = numberGenerator();
呼叫了上述function
並let x = numGen();
X就為6啦

以上為小弟自己複習一些考古題所做出來的筆記(很菜鞭小力點)
主要是自己透過紀錄方式讓自己觀念更釐清
之後還會陸續Po上自己菜鳥學習筆記
歡迎大家一起討論教學

下面有兩題小弟我還沒研究出來,歡迎邦友幫忙指教討論
https://ithelp.ithome.com.tw/upload/images/20210529/201378103mlOKeVetv.jpg
https://ithelp.ithome.com.tw/upload/images/20210529/2013781007WKnSf2G9.jpg
/images/emoticon/emoticon41.gif


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言