PHP與JavaScript:兩種指令碼語言的深入比較

PHP與JavaScript:兩種指令碼語言的深入比較-1

PHP和JavaScript都是Web 開發人員經常使用的指令碼語言。但每個都有自己的細微差別和用例。

在這篇文章中,我們將探討PHP與JavaScript兩者之間的差異,以及何時應該在開發專案中使用每種語言。讓我們首先看看這些語言是如何產生的。

  1. PHP與JavaScript:起源
  2. PHP和JavaScript的相似之處
  3. PHP與JavaScript之間有什麼區別?
  4. WordPress如何使用JavaScript和PHP
  5. 學習PHP與JavaScript
  6. PHP與JavaScript -比較表

PHP與JavaScript:起源

PHP是Rasmus Lerdorf於2004年建立的一種開源語言。這個名字來自個人主頁工具——一組Rasmus用來跟蹤對他的網站的訪問的指令碼。

隨著PHP 3.0的推出,該語言有了一個反向首字母縮寫詞:PHP: Hypertext Preprocessor。它現在簡稱為PHP。

JavaScript由Netscape的Brendan Eich於1995年建立,旨在為Web帶來互動性。最初稱為Mocha,後來更名為LiveScript,後來更名為JavaScript,以利用Java語言的流行。

今天,JavaScript正式被稱為ECMAScript,但JavaScript仍然是大多數人所稱的。

因此,這兩種語言已經存在一段時間了。

現在我們將看看它們的其他一些相似之處。

PHP和JavaScript的相似之處

下面我們將從多個方面介紹這兩種程式語言的相似之處:

  1. 語言型別
  2. 變數型別
  3. 類和物件
  4. 市場需求
  5. 文件

語言型別

PHP和JavaScript都是指令碼語言。這與Java或C++等“純”程式語言相反。

指令碼語言傾向於解釋而不是編譯。這意味著它們是通過第三方而不是直接翻譯成機器程式碼的。這會影響它們的執行時間。

可以這樣想:假設您想將網頁從您的母語翻譯成納瓦霍語。如果您不懂納瓦霍語,則需要口譯員來幫助您,而且翻譯需要更多時間。

這就是為什麼編譯語言往往比解釋語言更快的原因。

變數型別

另一個共同點是PHP和JavaScript是弱型別的

這意味著當您使用任何一種語言建立變數時,您都不需要分配其資料型別:它是假定的。

因此,您可以在PHP中編寫以下內容:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$x = 'Hello world';
$y = 'Bonjour le monde';
$x = 'Hello world'; $y = 'Bonjour le monde';
$x = 'Hello world';

$y = 'Bonjour le monde';

或者在JavaScript中:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var x = 'Coding is fun';
let y = 'No, honestly';
var x = 'Coding is fun'; let y = 'No, honestly';
var x = 'Coding is fun';

let y = 'No, honestly';

在兩種語言中,這些變數都將被識別為字串(字符集)。

這與像Java這樣的強型別語言相反,在這種語言中,您必須在宣告時說明使用的變數型別:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
int x = 5;
int x = 5;
int x = 5;

PHP和JavaScript都是動態型別的:換句話說,您可以通過在程式碼中重新定義型別來輕鬆更改型別:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$x = 5;
$x = 5;
$x = 5;

在PHP中,$x 現在是一個整數。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
x = 3.14195;
x = 3.14195;
x = 3.14195;

在JavaScript中,x 現在是一個數字。

因為型別不是在PHP或JavaScript中明確定義的,所以您需要函式來告訴您正在使用的資料型別。

JavaScript有typeof函式可以做到這一點。

PHP有gettype函式來返回變數的型別。將gettype,一個新的,改進的版本get_debug_type,是部分PHP 8版本。

類和物件

PHP和JavaScript最初都不是物件導向的。隨著語言的發展,物件導向被新增到它們中。

2004年PHP 5提供了建立物件和類的能力。

JavaScript直到很久以後才使用物件或類。它們於2015年隨著ES6的引入而進入該語言。

是物件的通用分組。

一個物件是與實體屬性(特性)和方法(行為)。

遊戲龍與地下城(d&d)提供了一個很好的比喻。

一個玩家角色對應一個物件。每個角色都屬於一個角色類別,例如野蠻人、盜賊或巫師。

物件可以具有任意數量的您需要定義的屬性。

