【粗糙版】javascript的變數、資料類型、運算子、流程結構

來源:互聯網
上載者:User

標籤:優先   範圍   none   之間   拼接   集合   注意   運算式   同名   

本文內容:

  • javascript的變數
  • javascript的資料類型
  • javascript的運算子
  • javascript的流程結構

 

首發日期:2018-05-09

javascript的變數

 

建立變數:

全域變數:全域變數是在js代碼的各個地方都能調用的變數

  • 【不在{}內時】var 變數名 = 值;
  • 【不論在不在{}內】 變數名 = 值;

局部變數:局部變數是僅僅在函數體內生效的變數

  • 【在{}內】var 變數名 = 值;
  • 【函數的參數變數也是一種局部變數】

 

範圍:
  • 函數體內,同名的變數,局部變數優先順序高於全域變數
  • 局部變數在函數外無法調用;
  • 嵌套函數中,外層函數無法調用內層函數的局部變數,記憶體函數可以調用外層函數的局部變數

 

 

補充:
  • 變數的範圍是一個大坑,還有什麼範圍鏈問題、生命週期問題【比如,函數名跟某一個變數同名時的優先順序也是一個不一般的問題】。使用要注意。由於這裡是一個簡單的記錄,所以不記錄那麼複雜的東西。

javascript的資料類型

 

  • javascript是動態類型的語言,它統一使用var來聲明每一個對象,每一個對象的資料決定它是一個什麼樣的資料類型。
  • 所以下面主要介紹資料類型跟變數的關係

 

 

 

數值型:
  • number:普通的數字,可以有用八、十、十六等進位來表示,可以是浮點數。

 

 

字元型:
  • string:被""或‘‘包裹的字元

 

布爾型:
  • boolean:有兩個值,一個是true,一個是false;

 

引用型:
  • undefined:聲明了變數,但未進行賦值初始化的變數。
  • object:表明變數是一個對象;當變數賦值null時代表是一個Null 物件.

 

<!DOCTYPE html><html><head>    <meta charset="UTF-8" />    <title>Document</title>    <script>        function f1(){            var test=6;//Number            var a="7";//String            var b=true;            var c;            var d=null;            var e={‘name‘:"lilei"};            console.log(typeof(test));//number            console.log(typeof(a));//string            console.log(typeof(b));//boolean            console.log(typeof(c));//undefined            console.log(typeof(d));//object            console.log(typeof(e));//object        }    </script></head><body>    <input type="button" value="點擊" onclick="f1()"></body></html>

 

補充:
  • 字串的轉義問題:在字串中可以有些字元具有特定的意義,比如\n顯示到網頁中時會變成分行符號。如果想要“不使用那個特別的意義”,需要在這些特別的字元前面加\
  • typeof(變數名)可以返回變數的資料類型。

 

 

javascript的運算子

 

算數運算子:
  • +加法運算子
    • 加法運算子除了數值相加的功能外,還可以拼接字串,比如"a"+"b"結果是"ab",7+"a"結果是"7a"。
  • -減法運算子
  • *乘法運算子
  • /除法運算子
  • %求餘運算子
  • +=加法賦值運算子、-=減法賦值運算子、*=乘法賦值運算子、/=除法賦值運算子、%=求餘賦值運算子

 

自增、自減運算子:
  • ++:自增運算子,在自己數值的基礎上進行加一
  • --:自減運算子,在自己數值的基礎上進行減一
  • 自增、自減運算子可以位於變數之前【先自增,再取值】,也可以位於變數之後【先取值,再自增】,

 

關係運算子:
  • <=    :不大於運算子,比如a <= b,如果a不大於b,那麼返回true,否則返回false
  • <      : 小於運算子
  • >      :大於運算子
  • >=    :不小於運算子
  • ==    :等於運算子
  • !== :不等於運算子
  • 比較規則:
    • 數值之間:直接比較數值大小
    • 一個是數值:把另一個轉換成數值
    • 字串之間:比較它們之間的unicode數值大小
    • 字串與非數值:把非數值轉成字串
    • 其他。。。

 

邏輯運算子:
  • !   :邏輯非運算,把結果取反,返回結果是布爾值,
  • &&  :邏輯與運算,返回結果是布爾值,
  • ||  :邏輯或運算,返回結果是布爾值

 

 

位元運算符:
  • ~:按位非
  • &按位與
  • |按位或
  • ^按位異或
  • <<位左移運算
  • >>帶符號右移運算
  • >>>無符號右移運算

 

其他運算子:
  • ?:   :這是一個三目運算子,運算式 (expr1) ? (expr2) : (expr3)。在 expr1 求值為 TRUE 時的值為 expr2,在 expr1 求值為 FALSE 時的值為 expr3。

 

javascript的流程結構

 

迴圈結構:
  • while結構
    • while(條件運算式){迴圈執行程式碼片段}
  • do-while結構
    • do{迴圈執行程式碼片段}while(條件運算式);
    • do-while迴圈不管初始條件是否成立都會執行一次
  • for結構
    • for (迴圈變數=初值;迴圈條件;計數器){迴圈執行程式碼片段}
  • for-each結構
    • for (迴圈變數 in 集合){迴圈執行程式碼片段}

 

 

選擇結構
  • if
    • if(條件運算式1){條件運算式1為真時執行的代碼}else if(條件表示2){條件運算式2為真時執行的代碼}else{前面的條件都不符合時執行的代碼}
    • else if 和else是可選的
  • switch
    • switch(值){ case 值1:程式碼片段;break;case 值2:程式碼片段;break;case 值3:程式碼片段;break;……default:程式碼片段;}

 

結束語句:
  • return:結束return 所在函數體的運行。並返回return 後面跟著的值。
  • break:結束break所在的迴圈。break也可以在switch用來跳出選擇,沒有break時會向下執行另外一個case。
  • continue:在continue的位置提前結束本次迴圈,然後執行下一次迴圈判斷。

 

 

 

【粗糙版】javascript的變數、資料類型、運算子、流程結構

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.