1. 程式人生 > 實用技巧 >JavaScript基礎知識總結

JavaScript基礎知識總結

宣告:本文摘抄自:https://blog.csdn.net/qq_39043923/article/details/89204263

JavaScript基礎

瀏覽器說明

  瀏覽器是指可以顯示網頁伺服器或者檔案系統的HTML檔案內容,並讓使用者與這些檔案互動的一種軟體。

  通俗的講:可以顯示頁面的一個軟體,

  國內網民計算機上常見的網頁瀏覽器有,QQ瀏覽器、Internet Explorer、Firefox、Safari,Opera、Google Chrome、百度瀏覽器、搜狗瀏覽器、獵豹瀏覽器、360瀏覽器、UC瀏覽器、傲遊瀏覽器、世界之窗瀏覽器等,瀏覽器是最經常使用到的客戶端程式。
常用的五大瀏覽器核心:chrome,firefox,Safari,ie,opera

  我們用chrome(谷歌瀏覽器)

  

網頁、網站和應用程式

  網頁:單獨的一個頁面

  網站:一些列相關的頁面組成到一起

  應用程式:可以和使用者產生互動,並實現某種功能。

演示JavaScript的強大

  http://naotu.baidu.com/

  https://codecombat.com/

  https://ide.codemao.cn/

  需要翻牆

  https://developers.google.com/blockly/

  blockly迷宮

  https://blockly-games.appspot.com

  blockly迷宮不需要翻牆

  https://blockly.uieee.com/

JavaScript介紹

  JavaScript是什麼

  HTML CSS

  JavaScript 程式語言 流程控制

    Netscape在最初將其指令碼語言命名為LiveScript,後來Netscape在與Sun合作之後將其改名為JavaScript。JavaScript最初受Java啟發而開始設計的,目的之一就是“看上去像Java”,因此語法上有類似之處,一些名稱和命名規範也借自Java。JavaScript與Java名稱上的近似,是當時Netscape為了營銷考慮與Sun微系統達成協議的結果。Java和JavaScript的關係就像張雨和張雨生的關係,只是名字很像。

  Java 伺服器端的程式語言

  JavaScript 執行在客戶端(瀏覽器)的程式語言

    JavaScript是一種執行在***客戶端*** 的***指令碼語言***

    JavaScript的直譯器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用於客戶端的指令碼語言,最早是在HTML(標準通用標記語言下的一個應用)網頁上使用,用來給HTML網頁增加動態功能。

JavaScript現在的意義(應用場景)

  JavaScript 發展到現在幾乎無所不能。

  1.網頁特效

  2.服務端開發(Node.js)

  3.命令列工具(Node.js)

  4.桌面程式(Electron)

  5.App(Cordova)

  6.控制硬體-物聯網(Ruff)

  7.遊戲開發(cocos2d-js)

JavaScript和HTML、CSS的區別

  1.HTML:提供網頁的結構,提供網頁中的內容

  2.CSS: 用來美化網頁

  3.JavaScript: 可以用來控制網頁內容,給網頁增加動態的效果

JavaScript的組成

  

ECMAScript - JavaScript的核心

  ECMA 歐洲計算機制造聯合會

  網景:JavaScript

  微軟:JScript

  定義了JavaScript的語法規範

  JavaScript的核心,描述了語言的基本語法和資料型別,ECMAScript是一套標準,定義了一種語言的標準與具體實現無關

BOM - 瀏覽器物件模型

  一套操作瀏覽器功能的API

  通過BOM可以操作瀏覽器視窗,比如:彈出框、控制瀏覽器跳轉、獲取解析度等

DOM - 文件物件模型

  一套操作頁面元素的API

  DOM可以把HTML看做是文件樹,通過DOM提供的API可以對樹上的節點進行操作

JavaScript初體驗

  CSS:行內樣式、嵌入樣式、外部樣式