因此,角色的屬性可能包括:

  • 姓名
  • 種族
  • 能力(力量、智力、智慧、敏捷、體質和魅力)
  • 性格型別(例如大膽、膽小、好奇)
  • 陣營(守序,混亂,善良,邪惡)

您可以使用物件方法來檢索有關物件的資訊。

這是一個類和物件定義的PHP程式碼示例:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
class Sorcerer {
// Define properties
public $name;
public $race;
public $intelligence;
// Constructor function for the object
// takes 3 arguments, name, race and intelligence
function __construct($name, $race, $intelligence) {
$this->name = $name;
$this->race = $race;
$this->intelligence = $intelligence;
}
# Define object methods
// Get the name
function get_name() {
return $this->name;
}
// Get the race
function get_race() {
return $this->race;
}
// Get intelligence
function get_intelligence() {
return $this->intelligence;
}
} // end Sorcerer class
// Create a Sorcerer
$yensid = new Sorcerer("Yen Sid", "Human", 18);
# Output the object properties in the browser
echo $yensid->get_name();
echo "<br>";
echo $yensid->get_race();
echo "<br>";
echo 'Intelligence: ';
echo $yensid->get_intelligence();
?>
<?php class Sorcerer { // Define properties public $name; public $race; public $intelligence; // Constructor function for the object // takes 3 arguments, name, race and intelligence function __construct($name, $race, $intelligence) { $this->name = $name; $this->race = $race; $this->intelligence = $intelligence; } # Define object methods // Get the name function get_name() { return $this->name; } // Get the race function get_race() { return $this->race; } // Get intelligence function get_intelligence() { return $this->intelligence; } } // end Sorcerer class // Create a Sorcerer $yensid = new Sorcerer("Yen Sid", "Human", 18); # Output the object properties in the browser echo $yensid->get_name(); echo "<br>"; echo $yensid->get_race(); echo "<br>"; echo 'Intelligence: '; echo $yensid->get_intelligence(); ?>
<?php

class Sorcerer {

// Define properties

public $name;

public $race;

public $intelligence;

// Constructor function for the object

// takes 3 arguments, name, race and intelligence

function __construct($name, $race, $intelligence) {

$this->name = $name;

$this->race = $race;

$this->intelligence = $intelligence;

}

# Define object methods

// Get the name

function get_name() {

return $this->name;

}

// Get the race

function get_race() {

return $this->race;

}

// Get intelligence

function get_intelligence() {

return $this->intelligence;

}

} // end Sorcerer class

// Create a Sorcerer

$yensid = new Sorcerer("Yen Sid", "Human", 18);

# Output the object properties in the browser

echo $yensid->get_name();

echo "<br>";

echo $yensid->get_race();

echo "<br>";

echo 'Intelligence: ';

echo $yensid->get_intelligence();

?>

將此程式碼新增到HTML檔案後,瀏覽器中的輸出應如下所示:

  • 顏錫德
  • 人類
  • 智力:18

您還可以定義方法,這些方法是物件採取的或已對其執行的操作。

在D&D中,它們可能是:

  • surpriseAttack()
  • disarmTrap()
  • castSpell()
  • resistPoison()

在物件上執行方法時,結果可能取決於物件的屬性。因此,巫師的學徒物件將無法像經驗豐富的巫師物件那樣有效地施展法術。

市場需求

PHP和JavaScript的另一個共同點是對兩種語言的開發人員都有很高的需求。

使用JavaScript和PHP的開發人員也得到了很好的報酬。

在美國,他們的平均年收入約為80,000美元。

PHP開發人員薪水

PHP開發人員薪水,Glassdoor.com

JavaScript開發人員薪水

JavaScript開發人員薪水,Glassdoor.com

文件

對於PHP或JavaScript的新手來說,不太好的訊息是這兩種語言的官方文件都不是很人性化。它是為有經驗的開發人員而不是初學者編寫的。

您可以在此處檢視每種語言的文件:

JavaScript老師Chris Ferdinandi感嘆缺乏良好的JavaScript文件,稱這是他花了這麼長時間才掌握這門語言的原因之一。

此時,您可能想知道,“PHP與JavaScript之間有什麼區別?” 實際上,有幾個。

PHP與JavaScript之間有什麼區別?

接下來我們一起來看看這兩種程式語言之前的不同點有哪些?

  1. 伺服器端與客戶端指令碼
  2. 前端與後端
  3. 與其他語言的結合
  4. 區分大小寫
  5. 句法
  6. 變數和常量定義
  7. 陣列
  8. 資料庫整合
  9. 執行緒
  10. 速度
  11. 包管理器
  12. 網路使用

伺服器端與客戶端指令碼

PHP 是一種伺服器端指令碼語言。這意味著它在Web伺服器上執行,而不是在客戶端計算機上執行。

伺服器端程式設計對於向使用者提供動態內容(通常來自資料庫)非常有用,例如使用者登入時的歡迎訊息(Hi, Claire!)。

更嚴重的是,伺服器端指令碼用於電子商務。例如,有超過100個WooCommerce擴充套件程式通過API(應用程式程式設計介面)連線到不同的支付提供商以處理交易。

JavaScript是一種客戶端語言,因此它可以在使用者的​​膝上型電腦、手機或平板電腦上執行。

JavaScript可以操作代表文件物件模型的DOM,您可以將其視為由網頁的HTML形成的樹狀結構。

如果您曾經遇到過手風琴或切換開關,也許是作為常見問題外掛的一部分,您就會看到客戶端JavaScript的執行情況。當您單擊或點選問題時,JavaScript事件處理程式會開啟或關閉CSS顯示或可見性屬性,顯示或隱藏相關答案。

前端與後端

PHP執行在網站的後端——訪問者看不到的部分!在WordPress中,這意味著PHP在Web伺服器和WordPress管理員中完成所有工作。

JavaScript傳統上在前端執行,但在2009年啟動後端執行時Node.js時,情況發生了變化。今天,JavaScript是真正的全棧語言。

與其他語言的結合

PHP作為後端語言,它是LAMP堆疊(Linux、Apache、MySQL、PHP)的一部分。

PHP可以與HTML合併。您將通過檢查許多Web應用程式(包括 WordPress)的程式碼來了解這一點。

以下是來自2020主題index.php檔案的示例:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<header class="archive-header has-text-align-center header-footer-group">
<div class="archive-header-inner section-inner medium">
<?php if ( $archive_title ) { ?>
<h1 class="archive-title"><?php echo wp_kses_post( $archive_title ); ?></h1>
<?php } ?>
<?php if ( $archive_subtitle ) { ?>
<div class="archive-subtitle section-inner thin max-percentage intro-text"><?php echo wp_kses_post( wpautop( $archive_subtitle ) ); ?></div>
<?php } ?>
</div><!-- .archive-header-inner -->
</header><!-- .archive-header -->
<header class="archive-header has-text-align-center header-footer-group"> <div class="archive-header-inner section-inner medium"> <?php if ( $archive_title ) { ?> <h1 class="archive-title"><?php echo wp_kses_post( $archive_title ); ?></h1> <?php } ?> <?php if ( $archive_subtitle ) { ?> <div class="archive-subtitle section-inner thin max-percentage intro-text"><?php echo wp_kses_post( wpautop( $archive_subtitle ) ); ?></div> <?php } ?> </div><!-- .archive-header-inner --> </header><!-- .archive-header -->
<header class="archive-header has-text-align-center header-footer-group">

<div class="archive-header-inner section-inner medium">

<?php if ( $archive_title ) { ?>

<h1 class="archive-title"><?php echo wp_kses_post( $archive_title ); ?></h1>

<?php } ?>

<?php if ( $archive_subtitle ) { ?>

<div class="archive-subtitle section-inner thin max-percentage intro-text"><?php echo wp_kses_post( wpautop( $archive_subtitle ) ); ?></div>

<?php } ?>

</div><!-- .archive-header-inner -->

</header><!-- .archive-header -->

但是,如果您在Web應用程式中將PHP與其他後端語言混合使用,則很難維護它們。另外,您不僅要了解PHP,還必須學習並熟練掌握其他語言!

JavaScript開發人員在編寫程式碼時有更多的自由。他們可以將這種語言與HTML、XML和Ajax結合使用。

區分大小寫

區分大小寫是在語言中命名實體時區分大小寫字母。

PHP部分割槽分大小寫。大小寫對某些事情很重要,對其他事情不重要。

PHP變數區分大小寫的

因此,如果您在PHP中建立一個變數:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$dog = "chihuahua";
$dog = "chihuahua";
$dog = "chihuahua";

並嘗試稍後在您的程式碼中獲取$DOG的值,它將不起作用。

但是,PHP函式不區分大小寫

如果您在PHP中建立此函式:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
function dogFetch() {
// your code to run when the function is called
}
function dogFetch() { // your code to run when the function is called }
function dogFetch() {

// your code to run when the function is called

}

稍後在您的程式碼中呼叫DogFetch(),您的函式仍將執行。

然而,這不是好的編碼習慣,因為它不一致。

另一方面,JavaScript完全區分大小寫。因此,稱為 beagle、BEAGLE和Beagle的變數都將彼此不同。

句法

語法是管理語言的一組規則。這包括詞序、語法和標點符號。

在英語中,我們可能會說:

I ate my soup slowly.

但如果你是Yoda大師,你會說:

My soup slowly I ate.

為什麼?語法不同。同樣的話,不同的順序。

尤達語生成器

尤達語生成器

有些語言使用看起來相同的詞,但它們具有不同的含義。 Lui在法語中的意思是“him”在英語中的意思

Lui在法語中的意思是“him”在英語中的意思

Lui在義大利語中的意思是英語中的“he”

Lui在義大利語中的意思是英語中的“he”

如果我們使用錯誤的詞,人類會很寬容,但計算機卻是字面上的。如果我們在程式設計語法中犯了錯誤,計算機通常不知道我們的意思,這通常會導致錯誤。

在JavaScript和PHP中,對於單行程式碼註釋,它們都具有相同的雙正斜槓語法:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// This is a comment
// This is a comment
// This is a comment

但是PHP也有另一種形式的註釋語法:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# This is a comment
# This is a comment
# This is a comment

如果您嘗試在JavaScript中使用 PHP 註釋語法,則會出現錯誤:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# This is a Comment
Uncaught SyntaxError: private fields are not currently supported
# This is a Comment Uncaught SyntaxError: private fields are not currently supported
# This is a Comment

Uncaught SyntaxError: private fields are not currently supported

JavaScript未捕獲的語法錯誤

JavaScript未捕獲的語法錯誤

其他語法錯誤對於JavaScript和PHP都是常見的,例如:

  • 程式碼行末尾缺少分號 (;)。
  • 不為條件語句使用一對花括號 {}。

變數和常量定義

正如我們之前看到的,JavaScript和PHP有不同的宣告變數的方式。

他們也以不同的方式定義常量

JavaScript使用以下語法:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
const x = 6;
const x = 6;
const x = 6;

對於像這樣的簡單常量,其值以後無法更改。

而PHP對常量使用 define() 函式。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
define(name, value, case-insensitive)
define(name, value, case-insensitive)
define(name, value, case-insensitive)

按照慣例,PHP常量的樣式是大寫的。一個例子是:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
define('MONSTER', 'Sulley');
define('MONSTER', 'Sulley');
define('MONSTER', 'Sulley');

括號內的前兩個引數是不言自明的。

第三個不區分大小寫,預設值為false。只有當它設定為true時,常量才會不區分大小寫。

那是:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
define('MONSTER', 'Sulley', true);
define('MONSTER', 'Sulley', true);
define('MONSTER', 'Sulley', true);

陣列

陣列是可以儲存不止一件事的變數。

在PHP中,陣列是關聯陣列或有序對映。也就是說陣列中的項有相關的鍵值對。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
$array(
key => value,
key2 => value2,
...
)
<?php $array( key => value, key2 => value2, ... )
<?php

$array(

key => value,

key2 => value2,

...

)

下面是一個不太抽象的例子,其中鍵是名字,值是姓氏。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
$array = array(
"Frodo" => "Baggins",
"Sam" => "Gamgee",
"Merry" => "Brandybuck",
"Pippin" => "Took",
);
<?php $array = array( "Frodo" => "Baggins", "Sam" => "Gamgee", "Merry" => "Brandybuck", "Pippin" => "Took", );
<?php

$array = array(

"Frodo" => "Baggins",

"Sam" => "Gamgee",

"Merry" => "Brandybuck",

"Pippin" => "Took",

);

為方便使用,可以將PHP物件轉為陣列將陣列轉為物件

但是,JavaScript只能擁有帶有編號索引的陣列。例如:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var mountains = [
"Everest",
"Kilimanjaro",
"Fuji"
];
var mountains = [ "Everest", "Kilimanjaro", "Fuji" ];
var mountains = [

"Everest",

"Kilimanjaro",

"Fuji"

];

要檢索值,您必須引用 0開始的陣列索引。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var mountain = mountains[1];
var mountain = mountains[1];
var mountain = mountains[1];

JavaScript不支援帶有命名索引的關聯陣列。

資料庫整合

PHP可以出色地完成的一件事是連線到資料庫。PHP與MySQL或MariaDB整合得特別好,WordPress都使用這兩種方式。許多PHP框架還提供了簡單的資料庫整合。

使用資料庫可用於搜尋、排序和過濾資訊以呈現給使用者,例如線上商店中的產品。

從歷史上看,JavaScript不與資料庫整合,儘管這種情況已經開始發生變化。

PouchDB是JavaScript資料庫的一個例子。

PouchDB開源JavaScript資料庫

PouchDB開源JavaScript資料庫

執行緒

執行緒是指程式語言可以處理的指令。

PHP多執行緒的,這意味著它可以並行處理多條指令。

相反是一種單執行緒語言,如JavaScript,一次只能處理一個命令。

為了說明執行緒,開發人員Samim Yaquby使用了為客戶服務的咖啡店的類比。

對於只有一名咖啡師的小咖啡館,咖啡師可以更輕鬆、更高效地為顧客提供更簡單的訂單,一次一個。這類似於JavaScript的單執行緒。

相比之下,一家大型星巴克很可能有幾個咖啡師同時完成相同的訂單。這與PHP的多執行緒方法相呼應。

速度

一般來說,在相同的硬體上,JavaScript的執行速度比PHP快。但是,由於JavaScript在客戶端上執行,如果客戶端機器舊且執行緩慢,則會對執行時間產生連鎖反應。

自PHP 7釋出以來,PHP速度得到了突飛猛進的提升,這要歸功於新引擎,效能翻倍並改善了記憶體消耗。與PHP 5.6相比,PHP 7.0可以處理兩倍以上的請求,並且隨著每個7.x版本的釋出,效能進一步提高。

當您構建聊天機器人或遊戲等實時應用程式時,PHP也比JavaScript執行得更好。

帶有Just in Time Compiler的PHP 8的釋出有望使PHP更快。

包管理器

每種語言都有自己的包管理器來管理包:為專案新增額外功能的第三方可重用程式碼模組。一些包依賴於其他包執行,因此它們被稱為依賴項

PHP有兩個包管理器,PEAR和Composer,它們可以在Packagist儲存庫中下載PHP包。

JavaScript有幾個著名的包管理器,包括npmYarnBower

JavaScript包管理器

JavaScript包管理器

其中,npm最受歡迎,全球有超過1100萬開發人員在使用它。

網路使用

PHP是當今網路上最常用的伺服器端語言,在近80%的網站使用它的情況下輕鬆擊敗了它的競爭對手。

W3Techs伺服器端程式語言

W3Techs伺服器端程式語言

 

雖然PHP非常流行,但JavaScript在網站上幾乎無處不在,97%的網站都在使用它。

W3Techs客戶端程式語言

W3Techs客戶端程式語言

PHP用於什麼?

PHP具有廣泛的用途。

它可能以建立動態網頁而聞名。根據BuiltWith的說法,PHP被超過3400萬個網站使用,它為網路上一些最著名和收入最高的網站提供支援,包括Nike、Salesforce和Walmart。

使用PHP的網站估計銷售額超過100萬美元

使用PHP的網站估計銷售額超過100萬美元

如果您的專案需要使用者的安全身份驗證,PHP是一個完美的選擇。這包括cookie和會話處理、使用者名稱和密碼身份驗證以及兩因子身份驗證

如前所述,PHP非常適合處理資料庫,因為它可以與範圍廣泛的資料庫互動。它還具有用於處理使用者輸入的內建資料安全性,以防範SQL隱碼攻擊等威脅。

PHP還常用於構建即時訊息等實時應用程式。

最後,即使您在前端完成大部分工作,您也需要一個伺服器後端。PHP 是一個理想的選擇,因為它就是為此而建立的。

JavaScript用於什麼?

JavaScript變得如此流行,以至於可能正確的問題是“ JavaScript不用於什麼?”

除了網站和Web應用程式之外,JavaScript還用於構建以下所有內容:

  • 移動應用
  • 網路伺服器
  • 遊戲
  • 幻燈片
  • 聊天機器人
  • ……甚至可程式設計無人機

Super Chrono Portal Maker-一個HTML5和JavaScript遊戲

Super Chrono Portal Maker,一個HTML5和JavaScript遊戲

JavaScript可以與PHP一起使用嗎?

答案是肯定的,絕對的。

一個常見的例子是Web表單,在將使用者輸入儲存到資料庫之前驗證使用者輸入很有用。

您可以使用JavaScript進行客戶端驗證,例如檢查電子郵件的格式是否正確。之後,您可以使用PHP進行伺服器端驗證,例如檢查電子郵件是否存在於您的資料庫中。

WordPress如何使用JavaScript和PHP

傳統上,WordPress使用了這兩種語言,但PHP比JavaScript多得多。隨著Gutenberg編輯器的推出,這種情況開始發生變化。

2015年在美國WordCamp上Matt Mullenweg的State of the Word中,他通過敦促觀眾瞭解JavaScript將變得多麼重要

“深入學習JavaScript。”

就目前情況而言,以下是兩種語言在WordPress中的使用方式。

PHP用於主題模板檔案、迴圈、身份驗證、驗證和資料庫訪問。

JavaScript為主題和外掛互動性、客戶端驗證和事件處理提供支援。最值得注意的是,區塊開發需要一些JavaScript知識,因為塊依賴於React JS 框架。

學習PHP與JavaScript

因為它們相當容易學習,所以您沒有理由不能同時學習PHP和JavaScript

這兩種語言依賴於某些程式設計基礎,例如變數、迴圈、條件語句、作用域和物件。

因為它是如此成熟和流行的語言,所以很容易學習PHP。

由於PHP是一種伺服器端語言,您需要一個伺服器來編寫程式碼。那可能是一個真正的 Web 伺服器,也可能是一個模擬伺服器,例如本地開發環境。一些示例是XAMPP、WAMP或MAMP。

通過在瀏覽器控制檯中練習,您可以輕鬆地開始學習JavaScript。

在Chrome瀏覽器上,您可以通過Windows上的 Control+Shift+J 快捷方式或Mac上的 Command+Option+J 來訪問控制檯。

Chrome的JavaScript控制檯中的一個簡單的Hello World程式

Chrome的JavaScript控制檯中的一個簡單的Hello World程式

JavaScript變得更難掌握的地方在於其生態系統的龐大規模。

JavaScript語言已經從普通的JavaScript擴充套件到了大量的框架。Angular、Vue、jQuery和React只是現在存在的眾多工具中的一部分。

一些JavaScript框架

一些JavaScript框架

對於初學者來說,一個很好的資源來自他們JavaScript文件中的MDN Web Docs 。

克里斯·費迪南迪 (Chris Ferdinandi) 以教授普通 JavaScript 的人而聞名,他說JavaScript只有在他學習了jQuery之後才真正吸引了他。

他對JS新手的建議是:

“不要糾結於學習的順序。不要浪費時間去挑選完美的東西,因為沒有完美的東西。”

在不瞭解HTML和CSS的基礎知識的情況下,只需注意JavaScript框架的閃亮物件綜合症。HTML是Web上一切事物的基礎,如果過於熱心的JavaScript開發人員對其處理不當,它可能會真正崩潰。

PHP與JavaScript-比較表

PHP JavaScript
伺服器端指令碼 客戶端指令碼
後臺使用 在前端使用(現在使用Node.js全棧)
僅與HTML結合 結合多種語言
部分割槽分大小寫 完全區分大小寫
語法差異,例如#允許註釋 語法差異,例如#不允許註釋
用$字首宣告的變數 用var或let關鍵字宣告的變數
有關聯陣列 沒有關聯陣列
與許多資料庫整合 資料庫支援不佳或不存在
多執行緒 單執行緒
PHP 7.0或以上版本快 通常比PHP快
使用PEAR和Composer包管理器 使用npm、Yarn和Bower包管理器
如果PHP版本>7.x執行速度快 一般比PHP快
在大約80%的網站上使用 在幾乎所有網站上使用

小結

在深入探討PHP與JavaScript的過程中,沒有真正的贏家。他們都有自己的優點和缺點。

PHP穩定可靠,而JavaScript已成為該領域的酷孩子。但這並不意味著一個比另一個更好。

無論您為下一個專案選擇哪個 – 可能兩者兼而有之!— 如果您花時間瞭解該語言,您可以確定您將構建一個讓使用者滿意的網站或應用程式。

評論留言