好程式設計師web前端培訓分享JavaScript基礎語法
好程式設計師web 前端培訓分享 JavaScript 基礎語法, JavaScript 發展歷史( JS )
1994
年,網景公司
(Netscape)
釋出了
Navigator
瀏覽器
0.9
版,這是世界上第一款比較成熟的網路瀏覽器,轟動一時。但是這是一款名副其實的瀏覽器
--
只能瀏覽頁面,瀏覽器無法與使用者互動
,
當時解決這個問題有兩個辦法,一個是採用現有的語言
,
許它們直接嵌入網頁。另一個是發明一種全新的語言。
liveScript ==> javaScript ==> ECMAscript
HTML :標記語言
JavaScript :程式語言
2. 1995
年
Sun
公司將
Oak
語言改名為
Java
,正式向市場推出。
Sun
公司大肆宣傳,許諾這種語言可以
"
一次編寫,到處執行
"(Write Once, Run Anywhere)
,它看上去很可能成為未來的主宰。
3.
網景公司動了心,決定與
Sun
公司結成聯盟
4. 34
歲的系統程式設計師
Brendan Eich
登場了。
1995
年
4
月,網景公司錄用了他
,
他只用
10
天時間就把
Javascript
設計出來了。(多型語言)
5. (1)
借鑑
C
語言的基本語法
; (2)
借鑑
Java
語言的資料型別和記憶體管理
; (3)
借鑑
Scheme
語言,將函式提升到
"
第一等公民
"(first class)
的地位
; (4)
借鑑
Self
語言,使用基於原型
(prototype)
的繼承機制。
JavaScript能幹什麼
1. 常見的網頁效果【表單驗證,輪播圖。。。】
2. 與H5配合實現遊戲【水果忍者: 】
3. 實現應用級別的程式【】
4. 實現統計效果【】
5. 地理定位等功能【】
6. 線上學程式設計【】
7. js可以實現人工智慧【面部識別】
8. 。。。
JavaScript的組成
1. ECMASCRIPT: 定義了javascript的語法規範,描述了語言的基本語法和資料型別
2. BOM (Browser Object Model): 瀏覽器物件模型
- 有一套成熟的可以操作瀏覽器的 API,透過 BOM 可以操作瀏覽器。比如: 彈出框、瀏覽器跳轉、獲取解析度等
3. DOM (Document Object Model): 文件物件模型
- 有一套成熟的可以操作頁面元素的 API,透過 DOM 可以操作頁面中的元素。比如: 增加個 div,減少個 div,給div 換個位置等
總結: JS 就是透過固定的語法去操作 瀏覽器 和 標籤結構 來實現網頁上的各種效果
JavaScript程式碼的書寫位置
· 和 css 一樣,我們的 js 也可以有多種方式書寫在頁面上讓其生效
· js 也有多種方式書寫,分為 行內式 , 內嵌式 , 外鏈式
行內式 JS 程式碼(不推薦)
· 寫在標籤上的 js 程式碼需要依靠事件(行為)來觸發
// 我是 index.js 檔案 alert( '我是一個彈出層' )
<!-- 寫在 a 標籤的 href 屬性上 --> < a href = "javascript:alert('我是一個彈出層');" > 點選一下試試 </ a >
<!-- 寫在其他元素上 --> < div onclick = "alert('我是一個彈出層')" > 點一下試試看 </ div >
<!-- 注:onclick 是一個事件(點選事件),當點選元素的時候執行後面的 js 程式碼-->
內嵌式 JS 程式碼
· 內嵌式的 js 程式碼會在頁面開啟的時候直接觸發
<!-- 在 html 頁面書寫一個 script 標籤,標籤內部書寫 js 程式碼 --> < script type = "text/javascript" >
alert( '我是一個彈出層' )</ script >
<!-- 注:script 標籤可以放在 head 裡面也可以放在 body 裡面-->
外鏈式 JS 程式碼(推薦)
· 外鏈式 js 程式碼只要引入了 html 頁面,就會在頁面開啟的時候直接觸發
· 新建一個 .js 字尾的檔案,在檔案內書寫 js 程式碼,把寫好的 js 檔案引入 html 頁面
<!-- 我是一個 html 檔案 -->
<!-- 透過 script 標籤的 src 屬性,把寫好的 js 檔案引入頁面 --> < script src = "index.js" ></ script >
<!-- 一個頁面可以引入多個 js 檔案 --> < script src = "index1.js" ></ script >< script src = "index2.js" ></ script >< script src = "index3.js" ></ script >
JS 中的註釋
· 學習一個語言,先學習一個語言的註釋,因為註釋是給我們自己看的,也是給開發人員看的
· 寫好一個註釋,有利於我們以後閱讀程式碼
單行註釋
· 一般就是用來描述下面一行程式碼的作用
· 可以直接寫兩個 / ,也可以按 ctrl + /
// 我是一個單行註釋 // 下面程式碼表示在瀏覽器裡面出現一個彈出層 alert( '我是一個彈出層' )
多行註釋
· 一般用來寫一大段話,或者註釋一段程式碼
· 可以直接寫 /**/ 然後在兩個星號中間寫註釋,也可以按 shift + alt + a
/* 我是一個多行註釋*/ /* 註釋的程式碼不會執行 alert('我是一個彈出層') alert('我是一個彈出層')*/ alert( '我是一個彈出層' )
變數(重點)
· 變數指的是在程式中儲存資料的一個容器
· 變數是計算機記憶體中儲存資料的識別符號,根據變數名稱可以獲取到記憶體中儲存的資料
· 也就是說,我們向記憶體中儲存了一個資料,然後要給這個資料起一個名字,為了是我們以後再次找到他
· 語法: var 變數名 = 值
定義變數及賦值
// 定義一個變數 var num; // 給一個變數賦值 num = 100 ; // 定義一個變數的同時給其賦值 var num2 = 200 ;
· 注意:
00001. 一個變數名只能儲存一個值
00002. 當再次給一個變數賦值的時候,前面一次的值就沒有了
00003. 變數名稱區分大小寫(JS 區分大小寫)
變數的命名規則和命名規範
· 規則: 必須遵守的,不遵守就是錯
00001. 一個變數名稱可以由 數字 、 字母 、 英文下劃線(_) 、 美元符號($) 組成
00002. 嚴格區分大小寫
00003. 不能由數字開頭,不要使用中文漢字命名
00004. 不能是 保留字 或者 關鍵字
00005. 不要出現空格
· 規範: 建議遵守的(開發者預設),不遵守不會報錯
00001. 變數名儘量有意義(語義化)
00002. 遵循駝峰命名規則,由多個單片語成的時候,從第二個單詞開始首字母大寫
資料型別(重點)
· 是指我們儲存在記憶體中的資料的型別
· 我們通常分為兩大類 基本資料型別 和 複雜資料型別
基本資料型別
1、數值型別(number)
· 一切數字都是數值型別(包括二進位制,十進位制,十六進位制等)
· NaN(not a number),一個非數字
2、字串型別(string)
· 被引號包裹的所有內容(可以是單引號也可以是雙引號)
3、布林型別(boolean)
· 只有兩個(true 或者 false)
4、null型別(null)
· 只有一個,就是 null,表示空的意思
5、undefined型別(undefined)
· 只有一個,就是 undefined,表示沒有值的意思
複雜資料型別
00001. 物件型別(object)
00002. 函式型別(function)
00003. 。。。
判斷資料型別
· 既然已經把資料分開了型別,那麼我們就要知道我們儲存的資料是一個什麼型別的資料
· 使用 typeof 關鍵字來進行判斷
// 第一種使用方式 var n1 = 100 ;console.log( typeof n1); // 第二種使用方式 var s1 = 'abcdefg' ;console.log( typeof (s1));
判斷一個變數是不是數字
· 可以使用 isNaN 這個方法來判斷一個變數是不是數字
· isNaN :is not a number
// 如果變數是一個數字 var n1 = 100 ;console.log( isNaN (n1)); //=> false // 如果變數不是一個數字 var s1 = 'Jack' console.log( isNaN (s1)); //=> true
資料型別轉換
· 資料型別之間的轉換,比如數字轉成字串,字串轉成布林,布林轉成數字等
其他資料型別轉成數值
1、 Number(變數)
· 可以把一個變數強制轉換成數值型別
· 可以轉換小數,會保留小數
· 可以轉換布林值
· 遇到不可轉換的都會返回 NaN
2、 parseInt(變數)
· 從第一位開始檢查,是數字就轉換,知道一個不是數字的內容
· 開頭就不是數字,那麼直接返回 NaN
· 不認識小數點,只能保留整數
3、 parseFloat(變數)
· 從第一位開始檢查,是數字就轉換,知道一個不是數字的內容
· 開頭就不是數字,那麼直接返回 NaN
· 認識一次小數點
4、除了加法以外的數學運算
· 運算子兩邊都是可運算數字才行
· 如果運算子任何一遍不是一個可運算數字,那麼就會返回 NaN
· 加法不可以用
其他資料型別轉成字串
1、 變數.toString()
· 有一些資料型別不能使用 toString() 方法,比如 undefined 和 null
2、 String(變數)
· 所有資料型別都可以
3、使用加法運算
· 在 JS 裡面, + 由兩個含義
· 字串拼接: 只要 + 任意一邊是字串,就會進行字串拼接
· 加法運算:只有 + 兩邊都是數字的時候,才會進行數學運算
其他資料型別轉成布林
00001. Boolean(變數)
· 在 js 中,只有 '' 、 0 、 null 、 undefined 、 NaN ,這些是 false,其餘都是 true
運算子
· 就是在程式碼裡面進行運算的時候使用的符號,不光只是數學運算,我們在 js 裡面還有很多的運算方式
數學運算子
1、 +
· 只有符號兩邊都是數字的時候才會進行加法運算
· 只要符號任意一邊是字串型別,就會進行字串拼接
2、 -
· 會執行減法運算
· 會自動把兩邊都轉換成數字進行運算
3、 *
· 會執行乘法運算
· 會自動把兩邊都轉換成數字進行運算
4、 /
· 會執行除法運算
· 會自動把兩邊都轉換成數字進行運算
5、 %
· 會執行取餘運算
· 會自動把兩邊都轉換成數字進行運算
賦值運算子
1、 =
· 就是把 = 右邊的賦值給等號左邊的變數名
· var num = 100
· 就是把 100 賦值給 num 變數
· 那麼 num 變數的值就是 100
2、 +=
var a = 10 ;a += 10 ;console.log(a); //=> 20
· a += 10 等價於 a = a + 10
3、 -=
var a = 10 ;a -= 10 ;console.log(a); //=> 0
· a -= 10 等價於 a = a - 10
4、 *=
var a = 10 ;a *= 10 ;console.log(a); //=> 100
· a *= 10 等價於 a = a * 10
5、 /+
var a = 10 ;a /= 10 ;console.log(a); //=> 1
· a /= 10 等價於 a = a / 10
6、 %=
var a = 10 ;a %= 10 ;console.log(a); //=> 0
· a %= 10 等價於 a = a % 10
比較運算子
1、 ==
· 比較符號兩邊的值是否相等,不管資料型別
· 1 == '1'
· 兩個的值是一樣的,所以得到 true
2、 ===
· 比較符號兩邊的值和資料型別是否都相等
· 1 === '1'
· 兩個值雖然一樣,但是因為資料型別不一樣,所以得到 false
3、 !=
· 比較符號兩邊的值是否不等
· 1 != '1'
· 因為兩邊的值是相等的,所以比較他們不等的時候得到 false
4、 !==
· 比較符號兩邊的資料型別和值是否不等
· 1 !== '1'
· 因為兩邊的資料型別確實不一樣,所以得到 true
5、 >=
· 比較左邊的值是否 大於或等於 右邊的值
· 1 >= 1 true
· 1 >= 0 true
· 1 >= 2 false
6、 <=
· 比較左邊的值是否 小於或等於 右邊的值
· 1 <= 2 true
· 1 <= 1 true
· 1 <= 0 false
7、 >
· 比較左邊的值是否 大於 右邊的值
· 1 > 0 true
· 1 > 1 false
· 1 > 2 false
8、 <
· 比較左邊的值是否 小於 右邊的值
· 1 < 2 true
· 1 < 1 false
· 1 < 0 false
邏輯運算子
1、 &&
· 進行 且 的運算
· 符號左邊必須為 true 並且右邊也是 true,才會返回 true
· 只要有一邊不是 true,那麼就會返回 false
· true && true true
· true && false false
· false && true false
· false && false false
2、 ||
· 進行 或 的運算
· 符號的左邊為 true 或者右邊為 true,都會返回 true
· 只有兩邊都是 false 的時候才會返回 false
· true || true true
· true || false true
· false || true true
· false || false false
3、 !
· 進行 取反 運算
· 本身是 true 的,會變成 false
· 本身是 false 的,會變成 true
· !true false
· !false true
自增自減運算子(一元運算子)
1、 ++
· 進行自增運算
· 分成兩種, 前置++ 和 後置++
· 前置++,會先把值自動 +1,再返回
var a = 10 ;console.log( ++ a); // 會返回 11,並且把 a 的值變成 11
· 後置++,會先把值返回,在自動+1
var a = 10 ;console.log(a ++ ); // 會返回 10,然後把 a 的值變成 11
2、 --
· 進行自減運算
· 分成兩種, 前置-- 和 後置--
· 和 ++ 運算子道理一樣
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2701232/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師web前端培訓分享學習JavaScript程式設計師Web前端JavaScript
- 好程式設計師web前端培訓分享JavaScript框架J程式設計師Web前端JavaScript框架
- 好程式設計師web前端培訓分享JavaScript學習指南程式設計師Web前端JavaScript
- 好程式設計師web前端培訓分享HTMLCSS學習之CSS基礎程式設計師Web前端HTMLCSS
- 好程式設計師web前端培訓分享CSS基礎知識學習程式設計師Web前端CSS
- 好程式設計師web前端培訓分享Javascript中原型屬性程式設計師Web前端JavaScript原型
- 好程式設計師web前端培訓分享JavaScript相關知識程式設計師Web前端JavaScript
- 好程式設計師web前端培訓分享九個JavaScript小技巧程式設計師Web前端JavaScript
- 好程式設計師web前端培訓分享JavaScript學習筆記Promise程式設計師Web前端JavaScript筆記Promise
- 好程式設計師web前端培訓分享JavaScript學習筆記cookie程式設計師Web前端JavaScript筆記Cookie
- 好程式設計師web前端培訓分享JavaScript學習筆記SASS程式設計師Web前端JavaScript筆記
- 好程式設計師web前端培訓分享面試題Session、Cookie基礎知識程式設計師Web前端面試題SessionCookie
- 好程式設計師web前端培訓分享JavaScript學習筆記之設計模式程式設計師Web前端JavaScript筆記設計模式
- 好程式設計師web前端培訓分享怎樣學好css?程式設計師Web前端CSS
- 好程式設計師web前端培訓分享如何講清楚Promise?程式設計師Web前端Promise
- 好程式設計師Web前端培訓分享如何講清楚this指向?程式設計師Web前端
- 好程式設計師web前端培訓分享Vue面試題程式設計師Web前端Vue面試題
- 好程式設計師web前端培訓分享HTML DOM節點程式設計師Web前端HTML
- 好程式設計師web前端培訓分享HTML DOM簡介程式設計師Web前端HTML
- 好程式設計師web前端培訓分享CSS定位的教程程式設計師Web前端CSS
- 好程式設計師web前端培訓分享JavaScript學習筆記分支結構程式設計師Web前端JavaScript筆記
- 好程式設計師web前端培訓分享JavaScript學習筆記之正則程式設計師Web前端JavaScript筆記
- 好程式設計師web前端培訓分享JavaScript學習筆陣列的排序程式設計師Web前端JavaScript陣列排序
- 好程式設計師web前端培訓分享JavaScript學習筆記之陣列程式設計師Web前端JavaScript筆記陣列
- 好程式設計師web前端培訓JavaScript學習筆記DOM程式設計師Web前端JavaScript筆記
- 好程式設計師web前端培訓JavaScript學習筆記--jQuery程式設計師Web前端JavaScript筆記jQuery
- 好程式設計師web前端分享HTML基礎篇程式設計師Web前端HTML
- 好程式設計師web前端分享CSS基礎篇程式設計師Web前端CSS
- 好程式設計師web前端教程分享web前端基礎知識程式設計師Web前端
- 好程式設計師Web前端培訓分享jQuery面試題梳理程式設計師Web前端jQuery面試題
- 好程式設計師web前端培訓分享node學習筆記程式設計師Web前端筆記
- 好程式設計師web前端培訓分享FormData 簡單介紹程式設計師Web前端ORM
- 好程式設計師web前端培訓分享JavaScript學習筆記函式進階程式設計師Web前端JavaScript筆記函式
- 好程式設計師web前端培訓分享JavaScript學習筆記之ES5程式設計師Web前端JavaScript筆記
- 好程式設計師Python培訓分享基礎入門Django程式設計師PythonDjango
- 好程式設計師Java培訓分享20個Java程式設計師基礎題程式設計師Java
- 好程式設計師web前端培訓分享kbone高階-事件系統程式設計師Web前端事件
- 好程式設計師web前端培訓分享Vue面試題1.程式設計師Web前端Vue面試題