1.JS簡介
- JavaScript簡稱JS肮街,是前端開發(fā)的一門腳本語言(解釋型語言)
- 解釋型語言:程序執(zhí)行之前,不需要編譯,直接運行時邊解析邊執(zhí)行的語言
- 編譯型語言:程序執(zhí)行之前,需要一個專門的編譯過程业筏,把程序編譯成為機器語言的文件,比如exe文件
- 組成部分
- ECMAScript:JavaScript的語法標準
- DOM(Document Object Model) 通過js操作網(wǎng)頁元素
- BOM(Browser Object Model) 通過api操作瀏覽器
- 特點
- 簡單易用
- 解釋執(zhí)行
- 編譯執(zhí)行 java c# 轉(zhuǎn)化為.dll可執(zhí)行文件==>電腦讀取.dll可執(zhí)行文件
- 基于對象面向過程
2.JS的書寫位置
-
內(nèi)嵌式
</body> ... ... <script type="text/javascript"> alert("hello world"); </script> </body>
- 通常將js代碼放在body的最后, 因為HTML是從上至下加載, 而js代碼通常是給標簽添加交互(操作元素), 所以需要先加載HTML, 否則如果執(zhí)行js代碼時HTML還未被加載, 那么js代碼將無法添加交互(操作元素);
- HTML頁面中出現(xiàn)<script>標簽后馁启,就會讓頁面暫停等待腳本的解析和執(zhí)行驾孔。無論當(dāng)前腳本是內(nèi)嵌式還是外鏈式,頁面的下載和渲染都必須停下來等待腳本的執(zhí)行完成才能繼續(xù), 所以如果把js代碼寫在head中, 那么js代碼沒有執(zhí)行完畢之前后續(xù)網(wǎng)頁無法查看
-
外鏈式
<script src="1.js"></script>
- 外鏈式的script代碼塊中不能編寫js代碼, 即便寫了也不會執(zhí)行
<script type="text/javascript" src="01-js書寫格式.js"> alert("hello world"); // 不會被執(zhí)行 </script>
-
注意
- 寫js代碼的時候惯疙,分號不能省略
- 由于每次加載外鏈式的js文件都會發(fā)送一次請求, 這樣非常消耗性能, 所以在企業(yè)開發(fā)中推薦將多個JS文件合成為一個JS文件,以提升網(wǎng)頁的性能和加載速度
3.JS中輸出消息的幾種方式
- alert() 在頁面彈出一個對話框,早期JS調(diào)試使用
- Confirm() 在頁面彈出一個對話框, 常配合if判斷使用
- console.log() 將信息輸入到控制臺妖啥,用于js調(diào)試
- prompt() 彈出對話框霉颠,用于接收用戶輸入的信息
- document.write()在頁面輸出消息
- document.write不僅能輸出信息,還能輸出標簽荆虱。
alert("哈哈");
confirm("哈哈");
console.log("哈哈");
prompt("哈哈");
document.write("第一行<br><strong>第二行</strong>")
3.JS的注釋
- 快捷鍵 ctrl+/
- 單行注釋 //
- 多行注釋 /* */
4.變量
- 定義變量
- 給變量賦值
- 定義并賦值
var name;//定義變量
name = "李四";//給變量賦值
var name = "李四";//定義變量并且賦值
- 變量的命名規(guī)范
- 不能以數(shù)字或者純數(shù)字開頭來定義變量名
- 不推薦使用中文來定義變量名
- 不能使用特殊符號或者特殊符號開頭(-除外)
- 不推薦使用關(guān)鍵字和保留字來定義變量名
-
在JS中嚴格區(qū)分大小寫的
關(guān)鍵字保留字.png
5.JS中的數(shù)據(jù)類型
- 查看數(shù)據(jù)類型 typeof()
var n1 = 100;
alert(typeof(n1));
- Number 數(shù)字類型
- 包含整數(shù)和小數(shù)
var num1 = 100; var num2 = 1.05; alert(typeof(num1)); alert(typeof(num2));
- 數(shù)字類型的表達方式
- 十進制
- 十六進制(從0-9蒿偎,a(A)-f(F)表示數(shù)字。以0x開頭怀读。)
- 八進制(0開頭诉位,0-7組成。)
- 最大小值,無窮大小值(由于內(nèi)存的限制菜枷,ECMAScript 并不能保存世界上所有的數(shù)值)
- 最大值:Number.MAX_VALUE
- 最小值:Number.MIN_VALUE
- 無窮大:Infinity, 如果超過了最大值就會返回該值
- 無窮胁钥贰:-Infinity, 如果超過了最小值就會返回該值
- NaN 非法數(shù)字(Not A Number),JS中當(dāng)對數(shù)值進行計算時沒有結(jié)果返回,則返回NaN
- String 字符串
- 凡是用雙引號或者單引號引起的都是字符串啤誊。
var str1 = "哈哈"; var str2 = '哈哈'; alert(typeof(num1)); alert(typeof(num2));
- Boolean 布爾數(shù)據(jù)類型
- 只有2個值一個是true, 一個是false. 實際運算中true=1,false=0
var n1 = 1; var n2 = 2; alert(typeof(n1==n2);//false alert(typeof(n1<n2);//true
- Undefined 變量未初始化
- 定義了變量岳瞭,沒有給變量賦值,但變量在內(nèi)存中是存在的
var n1; alert(n1);
- Null 空值(變量未引用)
- 在內(nèi)存中是找不到這個變量的
var n1 = null;
6.比較運算符
- 大于>
- 小于<
- 大等>=
- 小等<=
- 等于 ==
- 不等于 !=
7.算術(shù)運算符
- +號
- 兩個數(shù)字類型的變量相加拥娄,得到的是一個數(shù)字類型。
- 一個數(shù)字類型和一個字符串相加瞳筏,得到的是一個字符串稚瘾。
- -號
- 兩個數(shù)字類型的變量相減,得到的是一個數(shù)字類型姚炕。
- 一個數(shù)字類型和一個數(shù)字字符串相減摊欠,得到的是一個數(shù)字類型。
- 一個數(shù)字類型和一個非數(shù)字字符串相減柱宦,得到的是NaN,是一個數(shù)字類型些椒。
- /號
- 兩個數(shù)字類型的變量相除,得到的是一個數(shù)字類型捷沸。
- 一個數(shù)字類型和一個數(shù)字字符串相除摊沉,得到的是一個數(shù)字類型。
- 一個數(shù)字類型和一個非數(shù)字字符串相除痒给,得到的是NaN,是一個數(shù)字類型说墨。
- 0做為除數(shù)的時候,得到結(jié)果 Infinity (無限大)苍柏,是一個數(shù)字類型尼斧。
- %(取余數(shù))
8.帶操作的運算符
運算符 | 示例 | 等價于 |
---|---|---|
+= | a+=b | a=a+b |
-= | a-=b | a=a-b |
*= | a*=b | a=a*b |
/= | a/=b | a=a/b |