主頁 > 軟體設計 > ?JavaScript系列6部曲:語法篇(萬字長文)?

?JavaScript系列6部曲:語法篇(萬字長文)?

2021-08-10 08:13:19 軟體設計

🎈 作者:不吃西紅柿

🎈 簡介:CSDN博客專家🏆、藍橋簽約作者、Python領域優質創作者、資訊技術智庫公眾號創建者?,技術交流、面試刷題盡管關注咨詢我,

熱門專欄推薦:

🥇 知識集錦專欄:大資料生態硬核學習資料 & 面試真題集錦
🥈 資料倉庫專欄:數倉發展史、建設方法論、實戰經驗、面試真題
🥉 Python專欄:Python相關黑科技:爬蟲、演算法、小工具

(優質好文持續更新中……)?

創作不易,點贊👍 關注💪 鼓勵「不吃西紅柿」吧~

CSDN私信回復「資料」驚喜等你!!


目錄

01 JavaScript (簡稱:js)

02 運算子

03 JS變數

04 JS變數作用

05 JS變數的交換

06 注釋

07 JS的資料型別

08 JS的數字型別

09 進制

10 NaN

11 型別轉換

12 JS基本的代碼規范


01 JavaScript (簡稱:js)

js分三個部分:

  • ECMAScript 標準----js的基本的語法

  • DOM------Document Object Model 檔案物件模型

  • BOM------Browser Object Model 瀏覽器物件模

JavaScript是什么?

  • 是一門腳本語言(不需要編譯,直接執行,常見的腳本語言:t-sql,cmd)

  • 是一門解釋性語言

  • 是一門動態型別的語言

  • 是一門基于物件的語言

?

注意:

1.編譯語言是需要把代碼翻譯成計算機所認知的二進制語言,才能夠執行

2.前端基礎是HTML(標記語言,展示資料的)、CSS(美化頁面)、

JavaScript(用戶和瀏覽器互動)這三大塊,

js原名不是JavaScript,而是LiveScript

js的作用?解決用戶和瀏覽器之間的互動的問題

js的代碼可以分三個地方寫:

1.在html的檔案中,script的標簽中寫js代碼

2.js代碼可以在html的標簽中寫

<script> //js代碼    alert("好好學習,天天向上"); //在頁面中彈出對話框   </script> <input type="button" value="按鈕" onclick="alert('被點了');"/> 

3.在js檔案中可以寫js代碼,但是需要在html的頁面中引入 script的標簽中的src="js的路徑"

02 運算子

運算子:一些符號-----用來計算

  • 算數運算子: + - * / %

  • 算數運算運算式:由算數運算子連接起來的運算式

  • 一元運算子: 這個運算子只需要一個運算元就可以運算的符號 ++ –

  • 二元運算子: 這個運算子需要兩個運算元就可以運算,

  • 三元運算子: 條件運算式?運算式1:運算式2

  • 復合運算子: += -= *= /= %=

  • 復合運算運算式:由復合運算子連接起來的運算式

 var num=10;  num+=10;------>就是:num=num+10;  console.log(num);20 

賦值運算子: =

關系運算子:

  • > < >= <=

  • ==不嚴格的

  • ===嚴格的

  • !=不嚴格的不等

  • !==嚴格的不等

關系運算運算式:由關系運算子連接起來的運算式

關系運算運算式的結果是布爾型別

邏輯運算子:

  • &&—邏輯與–并且

  • ||—邏輯或—或者

  • !—邏輯非—取反–取非

邏輯運算運算式:由邏輯運算子連接起來的運算式

  • 運算式1&&運算式2

如果有一個為false,整個的結果就是false

  • 運算式1||運算式2

如果有一個為true,整個的結果為true

  • !運算式1

運算式1的結果是true,整個結果為false

運算式1的結果是false,整個結果為true