JavaScript的書寫位置

  寫在行內

  

  寫在script標籤中

  

  寫在外部js檔案中,在頁面引入

  

  注意點

    引用外部js檔案的script標籤中不可以寫JavaScript程式碼

計算機組成

  軟體

    應用軟體:瀏覽器(Chrome/IE/Firefox)、QQ、Sublime、Word

    系統軟體:Windows、Linux、mac OSX

  硬體

    三大件:CPU、記憶體、硬碟 – 主機板

    輸入裝置:滑鼠、鍵盤、手寫板、攝像頭等

    輸出裝置:顯示器、印表機、投影儀等

  

  

變數

  什麼是變數

    變數是計算機記憶體中儲存資料的識別符號,根據變數名稱可以獲取到記憶體中儲存的資料

  為什麼要使用變數

    使用變數可以方便的獲取或者修改記憶體中的資料

  如何使用變數

    var宣告變數

    

    變數的賦值

    

    同時宣告多個變數

    

    同時宣告多個變數並賦值

      

  變數在記憶體中的儲存

    

    

變數的命名規則和規範

  規則 - 必須遵守的,不遵守會報錯

    由字母、數字、下劃線、$符號組成,不能以數字開頭

    不能是關鍵字和保留字,例如:for、while。

    區分大小寫

  規範 - 建議遵守的,不遵守不會報錯

    變數名必須有意義

    遵守駝峰命名法。首字母小寫,後面單詞的首字母需要大寫。例如:userName、userPassword

  下面哪些變數名不合法

  

  案例

  1.交換兩個變數的值

  2.不使用臨時變數,交換兩個數值變數的值

資料型別

  簡單資料型別

    Number、String、Boolean、Undefined、Null

  Number型別

    數值字面量:數值的固定值的表示法

      110 1024 60.5

    進位制

  

  浮點數

    浮點數的精度問題

  

  數值範圍

  

  數值判斷

    NaN:not a number

      NaN 與任何值都不相等,包括他本身

    isNaN: is not a number

  String型別

    ‘abc’ “abc”

    字串字面量

      ‘程式猿’,‘程式媛’, “程式猿NX”

    思考:如何列印以下字串。

      我是一個"正直"的人

      我很喜歡"前端’程式猿’"

    轉義符

    

    字串長度

      length屬性用來獲取字串的長度

      

      字串拼接

        字串拼接使用 + 連線

      

      1.兩邊只要有一個是字串,那麼+就是字串拼接功能

      2.兩邊如果都是數字,那麼就是算術功能。

  Boolean型別

    Boolean字面量: true和false,區分大小寫

    計算機內部儲存:true為1,false為0

  Undefined和Null

    undefined表示一個聲明瞭沒有賦值的變數,變數只宣告的時候值預設是undefined

    null表示一個空,變數的值如果想為null,必須手動設定

  複雜資料型別

    Object

  獲取變數的型別

    typeof

  

  字面量

    在原始碼中一個固定值的表示法。

    數值字面量:8, 9, 10

    字串字面量:‘程式設計師’, “大前端”

    布林字面量:true,false 

註釋   

  單行註釋

    用來描述下面一個或多行程式碼的作用

     

  多行註釋

    用來註釋多條程式碼

    

資料型別轉換

  如何使用谷歌瀏覽器,快速的檢視資料型別?

  字串的顏色是黑色的,數值型別是藍色的,布林型別也是藍色的,undefined和null是灰色的  

  轉換成字串型別

    toString()

    

    String()

    

    拼接字串方式

      num + “”,當 + 兩邊一個操作符是字串型別,一個操作符是其它型別的時候,會先把其它型別轉換成字串再進行字串拼接,返回字串 

  轉換成數值型別

    Number()

    

    parseInt()

    

    parseFloat()

    

    +,-0等運算

      

  轉換成布林型別

    Boolean()

      0 ‘’(空字串) null undefined NaN 會轉換成false 其它都會轉換成true

