簡(jiǎn)單解釋14個(gè)基本JavaScript概念
基礎(chǔ)速覽
大家好! 對(duì)于今天的帖子,我決定對(duì)JavaScript的基礎(chǔ)知識(shí)做一個(gè)簡(jiǎn)要的介紹。 它是針對(duì)初學(xué)者而設(shè)計(jì)的,基本上總結(jié)了主要的基本概念,而您無(wú)需花費(fèi)大量時(shí)間閱讀所有內(nèi)容。
關(guān)鍵是為您提供一切要點(diǎn),并讓您更快上手。 絕對(duì)不是完整的指南。 這只是我正在構(gòu)建的全局圖的一部分。
另外,它也可以用作快速入門的參考指南。 咬合大小的說(shuō)明如下。 希望你喜歡!
1. 代碼結(jié)構(gòu)
簡(jiǎn)單來(lái)說(shuō),JavaScript由一系列語(yǔ)句和分號(hào)組成。
語(yǔ)句就像一個(gè)句子,但使用代碼。
例如,這是一條語(yǔ)句:
- alert('Say hi');
分號(hào)不是強(qiáng)制性的,并且在兩者之間存在物理?yè)Q行符時(shí)可以執(zhí)行分號(hào)。 這等于句號(hào)。
但有時(shí),換行符不能保證該語(yǔ)句已完成。 使用+號(hào)可以充當(dāng)線之間的連接器。
例如:
- console.log('This ' + name + ' is gibrish');
2. "use strict"
長(zhǎng)期以來(lái),JavaScript不必?fù)?dān)心向后兼容性。 為什么? 因?yàn)楣δ艿陌l(fā)布從未重疊-直到重疊為止。
2009年,ECMAScript 5(ES5)發(fā)布,新功能修改了一些現(xiàn)有功能。 默認(rèn)情況下,除非使用" use strict"啟用修改,否則不會(huì)應(yīng)用修改
必須在JavaScript代碼的頂部放置"嚴(yán)格使用",否則將無(wú)法應(yīng)用。
如今,請(qǐng)始終"use strict",因?yàn)槲覀儾幌胧褂肑avaScript的較早實(shí)現(xiàn)。
3. 變量
變量是信息的占位符。 可以將其視為存儲(chǔ)數(shù)據(jù)的存儲(chǔ)桶。
使用關(guān)鍵字let聲明變量并為其命名。
這將初始化它。 您可以使用=為其分配值
如果您未為其分配任何內(nèi)容,則默認(rèn)設(shè)置為未定義-這表示已初始化,但存儲(chǔ)桶中絕對(duì)沒(méi)有任何內(nèi)容。 簡(jiǎn)而言之,它只是意味著它從未被設(shè)置過(guò)。
這不同于null,使用null,開(kāi)發(fā)人員必須手動(dòng)分配它。 在某種程度上,它實(shí)際上是在承認(rèn)您的代碼已故意確保存儲(chǔ)桶為空,而您只是沒(méi)有忘記填充它,或者在此過(guò)程中出現(xiàn)了問(wèn)題。
在較早的腳本中,使用var。 它們的行為方式會(huì)影響最終輸出。 我有點(diǎn)在這里寫過(guò)。 如果您有興趣,請(qǐng)隨時(shí)查看。
4. 數(shù)據(jù)類型
與其他語(yǔ)言相比,JavaScript中的數(shù)據(jù)類型并不多。 以下是綜合列表及其含義:
(1) 數(shù)
- let someNumber = 2984;
- someNumber = 29.84;
數(shù)字沒(méi)有"引號(hào)"。 只是普通的舊直數(shù)。 您可以同時(shí)處理整數(shù)和浮點(diǎn)數(shù)。 基本運(yùn)算符處理數(shù)字。
還有一個(gè)特殊的無(wú)窮大數(shù)。 您只需要做1/0-因此,一除以零。 該值被認(rèn)為是有史以來(lái)最大的數(shù)字,不能視為較小的結(jié)果。
如果您得到NaN,則表示您遇到了計(jì)算錯(cuò)誤。 這也意味著您要對(duì)沒(méi)有意義的數(shù)學(xué)運(yùn)算進(jìn)行操作,例如將字符串文本除以數(shù)字。
(2) 大整數(shù)
在JavaScript中,它可以執(zhí)行的最大數(shù)字約為16位數(shù)字。 在大多數(shù)情況下,我們的應(yīng)用程序可以生存的數(shù)字少于16位。 但是,有時(shí)我們可能會(huì)需要很大的數(shù)字來(lái)使用它,例如密碼學(xué)。
通過(guò)在數(shù)字末尾添加n來(lái)創(chuàng)建BigInt。
- const someMassiveNumber = 1234567890123456789012345678901234567890n;
(3) 串
字符串是文本變量,用引號(hào)引起來(lái)。 您可以使用3種類型的引號(hào)-"單引號(hào)","雙引號(hào)"和"反勾號(hào)"
雙重和單一在JavaScript中沒(méi)有區(qū)別。 反引號(hào)更多地用于擴(kuò)展字符串的功能,并用于使用$ {}嵌入變量。
例如:
- let cat = "Tibbers";console.log( `Hi, ${cat}` );
如果您在上面的示例中使用了引號(hào),它將變成普通字符串。
(4) 布爾型
將打印出正確或錯(cuò)誤
這通常是某種比較的結(jié)果。
(5) 空值
它只是意味著"沒(méi)有"。 您不會(huì)在其他語(yǔ)言中看到的空指針內(nèi)容。
(6) 未定義
未定義只是表示尚未分配值。 沒(méi)有什么花哨。
(7) 對(duì)象
其他類型的數(shù)據(jù)類型很簡(jiǎn)單,因此稱為原語(yǔ)。 對(duì)象是使您可以為其設(shè)置多個(gè)項(xiàng)目的事物。
5. 類型轉(zhuǎn)換
有時(shí),無(wú)論出于何種原因,您都需要在不同類型之間切換。 這是您的操作方式。
- let someFakeBoolean = true;
- someFakeBoolean = String(someFakeBoolean);
- //using String() will convert your variable into a stringlet someFakeNumber = "3872";
- someFakeNumber = Number(someFakeNumber);
- //using Number() will convert your string into a number
請(qǐng)注意,將隨機(jī)文本轉(zhuǎn)換為數(shù)字是行不通的,通常這樣做沒(méi)有任何意義。 您將以NaN結(jié)尾
Boolean()會(huì)將任何值轉(zhuǎn)換為true或false輸出。 任何"空"(例如0,null,undefined和NaN)都將返回false。 其他一切都會(huì)返回true
6. Operator
這些運(yùn)算符不是特定于JavaScript的,大多數(shù)編程語(yǔ)言通常都以相同的方式來(lái)支持它們。 這是清單:
- AND (&) OR (|) XOR (^) NOT (~) LEFT SHIFT (<<) RIGHT SHIFT (>>) ZERO-FILL RIGHT SHIFT (>>>)
使用這些運(yùn)算符時(shí),只需大聲說(shuō)出它們,然后它們基本上會(huì)執(zhí)行您的要求。
例如:
- printLine(line, id){
- if(line & id){ //if both exists, run this code
- }
- }
7. 比較
考慮一下數(shù)學(xué)比較。 這就是這些:
- 大于/小于:a> b,a
- 大于/小于或等于:a> = b,a <= b。
- 等于:a == b(單=號(hào)是賦值而不是比較器)。
- 不等于。 a!= b。
8. 提醒,提示,確認(rèn)
這些是彈出"彈出"的彈出窗口
- alert(yourMessageHere);
提示有兩個(gè)參數(shù)-問(wèn)題和答案。
- let promptpromptMe = prompt('your question here', ['blue pill', 'red pill']);alert(`You've taken the ${promptMe}`);
確認(rèn)表示您需要單擊接受按鈕以使代碼返回true。
- let isOver18 = confirm("Are you over 18?");alert( isOver18 ); // true if OK is pressed
9. 有條件的
曾經(jīng)如此著名的if語(yǔ)句是開(kāi)始JavaScript項(xiàng)目的骨干。 這個(gè)想法很簡(jiǎn)單,如果滿足條件,請(qǐng)運(yùn)行代碼。
看起來(lái)是這樣的:
- if (true) alert('woot!');
條件始終返回布爾值作為最終結(jié)果。 因此,您可以在其中進(jìn)行數(shù)學(xué)比較,檢查以及您想要的其他任何內(nèi)容,只要它的計(jì)算結(jié)果為布爾值即可。
除了if語(yǔ)句外,還有if和else
else if用另一個(gè)if語(yǔ)句擴(kuò)展它。 否則僅以catch各種子句結(jié)尾。
看起來(lái)是這樣的:
- if(false){
- //this code won't run because it returned false
- } else if(false){
- //this also won't run
- } else if(false){
- //still nope
- } else {
- //final catch all
- }
10. 循環(huán)
可以將其視為重復(fù)的if語(yǔ)句,而不必每次都手動(dòng)寫出相同的內(nèi)容或進(jìn)行多次調(diào)用使其運(yùn)行。
它具有條件,并且僅在條件返回false時(shí)才停止運(yùn)行代碼
- let i = 0;
- while(condition){
- //some code here
- //don't forget to set your exit clause by modifying the condition to return false. Most people just use i++
- }
" do…while"循環(huán)將其語(yǔ)法顛倒過(guò)來(lái),并在運(yùn)行代碼后檢查條件。 為什么? 因?yàn)橛袝r(shí)您只需要至少運(yùn)行一次代碼即可。
看起來(lái)是這樣的:
- do {
- //some code here
- } while(condition);
11. 切換語(yǔ)句
Switch語(yǔ)句基本上使您能夠編寫選項(xiàng)。
看起來(lái)是這樣的:
- switch(yourValueHere){
- case 'optionOne' :
- //your code here
- break;
- case 'optionTwo':
- //your code here
- break;
- case 'optionThree':
- //your code here
- break;
- default:
- //your fallback code here
- }
您還可以對(duì)案例進(jìn)行分組,這樣您就不必多次編寫相同的輸出。
- switch(yourValueHere){
- case 'optionOne' :
- case 'optionTwo':
- //your code here
- break;
- case 'optionThree':
- //your code here
- break;
- default:
- //your fallback code here
- }
12. 函數(shù)
功能就像JavaScript應(yīng)用程序,庫(kù),框架和任何以腳本語(yǔ)言編寫的"程序"的構(gòu)造塊。
我們之前已經(jīng)遇到過(guò)一些內(nèi)置函數(shù),例如alert()和hint()
您可以這樣編寫自己的函數(shù):
- function functionNameHere(){
- //your code here
- }
然后,您只需使用函數(shù)名稱進(jìn)行調(diào)用即可:
- functionNameHere();
13. 函數(shù)表達(dá)式
編寫函數(shù)的方法不止一種。 您可以通過(guò)以下幾種方式編寫它:
- function yourFunctionName(){
- // some code here
- }
- let anotherFunction = function(){}
14. 箭頭函數(shù)
箭頭函數(shù)只是使編寫函數(shù)更短的語(yǔ)法。 看起來(lái)是這樣的:
- let functionNameHere = (argumentsHere) => //do something
箭頭功能通常位于一行上,但是在卷曲{}的幫助下,可能會(huì)出現(xiàn)多行
看起來(lái)是這樣的:
- let cat = () => {
- //this is
- //a multi-line
- //example
- return someValue;
- //is required. Can just be a straight return;
- }
當(dāng)使用帶有箭頭函數(shù)的curl {}時(shí),還需要使用return退出它。