var num1=10; var num2=20; ?console.log(num1==num2&&5>6 )var num=20; console.log(num>10||5<0 )var flag=false; console.log(!flag )var num=10; var sum=(num+10)*5; console.log(sum var result = (4 >= 6 || '人' != '狗' && !(12 * 2 == 144) && true) ;console.log(result);var num = 10; var result2 =( 5 == num / 2 && (2 + 2 * num).toString() === '22') ;console.log(result2); ?var num=20; var result=num/3;//num變數與3取余--->10/3的余數 console.log(parseInt(result) var num=20; var result=num%3;//num變數與3取余--->10/3的余數 console.log(result )var num=10; var sum=(num+10)+1 var num = 20;        num %= 5; //    num=num-5; console.log(num )var str="5"; var num=5;console.log(str===num )console.log(5>10);//false console.log(5>=5);//true console.log(5>3);//true console.log(5==10);//false

03 JS變數

變數名的注意問題—變數名的命名:

1.要遵循駝峰命名法(第一個單詞的首字母是小寫的,后面的所有的單詞的首字母都是大寫的)

2.變數名要有意義

3.變數名要規范

4.不能使用關鍵字(系統自帶的一些單詞,不能使用)

宣告變數并初始化—變數的初始化----宣告變數賦值

宣告了一個num的變數存盤了一個數字100

 var num=110;

輸出這個變數的值

 alert(num);//彈框

瀏覽器的控制臺在瀏覽器中的開發人員工具中(快捷鍵:F12)的console的選項中

console.log(num);//把內容輸出在瀏覽器的控制臺中

宣告多個變數然后一個一個的賦值

var num1,num2,num3;//宣告  //依次的賦值num1=10;   num2=20;   num3=30;

宣告多個變數并且賦值

var num1=10,num2=20,num3=30; var num=10;var $break=10;var shuZi=10;

注意:操作的資料都是在記憶體中操作

js中存盤資料使用變數的方式(名字,值—>資料)

js中宣告變數都用var---->存盤資料,資料應該有對應的資料型別

js中的字串型別的值都用雙引號或者單引號

04 JS變數作用

變數的作用是存盤資料的或者是操作資料

變數宣告(有var 有變數名字,沒有值)

變數初始化(有var 有變數名字,有值)

變數宣告的方式:

var 變數名字;

var number;//變數的宣告,此時是沒有賦值的, //一次性宣告多個變數    var x,y,z,k,j;//都是宣告,沒有賦值 //變數的初始化(變數宣告的同時并且賦值了)//   = 的意義:賦值的含義//存盤一個數字10var number = 10; //存盤一個5var number2 = 5; //存盤一個人的名字var name = "小黑"; //存盤真(true)var flag = true; //存盤一個null--->相當于是空var nll = null; //存盤一個物件    var obj = new Object();

05 JS變數的交換

使用第三方的變數進行交換

var num1=10; var num2=20;   // 把num1這個變數的值取出來放在temp變數中var temp=num1; //  把num2這個變數的值取出來放在num1變數中   num1=num2; //  把temp變數的值取出來放在num2變數中   num2=temp;console.log(num1);//20 console.log(num2);//10

第二種方式交換:一般適用于數字的交換

var num1 = 10;  var num2 = 20; // 把num1的變數中的值和num2變數中的值,取出來相加,重新賦值給num1這個變數        num1 = num1 + num2;//30    // num1變數的值和num2變數的值取出來,相減的結果重新賦值給num2        num2 = num1 - num2;//10 //   num1變數的值和num2變數的值取出來,相減的結果重新賦值給num1        num1 = num1 - num2;//20console.log(num1, num2);?

注意;變數的名字是不能重名,因為后面的會覆寫 前面的

var num1=10; var num1=20; console.log(num1);

擴展的變數的交換:只需要看代碼,不需要理解(位運算)

var num1 = 10;  var num2 = 20;  num1 = num1 ^ num2;  num2 = num1 ^ num2;  num1 = num1 ^ num2;  console.log(num1, num2);

06 注釋

注釋的方式:

1.單行注釋 //

2.多行注釋 /★★/

//單行注釋:一般用在一行代碼的上面

/多行注釋:一般是用在函式或者是一段代碼的上面/

//注釋后的代碼不執行了?//console.log("哈哈,我又變漂亮了"); //console.log("第二行"); //宣告變數并初始化//    var num=10;

07 JS的資料型別

值型別(基本型別):

  • 字串(String)

  • 數字-整數和小數(Number)

  • 布爾(Boolean)

  • 對空(Null)

  • 未定義(Undefined)

  • Symbol

參考資料型別:

  • 物件(Object)

  • 陣列(Array)

  • 函式(Function),

var num; console.log(num+10);//NaN-----not an number---->不是一個數字 var num; console.log(num);如何獲取這個變數的資料型別是什么? 使用typeof 來獲取    //typeof 的使用的語法     * 都可以獲取這個變數的資料型別是什么!     * typeof 變數名     * typeof(變數 名)     * var num = 10; var str = "小白"; var flag = true; var nll = null; var undef; var obj = new Object();//是使用typeof 獲取變數的型別console.log(typeof num);//number console.log(typeof str);//string console.log(typeof flag);//boolean console.log(String(nll));//是null console.log(typeof nll);//不是null console.log(typeof undef);//undefined console.log(typeof obj);//object console.log(typeof(num));

08 JS的數字型別

 // 數字型別:整數和小數 var num = 12; ?num=20; // 整數  num=98.76; // 小數(其他的語言中,浮點型---單精度,雙精度浮點) ?// 所有的數字都是屬于number型別

09 進制

js中可以表示哪些進制呢?

  • var num=10;//十進制

  • var num2=012;//八進制

  • var num3=0x123;//十六進制

var num=12;//十進制 console.log(num); var num2=012;//八進制 console.log(num2); var num3=0x1a;//十六進制 console.log(num3); var num=0x1f;    console.log(num);

注意:

想要表示十進制:就是正常的數字
想要表示八進制:以0開頭
想要表示十六進制:0x開頭

10 NaN

不要用NaN驗證是不是NaN

var num;  console.log(num+10==NaN); console.log("您好"=="我好");

如何驗證這個結果是不是NaN,應該使用isNaN()

var num;//-----變數宣告了,沒有賦值,結果是:undefined  是不是不是一個數字----->不是一個數字嗎?NaN--->不是一個數字 console.log(isNaN(10));

判斷結果不是一個數字可以使用isNaN(變數名)

var str="您好"; var num;  var sum=num+10;//NaN console.log(sum); console.log(isNaN(sum));//不是數字為true,是數字結果為false

注意:不要使用NaN判斷是不是NaN,應該使用isNaN(值或者是變數)

11 型別轉換

1.parseInt();//轉整數

console.log(parseInt("10"));//10 console.log(parseInt("10afrswfdsf"));//10 console.log(parseInt("g10"));//NaN console.log(parseInt("1fds0"));//1 console.log(parseInt("10.98"));//10 console.log(parseInt("10.98fdsfd"));//10

2.parseFloat()//轉小數

console.log(parseFloat("10"));//10  console.log(parseFloat("10afrswfdsf"));//10  console.log(parseFloat("g10"));//NaN console.log(parseFloat("1fds0"));//1 console.log(parseFloat("10.98"));//10.98 console.log(parseFloat("10.98fdsfd"));//10.98

3.Number();//轉數字

console.log(Number("10"));//10  console.log(Number("10afrswfdsf"));//NaN console.log(Number("g10"));//NaN console.log(Number("1fds0"));//NaN console.log(Number("10.98"));//10.98 console.log(Number("10.98fdsfd"));//NaN

注意:想要轉整數用parseInt(),想要轉小數用parseFloat()

想要轉數字:Number();要比上面的兩種方式嚴格

其他型別轉字串型別

1 .toString()

//    var num=10; //    console.log(num.toString());//字串型別 //    //2  String(); ////    var num1=20; //    console.log(String(num1));

如果變數有意義呼叫.toString()使用轉換
如果變數沒有意義使用String()轉換

var num2; console.log(num2.toString()); var num3=null; console.log(num3.toString());     //這個可以var num2; console.log(String(num2)); var num3=null; console.log(String(num3));?

其他型別轉布爾型別

console.log(Boolean(1));//true console.log(Boolean(0));//false console.log(Boolean(11));//true console.log(Boolean(-10));//true console.log(Boolean("哈哈"));//true console.log(Boolean(""));//false console.log(Boolean(null));//false console.log(Boolean(undefined));//false 

12 JS基本的代碼規范

js中宣告變數用var

js中的每一行代碼結束都應該有分號;(寫代碼有分號的習慣)

js中的大小寫是區分的: var N=10; n

js中的字串可以使用單引號,也可以使用雙引號,目前我們暫時使用雙引號

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/292773.html

標籤:其他

上一篇:深度決議資料在記憶體中的存盤

下一篇:C語言中static的用法(修飾區域變數,修飾全域變數,修飾函式)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more