1、JavaScript:
基于對象和事件驅(qū)動,運行在瀏覽器客戶端的腳本語言。
js的運行環(huán)境基于瀏覽器的
對象:在程序環(huán)境中,任何一個具體的事物都可以稱為對象(對象好操作)
事件:在程序中,用戶的每一個具體的行為動作都稱為事件
2、js的基本組成:
? 1.語法基礎(chǔ)(ECMAScript)
? 2.DOM :通過js操作網(wǎng)頁
? 3.BOM :瀏覽器效果
3、js的書寫方式:
1.內(nèi)嵌式:
將js代碼嵌入到HTML網(wǎng)頁中,通過 在html頁面內(nèi)部設(shè)置
? <script type="text/javascript">
? </script>
該標(biāo)簽可以放到head標(biāo)簽中或者body標(biāo)簽中。
2.外聯(lián)式:
? 新建js文件
?? ? ? 通過script標(biāo)簽引用到當(dāng)前頁面中 <script type="text/javascript" src="test.js"></script>
? 注意:1. 不能將代碼寫到外聯(lián)式標(biāo)簽中。 2.一個網(wǎng)頁中可以同時調(diào)用多個外部js文件
3.行內(nèi)式:
? 將js代碼寫到標(biāo)簽內(nèi)部? ? <div onclick="js代碼"></div>
? 注意:onclick 是一個點擊事件: 當(dāng)點擊div的時候,會觸發(fā)該事件,執(zhí)行該事件中的代碼
4、js的輸出書寫方式:
? alert? 在網(wǎng)頁中以彈出窗口的形式輸出消息
? console.log? 在瀏覽器控制臺中輸出消息。調(diào)試錯誤信息。
? document.write 在網(wǎng)頁中輸出消息,通過js的方式將內(nèi)容放到body標(biāo)簽中,還可以輸出HTML標(biāo)簽。例如:document.write('<h1>我是一個標(biāo)題標(biāo)簽</h1>')
? prompt 通過js的方式接受用戶輸入的消息(獲取消息方式)得到的結(jié)果是字符串類型。
? confirm 通過js的方式獲取用戶的選中操作(確定? 或者? 取消)
5、js代碼注意事項:
? 1.在js中是嚴(yán)格區(qū)分字母大小寫的。
? 2.如果在網(wǎng)頁中要輸出漢字或者字母,一定要帶引號。
? 3.一段完整的js代碼后面要以? ; 結(jié)尾。
? 4.在程序中凡是遇到特殊符號,必須是英文輸入法下的符號。
變量
1、為什么要有變量:
在程序執(zhí)行過程中,需要將臨時數(shù)據(jù)保存。
2、什么是變量:
變量就是一個容器,用來保存數(shù)據(jù)的容器。
3、如何使用變量:
? 1、先定義變量:
? 方式1. var? 自定義變量名;es5中的方式
? 方式2. let 自定義變量名;es6中的方式
? 2、給變量賦值:
? 變量名 = 值;
? 3、將變量中的值輸出:
? 先執(zhí)行賦值運算符右側(cè)的代碼,然后將右側(cè)的結(jié)果賦值給左側(cè)的變量
? 使用的時候變量不需要帶引號
4、變量詳解:
1.在定義變量的時候,必須使用 var 或者 let 關(guān)鍵字
2.關(guān)于自定義變量名規(guī)則注意事項:
? 變量在定義的時候最好遵守駝峰命名法 /
? 變量的命名最好具有一定的語義(英文翻譯)/
? 變量的命名不能使用關(guān)鍵字 /
? 變量的命名不能使用保留字(在當(dāng)前的js版本中沒有特殊含義,但是在其他版本中具有特殊含義)/
? 變量的命名中間不能出現(xiàn)空格 /
? 變量的命名不能使用漢字 /
? 變量的命名不能以數(shù)字開頭 /
? 變量的命名不能以特殊符號開頭($ 和 _除 外)/
3.給變量賦值注意規(guī)則:
? = 叫賦值運算符,作用就是用來賦值的,不是用來判斷相等的。(‘==’? 或者 ‘===’ 判斷相等)/
? 在賦值運算符前后加一個空格隔開 /
? 在賦值過程中,如果出現(xiàn)漢字或者字母必須加引號 /
? 同一個變量在賦值的時候,只能保存一個值,且是最后一次的賦值結(jié)果 /
4.變量在使用(輸出)規(guī)則:
? 當(dāng)使用變量的時候,變量不需要加引號(如果是變量則不用加引號)/
? 如果帶有引號,那么不再表示變量了,引號中是什么就輸出什么,不再輸出變量中的值了 /
? var 變量名 = 值;
?
數(shù)據(jù)類型
注意:只要有變量,變量就必須有明確的數(shù)據(jù)類型
一、數(shù)據(jù)類型介紹:
1.基礎(chǔ)數(shù)據(jù)類型(簡單數(shù)據(jù)類型):
1.1 數(shù)字類型(number):
特點:只要變量的值是純數(shù)字且不帶引號,這個變量就是數(shù)字類型 /
凡是數(shù)字都屬于該類型【整數(shù),小數(shù),負(fù)數(shù)】
1.2 字符串類型(string):
特點:只要變量的值帶有引號,該變量就是字符串類型 /
注意事項:
一般字符串推薦使用單引號,字符串可以是引號中的任意文本。/
只要有字符串參與數(shù)學(xué)計算,那么最后的結(jié)果都是字符串。/
如果有字符串相加,那么加號不再是數(shù)學(xué)中的加屬性了,此時的加號就是一個簡單的鏈接符號(拼接字符串)
1.3布爾類型(boolean)
特點:只要變量的值是 true 或者 false 中的一個,那么該變量就是布爾類型。
注意事項:true 和 false 就是一個特殊的值 /
true? 在程序中表示正確的,條件成立的 /
false? 在程序中表示錯誤的,條件不成立的
1.4 undefined類型(undefined)
特點:如果一個變量沒有賦值,該變量的默認(rèn)是undefined ,如果一個變量的值是undefined,那么該變量的數(shù)據(jù)類型就是undefined類型。
1.5 null 空對象類型(了解)
特點:null類型被看做空對象指針.只有一個值,即 null 值 / null 空比如一個變量原先有值 可以將變量的值設(shè)置為null 代表清空變量容器中的數(shù)據(jù)? / 作用為了清空對象。
2.復(fù)雜數(shù)據(jù)類型:對象
二、程序中獲取數(shù)據(jù)類型:
通過 typeof(變量)獲取當(dāng)前變量的數(shù)據(jù)類型
var a = 1; console.log(typeof (a));
三、數(shù)據(jù)類型轉(zhuǎn)換:
隱式類型轉(zhuǎn)換:程序在計算過程中,轉(zhuǎn)化的數(shù)據(jù)類型。(程序自己的行為)
強(qiáng)制類型轉(zhuǎn)換(顯示類型轉(zhuǎn)換):數(shù)據(jù)類型的轉(zhuǎn)換是通過程序員的行為實現(xiàn)的。
1.轉(zhuǎn)數(shù)字類型:
Number(變量);通過Number( )方法將變量轉(zhuǎn)換為數(shù)字類型。
特點:在數(shù)據(jù)類型轉(zhuǎn)換的過程中,可以將原來的值保留,遇到小數(shù)直接保留下來,不會舍去 /
在數(shù)據(jù)類型轉(zhuǎn)換的過程中,如果遇到非數(shù)字的值,則最后的結(jié)果為NaN /
NaN (not? a? number)? ----NaN對應(yīng)的數(shù)據(jù)類型是數(shù)值類型。
parseInt(變量);通過parseInt( )方法將變量轉(zhuǎn)換為數(shù)字類型。
特點:只會保留整數(shù)部分,通過該方式進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換后得到就是一個整數(shù)
parseFloat(變量);通過parseFloat( )方法將變量轉(zhuǎn)換為數(shù)字類型。
特點:在數(shù)據(jù)類型轉(zhuǎn)換的過程中,可以將原來的值保留 /
在數(shù)據(jù)類型轉(zhuǎn)換的過程中,如果遇到非數(shù)字的值,則停止轉(zhuǎn)換,直接保留數(shù)字部分。
2.轉(zhuǎn)字符串類型:
String(變量);將變量轉(zhuǎn)換為字符串類型。
特點:可以將任何的值轉(zhuǎn)換為字符串類型。
變量.toString( );將變量轉(zhuǎn)換為字符串類型。
特點:只能將支持該方法的值轉(zhuǎn)換為字符串類型。(不支持undefined和null)
3.轉(zhuǎn)布爾類型:
Boolean(變量) ;將變量轉(zhuǎn)換為字符串類型。
注意:當(dāng)其他數(shù)據(jù)類型轉(zhuǎn)換為布爾類型后,變量原來的值一定會發(fā)生改變,是 true 或者 false 這兩個值。
0? |''(空字符串) | null | undefined | NaN? 會轉(zhuǎn)換成false? 其它都會轉(zhuǎn)換成 true
案例:
<script>
?? ? ? ? var a = prompt('請輸入3位數(shù)');?
?? ? ? ? a = Number(a);
?? ? ? ? var bai = parseInt(a / 100);
?? ? ? ? var shi = parseInt(a % 100 / 10);
?? ? ? ? var ge = parseInt(a % 10);
?? ? ? ? console.log('百位是:' + bai + '十位是:' + shi + '個位是:' + ge);
?? ? ? (? alert('百位是: ' + bai + '\n' + '十位是: ' + shi + '\n' + '個位是: ' + ge);換行的 )
?? ? </script>
補(bǔ)充
拼接字符串:? 使用 + 將多個值拼接到一塊,最少得有一個是字符串
使用 + 將前后的值鏈接到一塊
?
2.轉(zhuǎn)義字符:
原因:
?? ? ? ? // 1. 單引號或者雙引號具有特殊性
?? ? ? ? // 2. 單引號或者雙引號都是成對出現(xiàn)的
// 解決:
?? ? ? ? // 1. 可以使用引號的過程中,可以使用單嵌套雙,可以雙嵌套單
?? ? ? 轉(zhuǎn)義字符(\在符號的前面)\n? ? ? ? ? ? 換行 \ ? ? ? ? 斜杠\' 單引號\" ? ? ? ? 雙引號\r ? ? ? ? 回車符
?