js編寫位置
可以將js代碼編寫到外部js文件中移必,然后通過script標簽引入
寫到外部文件中可以在不同的頁面中同時引用,也可以利用到瀏覽器的緩存機制
這是推薦使用的方式
script標簽一旦用于引入外部文件了佃乘,就不能再編寫代碼了这揣,即使編寫了瀏覽器也會忽略
如果需要則可以再創(chuàng)建一個新的script標簽用于編寫內(nèi)部代碼
..........................................................................................................................................................
可以將js代碼編寫到script標簽中
<script type="text/javascript">
alert("我是script標簽中的代碼1房住匀归!");
</script>
..........................................................................................................................................................
可以將js代碼編寫到標簽的onclick屬性中
當我們點擊按鈕時项鬼,js代碼才會執(zhí)行
雖然可以寫在標簽的屬性中蜻直,但是他們屬于結(jié)構(gòu)與行為耦合,不方便維護括眠,不推薦使用
..........................................................................................................................................................
可以將js代碼寫在超鏈接的href屬性中彪标,這樣當點擊超鏈接時,會執(zhí)行js代碼
js基本語法
JS注釋
多行注釋
注釋中的內(nèi)容不會被執(zhí)行掷豺,但是可以在源代碼中查看
要養(yǎng)成良好的編寫注釋的習慣捞烟,也可以通過注釋來對代碼進行一些簡單的調(diào)試
..........................................................................................................................................................
單行注釋
alert("hello");
document.write("hello");
console.log("hello");//該語句用來在控制臺輸出一個日志
..........................................................................................................................................................
1.JS中嚴格區(qū)分大小寫
2.JS中每一條語句以分號(;)結(jié)尾
- 如果不寫分號,瀏覽器會自動添加萌业,但是會消耗一些系統(tǒng)資源坷襟,
- 而且有些時候奸柬,瀏覽器會加錯分號生年,所以在開發(fā)中分號必須寫
3.JS中會忽略多個空格和換行,所以我們可以利用空格和換行對代碼進行格式化
..........................................................................................................................................................
字面量和變量
字面量(常量)廓奕,都是一些不可改變的值
比如 :1 2 3 4 5 "hello"
字面量都是可以直接使用抱婉,但是我們一般都不會直接使用字面量
變量? ? 變量可以用來保存字面量,而且變量的值是可以任意改變的
變量更加方便我們使用桌粉,所以在開發(fā)中都是通過變量去保存一個字面量蒸绩,而很少直接使用字面量
可以通過變量對字面量進行描述
x = 123456789123456789
..........................................................................................................................................................
標識符
標識符
- 在JS中所有的可以由我們自主命名的都可以稱為是標識符
- 例如:變量名、函數(shù)名铃肯、屬性名都屬于標識符
- 命名一個標識符時需要遵守如下的規(guī)則:
1.標識符中可以含有字母患亿、數(shù)字、_押逼、$
2.標識符不能以數(shù)字開頭
3.標識符不能是ES中的關(guān)鍵字或保留字
4.標識符一般都采用駝峰命名法
- 首字母小寫步藕,每個單詞的開頭字母大寫,其余字母小寫
helloWorld xxxYyyZzz
- JS底層保存標識符時實際上是采用的Unicode編碼挑格,所以理論上講咙冗,所有的utf-8中含有的內(nèi)容都可以作
數(shù)據(jù)類型
數(shù)據(jù)類型指的就是字面量的類型
在JS中一共有六種數(shù)據(jù)類型
String 字符串
Number 數(shù)值
Boolean 布爾值
Null 空值
Undefined 未定義
Object 對象
其中String Number Boolean Null Undefined屬于基本數(shù)據(jù)類型
而Object屬于引用數(shù)據(jù)類型
...............................................................................................................................................................
String字符串
- 在JS中字符串需要使用引號引起來
- 使用雙引號或單引號都可以,但是不要混著用
- 引號不能嵌套漂彤,雙引號不能放雙引號雾消,單引號不能放單引號
..........................................................................................................................................
在字符串中我們可以使用\作為轉(zhuǎn)義字符灾搏,當表示一些特殊符號時可以使用\進行轉(zhuǎn)義
\" 表示 "
\' 表示 '
\n 表示換行
\t 制表符
\\ 表示\
...........................................................................................................................
Number
在JS中所有的數(shù)值都是Number類型,
包括整數(shù)和浮點數(shù)(小數(shù))
JS中可以表示的數(shù)字的最大值
Number.MAX_VALUE
1.7976931348623157e+308
Number.MIN_VALUE 大于0的最小值
5e-324
如果使用Number表示的數(shù)字超過了最大值立润,則會返回一個
Infinity 表示正無窮
-Infinity 表示負無窮
使用typeof檢查Infinity也會返回number
NaN 是一個特殊的數(shù)字狂窑,表示Not A Number
使用typeof檢查一個NaN也會返回number
..........................................................................................................................................................
可以使用一個運算符 typeof 來檢查一個變量的類型
語法:typeof 變量
檢查字符串時,會返回string
檢查數(shù)值時桑腮,會返回number
..........................................................................................................................................................
如果使用JS進行浮點運算蕾域,可能得到一個不精確的結(jié)果
所以千萬不要使用JS進行對精確度要求比較高的運算
....................................................................................................................................................
Boolean
Boolean 布爾值
布爾值只有兩個,主要用來做邏輯判斷
true
- 表示真
false
- 表示假
使用typeof檢查一個布爾值時到旦,會返回boolean
....................................................................................................................................................
Null和Undefined
Null(空值)類型的值只有一個旨巷,就是null
null這個值專門用來表示一個為空的對象
使用typeof檢查一個null值時,會返回object
Undefined(未定義)類型的值只有一個添忘,就undefind
當聲明一個變量采呐,但是并不給變量賦值時,它的值就是undefined
使用typeof檢查一個undefined時也會返回undefined
................................................................................................................................
強制類型轉(zhuǎn)換
強制類型轉(zhuǎn)換
- 指將一個數(shù)據(jù)類型強制轉(zhuǎn)換為其他的數(shù)據(jù)類型
- 類型轉(zhuǎn)換主要指搁骑,將其他的數(shù)據(jù)類型斧吐,轉(zhuǎn)換為
String Number Boolean
................................................................................................................................
將其他的數(shù)據(jù)類型轉(zhuǎn)換為String
方式一:
- 調(diào)用被轉(zhuǎn)換數(shù)據(jù)類型的toString()方法
- 該方法不會影響到原變量,它會將轉(zhuǎn)換的結(jié)果返回
- 但是注意:null和undefined這兩個值沒有toString()方法仲器,如果調(diào)用他們的方法煤率,會報錯
方式二:
- 調(diào)用String()函數(shù),并將被轉(zhuǎn)換的數(shù)據(jù)作為參數(shù)傳遞給函數(shù)
- 使用String()函數(shù)做強制類型轉(zhuǎn)換時乏冀,
對于Number和Boolean實際上就是調(diào)用的toString()方法
但是對于null和undefined蝶糯,就不會調(diào)用toString()方法
它會將 null 直接轉(zhuǎn)換為 "null"
將 undefined 直接轉(zhuǎn)換為 "undefined"
................................................................................................................................
轉(zhuǎn)換為Number
將其他的數(shù)據(jù)類型轉(zhuǎn)換為Number
轉(zhuǎn)換方式一:
使用Number()函數(shù)
- 字符串 --> 數(shù)字
1.如果是純數(shù)字的字符串,則直接將其轉(zhuǎn)換為數(shù)字
2.如果字符串中有非數(shù)字的內(nèi)容辆沦,則轉(zhuǎn)換為NaN
3.如果字符串是一個空串或者是一個全是空格的字符串昼捍,則轉(zhuǎn)換為0
- 布爾 --> 數(shù)字
true 轉(zhuǎn)成 1
false 轉(zhuǎn)成 0
- null --> 數(shù)字 0
- undefined --> 數(shù)字 NaN
轉(zhuǎn)換方式二:
- 這種方式專門用來對付字符串
- parseInt() 把一個字符串轉(zhuǎn)換為一個整數(shù)
- parseFloat() 把一個字符串轉(zhuǎn)換為一個浮點數(shù)
....................................................................................................................................................
其他進制的數(shù)字
在js中,如果需要表示16進制的數(shù)字肢扯,則需要以0x開頭
如果需要表示8進制的數(shù)字妒茬,則需要以0開頭
如果要要表示2進制的數(shù)字,則需要以0b開頭蔚晨,但是不是所有的瀏覽器都支持
....................................................................................................................................................
轉(zhuǎn)換為Boolean
將其他的數(shù)據(jù)類型轉(zhuǎn)換為Boolean
使用Boolean()函數(shù)
- 數(shù)字 ---> 布爾
- 除了0和NaN乍钻,其余的都是true
- 字符串 ---> 布爾
- 除了空串,其余的都是true
- null和undefined都會轉(zhuǎn)換為false
- 對象也會轉(zhuǎn)換為true
....................................................................................................................................................
運算符
運算符也叫操作符
通過運算符可以對一個或多個值進行運算,并獲取運算結(jié)果
比如:typeof就是運算符铭腕,可以來獲得一個值的類型银择,它會將該值的類型以字符串的形式返回
"number" "string" "boolean" "undefined" "object"
算數(shù)運算符
當對非Number類型的值進行運算時,會將這些值轉(zhuǎn)換為Number然后在運算
任何值和NaN做運算都得NaN
+
+可以對兩個值進行加法運算谨履,并將結(jié)果返回
如果對兩個字符串進行加法運算欢摄,則會做拼串,會將兩個字符串拼接為一個字符串笋粟,并返回
任何的值和字符串做加法運算怀挠,都會先轉(zhuǎn)換為字符串析蝴,然后再和字符串做拼串的操作
-
- 可以對兩個值進行減法運算,并將結(jié)果返回
*
* 可以對兩個值進行乘法運算
/
/ 可以對兩個值進行除法運算
%
% 取模運算(取余數(shù))
....................................................................................................................................................
任何值和字符串相加都會轉(zhuǎn)換為字符串绿淋,并做拼串操作
我們可以利用這一特點闷畸,來將一個任意的數(shù)據(jù)類型轉(zhuǎn)換為String
我們只需要為任意的數(shù)據(jù)類型 + 一個 "" 即可將其轉(zhuǎn)換為String
這是一種隱式的類型轉(zhuǎn)換,由瀏覽器自動完成吞滞,實際上它也是調(diào)用String()函數(shù)
....................................................................................................................................................
任何值做- * /運算時都會自動轉(zhuǎn)換為Number
我們可以利用這一特點做隱式的類型轉(zhuǎn)換
可以通過為一個值 -0 *1 /1來將其轉(zhuǎn)換為Number
原理和Number()函數(shù)一樣佑菩,使用起來更加簡單
....................................................................................................................................................