1,型轉換的不同 javascript
空物件和空白陣列轉換為boolean值為true;
但在php中
空物件空數組轉換為boolean值為false;
(僅在php4中空物件的boolean值為false)
包含非0的負數值,都是轉換為true;
2,實形參的不同
在js中形參和實參的個數對比起來都沒有限制,形參個數可以大於實參,也可以少於實參
而在php中,實參數大於形參不報錯,但當實參個數少於形參個數時(並且未指定的形參未定義時就會報錯)
程式碼如下:
f val1,val2,val3){
}
mao(aa,bb);
複製程式碼
程式碼如下:
function maovalfunction val2,val3="123"){
}
mao(aa,bb);
js中可以寫一個三元表達式來給未賦值的形參給定一個初始值,不可以和php一樣在形參列表裡面賦值, 本質原因由於php不存在原型連,執行過程中沒有變數物件。
3.資料類型的不同
js中有undefined類型,php中無此類型,
因此當一個變數未賦予任何值時,js中此類型為undefined(使用未申明的變數會報錯誤),而在php中則為Null類型;
並且js中只有number類型,而在php中無此類型,取代的為int float型別;
4.字串的連接
js中使用加號=
php中使用點號..=
5.控制語句的區別
else if與elseif在php中都支持,js只支持前者
6.大小寫問題
js嚴格區分大小寫
php中自訂函數名稱不區分大小寫。命名函數時不可使用已宣告的函數,或PHP內建的函數名稱。
7.變數的作用範圍
php在函數範圍之外所宣告的變數就是全域變數。由於函數可以視為單獨的
程式片段,所以局部變數會複蓋全域變數的能見度,因此在函數中並無
法直接呼叫使用全域變數。函數中若要使用全域變數時,必須利用global關鍵字定義目標變量,以
告訴函數主體此變數為全域。
js由於原型連的關係,可直接呼叫
8.靜態變數
PHP支援宣告函數變數為靜態的(static) js隨無靜態變數但可以定義函數的屬性冒充靜態變數