網頁前端工程入門:Javascript 函式 - 延伸觀念 By 彭彭

  Рет қаралды 24,269

彭彭的課程

彭彭的課程

Күн бұрын

Пікірлер: 34
@Ts2pc
@Ts2pc 2 жыл бұрын
太精采了! 把程式語言背後運作的邏輯和順序講清楚, 好像語言開發者親臨講解, 這是台灣及大陸老師最缺乏的.
@cwpeng-course
@cwpeng-course 2 жыл бұрын
謝謝你的回饋,希望對大家都有幫助 :)
@sam4mug7
@sam4mug7 6 жыл бұрын
舉例得恰到好處,易懂
@eastern815
@eastern815 7 жыл бұрын
感恩 彭彭!
@李先先-t2r
@李先先-t2r 3 жыл бұрын
想請問老師有出比較變數var和let的影片嗎?@@
@cwpeng-course
@cwpeng-course 3 жыл бұрын
應該在會員專屬的影片中有,但不建議你為了這個小主題花錢哪,網路上很多介紹的 ~
@HsuChiChen
@HsuChiChen 3 жыл бұрын
我查到的資料是: 以 let 宣告的變數,其作用域是「區塊作用域(block scope)」,也就是 { } 包住的區域,一但離開 { }範圍,這個變數就不會被存取到。 var:不會受限在代碼塊區域(block scope)內,可能會汙染全域變數。不管哪個作用域(Scope)都可以存取,可以重複宣告。 let:所宣告的變項只有在代碼塊區域(block scope)內有效,不會產生全域變數,無法在同一層 Block 重複宣告變數。 const:具備 let 所有的特性。在一宣告時就必定要指定給值,不然會產生錯誤,宣告後不能更改值。
@江昱嶔
@江昱嶔 6 жыл бұрын
請問為什麼3:05時,把函式放入變數裡 var test=add; 後面不用加上( ) 而一般在使用函式add(31,15);或變數test(10,20)後面要加上( )才算是呼叫函式或呼叫變數
@江昱嶔
@江昱嶔 6 жыл бұрын
繼續往下看立刻就有解了... (暫停問問題再繼續看XD) 函式add後面沒加上小括號代表函式本身(沒有流程) 有加上( )和數字,代表函式會帶入再帶出來(是一個流程) 把函式丟到新的變數裡,這新的變數test代表Add (發問順便當筆記)
@cwpeng-course
@cwpeng-course 6 жыл бұрын
很不錯的整理哦 :)
@yianchen_
@yianchen_ 3 жыл бұрын
請問彭彭老師,若把 alert(x+y) 放在 alert(x+z) 的後面,網頁無法顯示 4。 是否第 n 行的 javascript 程式碼錯誤,從 n+1 行之後的程式碼皆無法執行呢? 請問有方法可避免因程式中的幾個錯誤,而影響後續其他程式碼的執行嗎? 謝謝老師 ~ ~ -------------------------------------------------------------------------- var x=1; var y=3; function test(){ var z=5; var x=10; alert(y+z); } test(); alert(x+y); // 顯示為 4 alert(x+z); // 無法顯示 (因無法使用區域變數 z )
@cwpeng-course
@cwpeng-course 3 жыл бұрын
中間有錯誤程式就會終止執行,無法避免,所以寫程式才會是一個需要細心和困難的工作 ~
@sidunyho2774
@sidunyho2774 3 жыл бұрын
謝謝老師講得很清楚, 我原本是學python,聽到這裡驚覺JS的global和local不用像python一樣另外宣告,會自動搜尋 1.但如果函式執行完畢後,return 回來的變數名稱和global相同,是不是有覆寫可能性 所以我們是要盡量避免function回傳值和全域變數相同嗎? 如果多個func共用一個全域變數時,重新宣告每一回傳變數名是否比較恰當XD? 大部分官方文件,好像都不太建議用全域變數進入func.. 但這樣好像跑不出東西 var x=3; function add_x(){ var y=x+3; return y; } add_x();
@cwpeng-course
@cwpeng-course 3 жыл бұрын
1. 是同一個名稱也無所謂,是分開的。全域變數的用途就是可以在更內部的空間中共享,實際上是否適合完全取決於程式的目的和實際的程式碼結構,很難一概而論。 2. 你的程式沒有錯誤,但也沒有任何印出訊息的指令,如果你說跑不出東西是指看不到結果,那只是因為沒有寫指令去把結果展示出來而已。
@vidalin8224
@vidalin8224 3 жыл бұрын
老師好~ 想請問 1. 變形函式的英文是Modified functions?(有查一下,但還是不太確定>
@cwpeng-course
@cwpeng-course 3 жыл бұрын
前兩題你說的變形函式我沒辦法意識到是什麼東西,不好意思。第三個名稱空間英文確實就是叫做 namespace,不過不要把這個英文字和其他語言的概念混在一起談哦
@user-bk3zt8sp1dfnodes
@user-bk3zt8sp1dfnodes 8 ай бұрын
@@cwpeng-course 謝謝老師。確實會和 c++的 std namespace 搞混。。。
@姚字丞
@姚字丞 2 жыл бұрын
@cwpeng-course
@cwpeng-course 2 жыл бұрын
:)
@duncantsai7996
@duncantsai7996 8 жыл бұрын
老師請教一下: 我把程式碼列出如下, 想問一下Question 1) line 11: alert(Msg); 是不是會出現 「 Hello, This is outside of Func1() . 」 , 而不是 「Hello, This is indisde of Func1().」, 因為line 11適用 "外部程式碼不能使用內部變數"這個規則."。 line 06: line 07: var Msg; line 08: Msg="Hello, This is outside of Func1()."; line 09 : alert(Msg); line10: Func1(); line11: alert(Msg); line12: line13: function Func1() line14: { line15: msg="Hello, This is inside of Func1()."; line16. alert (Msg); line17. } line18 Question 2) { }(大括符) 内沒有宣告 var Msg; (宣告一個同名的變數Msg)不會影響line 16: alert (Msg); 的結果, 因為line 16會先在內部找到Msg="Hello, This is inside of Func1()"。即時如果line14: 加上 var Msg; (宣告一個同名的變數Msg)也不會影響line 16: alert (Msg); 的結果.
@cwpeng-course
@cwpeng-course 8 жыл бұрын
我先假設你 line 15 其實是要寫 Msg="Hello, This is inside of Func1().";。不然我會看不懂問題 XD 1. 外部程式碼確實不能使用內部宣告的變數。他會直接印出全域變數 Msg 的內容沒錯。 2. 如果你沒有在函式內部宣告 var Msg;,那你的 line 16 會印出全域變數 Msg 的內容。有宣告的話,就會印出區域變數 Msg 的內容。不過以你的程式來看,無論哪一種都會有一樣的結果,因為你在印之前都先把 "Hello, This is inside of Func1()" 放進 Msg 變數裡了。
@duncantsai7996
@duncantsai7996 8 жыл бұрын
是的,line 15 應是Msg(M大寫). 謝謝老師指正。
@last9485
@last9485 8 жыл бұрын
好酷 只玩過java 和 c 的我 一直以為 區域變數一定要先宣告 因為就算不宣告 它也部會往外面去找變數 也沒辦法直接從內部修改外部的資料 感謝出了這麼好的視頻!! 讓我可以多了解一點網頁設計 剛好在學校有選這門課! 來先修一下
@hanm0918
@hanm0918 6 жыл бұрын
var x = 8; var x = 7; function test(){ alert(x); } test(); 請問為什麼同時建立兩個var x 程式還是跑得出來? 結果是7 意思是說 概念是像 var x = 8; x = 7; 後面蓋掉前面的意思嗎?
@cwpeng-course
@cwpeng-course 6 жыл бұрын
是的,使用 var 建立變數,如果有重複宣告變數的情況,會直接被當成已經存在的變數操作,就如同你說的那樣。
@hanm0918
@hanm0918 6 жыл бұрын
@@cwpeng-course 喔喔 了解 謝謝
@davvaification
@davvaification 4 жыл бұрын
老師,我在var test=add後面加了括號就出了NaN 想問下是什麼意思呢
@cwpeng-course
@cwpeng-course 4 жыл бұрын
var test=add(); 代表先呼叫 add 函式,取得函式的回傳值存放到變數 test 裡面。 var test=add; 代表直接把 add 函式本身存放到變數 test 裡面。
@Ky-hi4or
@Ky-hi4or 5 жыл бұрын
請問我在全域設定一個x=5,區域設定一個x=3,但我現在如果要抓全域的x,要怎麼抓呢?我用過this.x,但還是抓不到全域的值...
@cwpeng-course
@cwpeng-course 5 жыл бұрын
抓不到,區域的 x 會把全域蓋掉。如果你需要全域的 x,就不要在區域建立 x 變數嘍 ~
@Sunny-rp9rz
@Sunny-rp9rz 4 жыл бұрын
老師講的好好可是我還是聽不懂 果然是我太笨了 嗚嗚
@cwpeng-course
@cwpeng-course 4 жыл бұрын
不會哪,希望有機會可以了解你被卡住的地方是什麼 QQ
@kai_comes_to_eat
@kai_comes_to_eat 5 жыл бұрын
我愛1.25倍XDDD
@cwpeng-course
@cwpeng-course 5 жыл бұрын
很多朋友都這樣說 XDDDD
網頁前端工程入門:Javascript 物件 - 基礎使用 By 彭彭
11:11
網頁前端工程入門:Javascript 函式 - 基礎使用 By 彭彭
20:02
When you have a very capricious child 😂😘👍
00:16
Like Asiya
Рет қаралды 18 МЛН
“Don’t stop the chances.”
00:44
ISSEI / いっせい
Рет қаралды 62 МЛН
coco在求救? #小丑 #天使 #shorts
00:29
好人小丑
Рет қаралды 120 МЛН
網頁前端工程入門:Javascript 物件 - 建構式 By 彭彭
12:04
網頁前端工程入門:HTML DOM - 基本觀念 By 彭彭
19:54
彭彭的課程
Рет қаралды 38 М.
網頁前端工程入門:Javascript 流程控制 - 判斷式 By 彭彭
15:58
The Roles of Frontend, Backend, and Database Explained by Example
8:58
走歪的工程師James
Рет қаралды 566 М.
網頁前端工程入門:Javascript 變數與運算子 By 彭彭
28:32
When you have a very capricious child 😂😘👍
00:16
Like Asiya
Рет қаралды 18 МЛН