進擊的JavaScript小白(一)
經常有外行的朋友問我JavaScript和Java是不是一家的
JavaScript和Java的關係就像是雷鋒和雷峰塔的關係,除了名字有點像,其他的沒有任何關係,不要再問了,謝謝
好了,抖完機靈,開始說正事了。
一、JavaScript的簡介
JavaScript一種解釋型(解釋型:從上往下一行一行的執行)的指令碼語言(指令碼語言:程式碼可以直接執行的、不需要編譯的語言形式),是一種動態型別(允許在程式碼執行過程中修改一個變數中的資料型別)、弱型別(不限制一個變數可以儲存的資料型別)、基於物件的語言、基於原型的語言,內建支援型別。它的直譯器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用於客戶端的指令碼語言,最早是在HTML網頁上使用,用來給HTML網頁增加動態功能。
二、JavaScript的書寫位置
js的書寫位置一共有四種
- 外鏈式js寫法:推薦寫法
<script src="tool.js"></script>``<script src="tool.js"></script>
- 內嵌式js寫法
alert(100);
- 行內式js寫法:不推薦使用,不利於html和js的分離
<div onclick="alert(300)">這是div</div>
- 使用javascript偽協議
<a href="javascript:alert(400);">這是a標籤</a>
三、變數
1. 變數是什麼
容器,用於儲存資料。
2. 變數的作用
用於儲存資料,讓資料可以複用。
總的一句話,使用變數實際上就是使用內部儲存的資料。
3. 變數的初始化操作
先宣告,比如var num;
再賦值,num = 200;
也可以宣告賦值一起做var num = 200;
4. 變數的命名規則規範
① 不能以數字開頭,內部可以含有數字
② 不能使用js中的關鍵字和保留字
③ 嚴格區分大小寫
④ 開頭可以含有$和_
⑤ 建議命名有意義
⑥ 建議使用駝峰命名法
四、資料型別
1. 分類
五種基礎型別:
① 數值型別----------number
② 字串型別-------string
③ 布林型別----------boolean
④ 未賦值------------undefined
⑤ 空------------------null
複雜資料型別:object
2. 檢測方式
① typeof 用來檢測資料型別的運算子。 //typeof null的結果為object,不準確
②instanceof:只要在當前例項的原型鏈上,用instanceof檢測出來的結果都是true,所以在類的原型繼承中,最後檢測出來的結果未必是正確的
③constructor:constructor這個屬性存在於建構函式的原型上,指向建構函式,物件可以通過__proto__在其所屬類的原型上找到這個屬性,但是有繼承的話就不準確了
④Object.prototype.toString.call():是檢測資料型別最準確最常用的方式。
先獲取Object原型上的toString方法,讓方法執行,並且改變方法中的this關鍵字的指向;Object.prototype.toString 返回當前方法的執行主體(this)所屬類。
陣列型別的檢測方法和檢測結果在小白三
3. 轉換方式
五、運算子
-
一元運算子:參與運算的運算元只有一個,例如:num++,num–
-
算數運算子:+、-、*、/、%
-
比較運算子:>、<、>=、<=
-
相等運算子: == 和 != 比較資料的值,不比較型別。=== 和!== 進行全等比較
-
邏輯運算子:&&與,||或,!非
-
三元運算子:條件運算元 ? 運算元1 : 運算元2;
-
賦值運算子 =,+= ,-=,*=,/=,%=
以上運算子優先順序依次遞減