JavaScrip 前端/后臺(tái)開發(fā)人員必須要掌握的編程技能
在每年最受歡迎的編程語言排行榜中,javascript一直處于領(lǐng)先地位,而2021年,它依然會(huì)是最受歡迎的編程語言。
作為最受歡迎的語言,javascript受到了前后端開發(fā)人員的喜愛,它不僅可以作為前端框架來使用,而且它還可以被用于后端服務(wù),人們經(jīng)常聽到的一句話就是,能用javascript解決的問題,最后都會(huì)用javascript來解決。今天我們就來簡單介紹一下JavaScript這門前端后臺(tái)都愛的編程語言。
JavaScript是一門前端/后臺(tái)開發(fā)編程語言,但凡是編程語言,其在基本語法上都是大同小異的。
一、js中的運(yùn)算符
1、算術(shù)運(yùn)算符
比如加減乘除,取模,自增自減這些,和Java都是一樣的。
但js中的運(yùn)算也有和Java的不同之處;
變量之間的運(yùn)算
在js中,不同數(shù)據(jù)類型之間的變量也能參與運(yùn)算。
100和true相加結(jié)果竟然是101,這個(gè)在Java中會(huì)直接報(bào)錯(cuò)的,因?yàn)椴淮_定結(jié)果是什么數(shù)據(jù)類型。
所以在js中,true參與運(yùn)算時(shí)就相當(dāng)于數(shù)字1,同理false就相當(dāng)于數(shù)字0,null也是相當(dāng)于數(shù)字0
undefined類型參與運(yùn)算
變量c沒有定義,所以是未定義類型,當(dāng)其參與運(yùn)算時(shí)得到的結(jié)果為NaN。
未定義類型和非字符串任意類型運(yùn)算時(shí),得到的結(jié)果都是NaN。
NaN,全稱not a number,也就是不是一個(gè)數(shù)字。
string類型參與運(yùn)算
這個(gè)和Java中倒是一樣,任意類型和string類型相加時(shí),結(jié)果都是拼接。
但是String在Java里面是引用數(shù)據(jù)類型,而在js里面是基本(原始)數(shù)據(jù)類型。
2、邏輯運(yùn)算
關(guān)于邏輯運(yùn)算符:與(&&)、或(||)、非(?。┖蚃ava中是一樣的。
但在js中的邏輯判斷與Java有些不同:
布爾表達(dá)式
這個(gè)也就和Java中一樣,邏輯判斷為true時(shí)結(jié)果為真,邏輯判斷為false時(shí)結(jié)果為假。
數(shù)字作為布爾表達(dá)式
在js里面,數(shù)字也有自己的邏輯判斷:
當(dāng)數(shù)字不為0時(shí),邏輯判斷為true;
當(dāng)數(shù)字為0時(shí),邏輯判斷為false。
字符串作為布爾表達(dá)式
當(dāng)字符串不為空時(shí),邏輯判斷為true;
當(dāng)字符串為空時(shí),邏輯判斷為false。
此外,未定義數(shù)據(jù)類型邏輯判斷也為false,在算術(shù)運(yùn)算中的NaN作為邏輯判斷時(shí)也為false。
3、比較運(yùn)算符
其中js中的賦值運(yùn)算符(=、+=、-=、*=、/=、%=)和Java中一樣。
比較運(yùn)算符(==、!=、=)也和Java中一樣,但js有兩個(gè)個(gè)特殊的比較運(yùn)算符:
字符串與數(shù)字比較
在js中,字符串也能參與比較,會(huì)先將其轉(zhuǎn)換成數(shù)字再進(jìn)行比較。
==,等于,比較的是值是否相等。
===,恒等于,比較的是值和類型均相等。
null與未定義比較
同樣的道理,它們的值相等,都為null,但是類型不一樣,所以不恒等于。
4、三目運(yùn)算符
也就是Java中的三元運(yùn)算符。
二、js中的函數(shù)
1、函數(shù)定義
js中的函數(shù)其實(shí)也就是Java中的方法。
Java中的方法
做一個(gè)回顧,Java方法格式:修飾符+返回值+方法名+(參數(shù)列表)+;
其中參數(shù)列表中要明確數(shù)據(jù)類型。
js中的函數(shù)
js函數(shù)格式:fuction+方法名(參數(shù)列表){};
js中不僅沒有修飾符,連返回值都沒有,并且參數(shù)列表的數(shù)據(jù)類型不用明確。
由此可以看出:js的語法相對于Java而言較為隨意,不像Java那么嚴(yán)謹(jǐn),但確實(shí)簡便了很多,方便學(xué)習(xí)。
2、實(shí)參和形參
實(shí)參:調(diào)用函數(shù)時(shí)的參數(shù)(傳入的具體數(shù)值)。
形參:定義函數(shù)時(shí)的參數(shù)(自定義的變量)。
Java中形參與實(shí)參要明確保證一致(數(shù)量、數(shù)據(jù)類型都要保證一致)
但是js中可以不一致,我們逐一分析:
實(shí)參與形參數(shù)量不一致
實(shí)參與形參的關(guān)系相當(dāng)于將實(shí)參的值賦給形參。
當(dāng)實(shí)參比形參要少時(shí):a=1;b=2,但是c未定義。
在js中任何數(shù)據(jù)與未定義的變量相加都是NaN。
當(dāng)實(shí)參和形參一樣或者多時(shí),結(jié)果沒有影響,多的實(shí)參不參與運(yùn)算即可。
形參和方法體中的變量不一致
如果方法體中的變量要少,有幾個(gè)就用幾個(gè)。
如果方法體中的變量要多,多了一個(gè)形參中沒有的變量d,則無法運(yùn)行。
這個(gè)Java中倒是有一定的相似之處。
3、參數(shù)arguments
事實(shí)上在js中有一個(gè)專門的數(shù)組arguments,用來接收調(diào)用時(shí)的實(shí)際參數(shù):
js中的數(shù)組是可變的,所以可以使用這種方式來接受,當(dāng)然也可以使用for循環(huán)來處理。
不過要注意的是,js中可沒有增強(qiáng)for循環(huán)。
老實(shí)說,對于arguments這個(gè)概念,其實(shí)也就相當(dāng)于是實(shí)際參數(shù),知道在js中有它的存在即可。
我個(gè)人對于實(shí)參和形參的理解,就是將實(shí)參賦值給形參再參與運(yùn)算,這樣方便記憶也好理解。
4、返回值和方法重載
返回值
js在定義函數(shù)時(shí)是不用說明返回值的,如果有返回值,直接return即可。
方法(函數(shù))重載
在Java中是有方法重載(同名不同參)
但是在js中是沒有方法重載的。
這也好理解,在Java中參數(shù)類型不同,個(gè)數(shù)不同即代表不同的參數(shù)。
但是在js中參數(shù)類型都沒有明確定義,所以也沒法區(qū)分參數(shù)不同,并且實(shí)參個(gè)數(shù)與形參個(gè)數(shù)沒有關(guān)系。
其中,js代碼是從上到下執(zhí)行的,同名函數(shù),后面的函數(shù)會(huì)覆蓋前面的函數(shù)。
5、局部變量和全局變量
函數(shù)內(nèi)測試局部變量
函數(shù)內(nèi)部,局部變量和全局變量都可以訪問。
函數(shù)外測試全局變量
在函數(shù)外部,局部變量是不能被訪問的,但是全局變量可以訪問。
另一個(gè)script標(biāo)簽
和函數(shù)外部一樣的道理,通過我們可以得出結(jié)論:變量c是一個(gè)全局變量。
事實(shí)上,當(dāng)局部變量省略了var的時(shí)候,會(huì)變成全局變量。
也就是說實(shí)際上變量c省略了var,就相當(dāng)于默認(rèn)在外部定義了var c,再在函數(shù)內(nèi)賦值。
當(dāng)然其前提是該變量沒有在函數(shù)內(nèi)被定義,如果變量c在函數(shù)內(nèi)定義過了,那它就是個(gè)局部變量。

本文鏈接:http://jmtianhui.com/news/details-12-699.html
版權(quán)聲明:
1:本站所有內(nèi)容均由互聯(lián)網(wǎng)收集整理、上傳,并且以計(jì)算機(jī)技術(shù)研究交流為目的,僅供大家參考、學(xué)習(xí),不存在任何商業(yè)目的與商業(yè)用途,如描述有誤或者學(xué)術(shù)不對之處歡迎及時(shí)提出,不甚感謝。
2、 如涉及版權(quán)問題,請聯(lián)系我們4724325@qq.com第一時(shí)間處理;
我們從以下三個(gè)方面,對比純靜態(tài)和偽靜態(tài)兩種靜態(tài)頁面生成方式,逐一展開分析。
用JS的正則表達(dá)式如何判斷輸入框內(nèi)為中文或者是英文數(shù)字,或者是三者混編
css制作扇形
純CSS3文字Loading動(dòng)畫特效
PhpStorm 2022.1 EAP 3 在 PHPDoc 和屬性中添加了對多行和嵌套數(shù)組形狀的完全支持:在這種情況下,可以使用數(shù)組形狀注釋定義數(shù)組結(jié)構(gòu),以獲得鍵的代碼補(bǔ)全并推斷值的類型。
PHP作為Web界第一大語言近年來熱度不夠,但是這幾年的進(jìn)步和成長卻沒有中斷。在2022伊始,我們來一起學(xué)習(xí)一下目前PHP的現(xiàn)狀以及最新版本帶來的特性。
Linux程序前臺(tái)后臺(tái)切換:在Linux終端運(yùn)行命令的時(shí)候,在命令末尾加上 & 符號(hào),就可以讓程序在后臺(tái)運(yùn)行Ubuntu$">root@Ubuntu$ ./tcpserv01 &
Python 的正則表達(dá)式支持 多行模式,將每行文字分別匹配。然而各種操作系統(tǒng)里,換行符的表示法各不相同,會(huì)導(dǎo)致 Python 不能正確使用多行模式。