操作符

  運算子 operator

    5 + 6

    表示式 組成 運算元和操作符,會有一個結果

  算術運算子

    

  一元運算子

    一元運算子:只有一個運算元的運算子

    5 + 6 兩個運算元的運算子 二元運算子

    ++ 自身加1

    – 自身減1

    前置++

    

    後置++

    

    猜猜看

    

    總結

      前置++:先加1,後參與運算

      後置++:先參與運算,後加1

      上面兩個理解後,下面兩個自通

      前置-- :先減1,後參與運算

      後置-- :先參與運算,後減1

  邏輯運算子(布林運算子)

    

  關係運算符(比較運算子)

    

      

  賦值運算子

    = += -= *= /= %=

     

  運算子的優先順序

    

    

表示式和語句  

  表示式

    一個表示式可以產生一個值,有可能是運算、函式呼叫、有可能是字面量。表示式可以放在任何需要值的地方 

  語句

    語句可以理解為一個行為,迴圈語句和判斷語句就是典型的語句。一個程式有很多個語句組成,一般情況下;分割一個一個的語句

流程控制

  程式的三種基本結構

  順序結構

    從上到下執行的程式碼就是順序結構

    程式預設就是由上到下順序執行的 

  分支結構

    根據不同的情況,執行對應程式碼

  迴圈結構

    迴圈結構:重複做一件事情

  分支結構  

    if語句

      語法結構

      

    案例:

      求兩個數的最大數

      判斷一個數是偶數還是奇數

      分數轉換,把百分制轉換成ABCDE <60 E 60-70 D 70-80 C 80-90 B 90 - 100 A

    作業:

      判斷一個年份是閏年還是平年

      閏年:能被4整除,但不能被100整除的年份 或者 能被400整除的年份

      判斷一個人的年齡是否滿18歲(是否成年) 

  三元運算子

    

    案例:

    是否年滿18歲

    從兩個數中找最大值

  switch語句

    語法格式:

    

    

  案例:

    顯示星期幾

    素質教育(把分數變成ABCDE)千萬不要寫100個case喲  

  布林型別的隱式轉換

    流程控制語句會把後面的值隱式轉換成布林型別

    

      

  案例

    

  迴圈結構

    在javascript中,迴圈語句有三種,while、do…while、for迴圈。 

  while語句

    基本語法:

    

    程式碼示例:

    

    案例:

    列印100以內 7的倍數

    列印100以內所有偶數

    列印100以內所有偶數的和

    作業:

    列印100以內的奇數

    列印100以內的奇數的和

  do…while語句

    do…while迴圈和while迴圈非常像,二者經常可以相互替代,但是do…while的特點是不管條件成不成立,都會執行一次。

  基礎語法:

    

  程式碼示例:

    

  案例:

    

  for語句

    while和do…while一般用來解決無法確認次數的迴圈。for迴圈一般在迴圈次數確定的時候比較方便

    for迴圈語法:

    

    執行順序:1243 ---- 243 -----243(直到迴圈條件變成false)

      1.初始化表示式

      2.判斷表示式

      3.自增表示式

      4.迴圈體

    案例:

列印1-100之間所有數
求1-100之間所有數的和
求1-100之間所有數的平均值
求1-100之間所有偶數的和
同時求1-100之間所有偶數和奇數的和
列印正方形
// 使用拼字串的方法的原因
// console.log 輸出重複內容的問題
// console.log 預設輸出內容介紹後有換行
var start = '';
for (var i = 0; i < 10; i++) {
  for (var j = 0; j < 10; j++) {
    start += '* ';
  }
  start += '\n';
}
console.log(start);
列印直角三角形
var start = '';
for (var i = 0; i < 10; i++) {
  for (var j = i; j < 10; j++) {
    start += '* ';
  }
  start += '\n';
}
console.log(start);

列印9*9乘法表
var str = '';
for (var i = 1; i <= 9; i++) {
  for (var j = i; j <=9; j++) {
    str += i + ' * ' + j + ' = ' + i * j + '\t';
  }
  str += '\n';
}
console.log(str);

  作業: