# from C to JavaScript ### C and JS相同之處 **1.switch 寫法與c相似** switch(x){ case 1: //同樣用case 選擇 break; //需要利用break跳離 case 2: break; default: break;} **2.for 或 while迴圈寫法也相似** for(i=0;i<10;i++){ console.log(i); } var i=0; while(i<10){ console.log(i); i++; }//兩種迴圈的基本架構都相同 **3.強制轉型的方式一樣** **但強制轉型不能由string轉int或int轉string再做運算** C: int a,c; float b,d; a=5; b=12.3; c=b+(int)b; //結果會是17,C即JS的浮點數轉整數均為無條件捨去 d=(float)c+b; //結果會是17.3 JS: var a=5; var b=12.3 var c="" **4.C和JS在邏輯運算符和值的比較部分相同** C: if(2>1){ return true; } ||和&&的用法也是一樣的or跟and,依照運算邏輯 JS: console.log(2>1); //true console.log(2==1); //false console.log(2!=1); //true console.log(true||false); //true console.log(true&&false); //false ### C and JS相異之處 **1.宣告變數型態不同** C: 變數型態+變數名稱 int 整數 float 浮點數 double 浮點數 (儲存記憶體較大) char 字符 ... JS: var+變數名稱 var s; 並將想要賦予的**值**或**字串**賦予給變數,跟C比較沒有差異 s="str"; var x = 5; **2.輸出寫法也不太一樣** C: int x=5; float y=1.7; char z=!; printf("%d",x);//%d輸出整數型態 printf("%f",y);//%f輸出浮點數型態 printf("%c",z);//%c輸出字符型態 C需要根據想輸出的變數型態寫在輸出欄寫"%d" "%f"等等,後面接,x 此為所對應想輸出的變數 JS: var x=5; var y=5.3; var z="str"; console.log(x); console.log(y); console.log(z); JS只需要打指令console.log(); 並且在括號內放入想輸出的變數,即可輸出相對應的值 **3.建立function不太一樣** C: int gcd(int c,int d){//宣告變數型態,function名稱,以及變數內容 int x;//最大公因數 if(d==0){ x=c; return x;} if(d!=0){ gcd(d,c%d);}} JS: function sum(a,b){//宣告function,function名稱,以及變數內容 return (a+b); } 且JS的function有類似C struct的用法 可自創function設一個名字 var s = function sayHi(){ console.log("Hi"); } 當需要呼叫此function只到打 s(); 即可 4.JS可以將**不同型態**的變數座相加相減或是做值得比較 JS: var b = true - 5;//true在布林表示當1 console.log(b); console.log(0\==false);//\==指判斷值是否一樣,不在乎資料型態 console.log(0===false);//===為嚴格相等,除了數值一樣之外,還必須要是相同的型態 **5.JS 允許數值資料與字串相加,結果變成一個字串。** (這是C做不到的事情 除了用陣列可以達到類似的效果) JS: var xx = 2+"3"+4+8;//只會轉換一次字符,因為是二元運算,故只要做到第一次字符轉換後面就都是字符 console.log(xx);//2348 var s = 1 + (2 + "a");//2+a會先做 且系統會將2轉為字串與a相加,再去把1改為字串並做相加,故輸出為12a var s1 = 1 + 2 + "a";//1+2會先做 且系統會將1+2的結果轉為字串再去跟a相加,故輸出為3a var s2 = "a" + 1 + 2;//a+1會先做 且系統會將1轉為字串先與a相加,再去把2改為字串並做相加,故輸出為a12 **6.JS在運算子有些與C不相同** JS: console.log(2\**10);//2的10次方 在C裡沒有利用\**代表次方計算
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up