php與js的區(qū)別是什么
更新時(shí)間:2013年08月05日 17:04:20 作者:
php與js的區(qū)別包括:類型轉(zhuǎn)換的不同、實(shí)形參的不同、數(shù)據(jù)類型的不同等等,更多參考下文,希望對(duì)大家有所幫助
1,類型轉(zhuǎn)換的不同
在javascript中
空對(duì)象和空數(shù)組轉(zhuǎn)換為boolean值為true;
但在php中
空對(duì)象空數(shù)組轉(zhuǎn)換為boolean值為false;
(僅在php4中空對(duì)象的boolean值為false)
包括非0的負(fù)數(shù)值,都是轉(zhuǎn)換為true;
2,實(shí)形參的不同
在js中形參和實(shí)參的個(gè)數(shù)對(duì)比起來(lái)都沒(méi)有限制,形參個(gè)數(shù)可以大于實(shí)參,也可以少于實(shí)參
而在php中,實(shí)參數(shù)大于形參不報(bào)錯(cuò),但當(dāng)實(shí)參個(gè)數(shù)少于形參個(gè)數(shù)時(shí)(并且未指定的形參未定義時(shí)就會(huì)報(bào)錯(cuò))
function mao(val1,val2,val3){
}
mao(aa,bb);
此時(shí)由于val3未指定實(shí)參,會(huì)報(bào)錯(cuò)
但當(dāng)val3初始化一個(gè)值時(shí),不報(bào)錯(cuò)
function mao(val1,val2,val3="123"){
}
mao(aa,bb);
js中可以寫一個(gè)三元表達(dá)式來(lái)給未賦值的形參給定一個(gè)初始值,不可以和php一樣在形參列表里面賦值,
本質(zhì)原因由于php不存在原型連,執(zhí)行過(guò)程中沒(méi)有變量對(duì)象。
3.數(shù)據(jù)類型的不同
js中有undefined類型,php中無(wú)此類型,
因此當(dāng)一個(gè)變量未賦予任何值時(shí),js中此類型為undefined(使用未申明的變量會(huì)報(bào)錯(cuò)),而在php中則為Null類型;
并且js中只有number類型,而在php中無(wú)此類型,取代的為int float類型;
4.字符串的連接
js中使用加號(hào) + +=
php中使用點(diǎn)號(hào) ..=
5.控制語(yǔ)句的區(qū)別
else if與elseif在php中都支持,js只支持前者
6.大小寫問(wèn)題
js嚴(yán)格區(qū)分大小寫
php中自定義函數(shù)名不區(qū)分大小寫。命名函數(shù)時(shí)不可使用已聲明的函數(shù),或PHP內(nèi)建的函數(shù)名稱。
7.變量的作用范圍
php在函數(shù)范圍之外所聲明的變量就是全局變量。由于函數(shù)可以視為單獨(dú)的
程序片段,所以局部變量會(huì)復(fù)蓋全局變量的能見度,因此在函數(shù)中并無(wú)
法直接調(diào)用使用全局變量。函數(shù)中若要使用全局變量時(shí),必須要利用global關(guān)鍵字定義目標(biāo)變量,以
告訴函數(shù)主體此變量為全局。
js由于原型連的關(guān)系,可直接調(diào)用
8.靜態(tài)變量
PHP支持聲明函數(shù)變量為靜態(tài)的(static)
js隨無(wú)靜態(tài)變量但可以定義函數(shù)的屬性來(lái)冒充靜態(tài)變量
在javascript中
空對(duì)象和空數(shù)組轉(zhuǎn)換為boolean值為true;
但在php中
空對(duì)象空數(shù)組轉(zhuǎn)換為boolean值為false;
(僅在php4中空對(duì)象的boolean值為false)
包括非0的負(fù)數(shù)值,都是轉(zhuǎn)換為true;
2,實(shí)形參的不同
在js中形參和實(shí)參的個(gè)數(shù)對(duì)比起來(lái)都沒(méi)有限制,形參個(gè)數(shù)可以大于實(shí)參,也可以少于實(shí)參
而在php中,實(shí)參數(shù)大于形參不報(bào)錯(cuò),但當(dāng)實(shí)參個(gè)數(shù)少于形參個(gè)數(shù)時(shí)(并且未指定的形參未定義時(shí)就會(huì)報(bào)錯(cuò))
復(fù)制代碼 代碼如下:
function mao(val1,val2,val3){
}
mao(aa,bb);
此時(shí)由于val3未指定實(shí)參,會(huì)報(bào)錯(cuò)
但當(dāng)val3初始化一個(gè)值時(shí),不報(bào)錯(cuò)
復(fù)制代碼 代碼如下:
function mao(val1,val2,val3="123"){
}
mao(aa,bb);
js中可以寫一個(gè)三元表達(dá)式來(lái)給未賦值的形參給定一個(gè)初始值,不可以和php一樣在形參列表里面賦值,
本質(zhì)原因由于php不存在原型連,執(zhí)行過(guò)程中沒(méi)有變量對(duì)象。
3.數(shù)據(jù)類型的不同
js中有undefined類型,php中無(wú)此類型,
因此當(dāng)一個(gè)變量未賦予任何值時(shí),js中此類型為undefined(使用未申明的變量會(huì)報(bào)錯(cuò)),而在php中則為Null類型;
并且js中只有number類型,而在php中無(wú)此類型,取代的為int float類型;
4.字符串的連接
js中使用加號(hào) + +=
php中使用點(diǎn)號(hào) ..=
5.控制語(yǔ)句的區(qū)別
else if與elseif在php中都支持,js只支持前者
6.大小寫問(wèn)題
js嚴(yán)格區(qū)分大小寫
php中自定義函數(shù)名不區(qū)分大小寫。命名函數(shù)時(shí)不可使用已聲明的函數(shù),或PHP內(nèi)建的函數(shù)名稱。
7.變量的作用范圍
php在函數(shù)范圍之外所聲明的變量就是全局變量。由于函數(shù)可以視為單獨(dú)的
程序片段,所以局部變量會(huì)復(fù)蓋全局變量的能見度,因此在函數(shù)中并無(wú)
法直接調(diào)用使用全局變量。函數(shù)中若要使用全局變量時(shí),必須要利用global關(guān)鍵字定義目標(biāo)變量,以
告訴函數(shù)主體此變量為全局。
js由于原型連的關(guān)系,可直接調(diào)用
8.靜態(tài)變量
PHP支持聲明函數(shù)變量為靜態(tài)的(static)
js隨無(wú)靜態(tài)變量但可以定義函數(shù)的屬性來(lái)冒充靜態(tài)變量
您可能感興趣的文章:
- php json_encode值中大括號(hào)與花括號(hào)區(qū)別
- JS與PHP向函數(shù)傳遞可變參數(shù)的區(qū)別實(shí)例代碼
- ASP.NET、ASP、PHP、JSP之間有什么區(qū)別?
- js+php實(shí)現(xiàn)靜態(tài)頁(yè)面實(shí)時(shí)調(diào)用用戶登陸狀態(tài)的方法
- ThinkPHP模版中導(dǎo)入CSS和JS文件的方法
- Thinkphp搭建包括JS多語(yǔ)言的多語(yǔ)言項(xiàng)目實(shí)現(xiàn)方法
- php實(shí)現(xiàn)壓縮多個(gè)CSS與JS文件的方法
- php,js,css字符串截取的辦法集錦
- js函數(shù)與php函數(shù)的區(qū)別實(shí)例淺析
相關(guān)文章
Javascript基礎(chǔ)教程之?dāng)?shù)據(jù)類型轉(zhuǎn)換
JavaScript是一種無(wú)類型語(yǔ)言,但同時(shí)JavaScript提供了一種靈活的自動(dòng)類型轉(zhuǎn)換的處理方式?;疽?guī)則是,如果某個(gè)類型的值用于需要其他類型的值的環(huán)境中,JavaScript就自動(dòng)將這個(gè)值轉(zhuǎn)換成所需要的類型。2015-01-01實(shí)例解析JS布爾對(duì)象的toString()方法和valueOf()方法
這篇文章主要介紹了JS的布爾對(duì)象的toString()方法和valueOf()方法,是JavaScript入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-10-10淺談關(guān)于JavaScript API設(shè)計(jì)的一些建議和準(zhǔn)則
這篇文章主要介紹了淺談關(guān)于JavaScript API設(shè)計(jì)的一些建議和準(zhǔn)則,文中列舉了許多知名的JS API進(jìn)行輔助說(shuō)明,極力推薦!需要的朋友可以參考下2015-06-06javascript定義變量時(shí)有var和沒(méi)有var的區(qū)別探討
定義變量時(shí)省略var是不安全的,不過(guò)是合法的。定義的變量的作用域取決于定義的位置2014-07-07javascript中call()、apply()的區(qū)別
這篇文章主要介紹了javascript中call()、apply()的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03