1. JS的字面量與變量
字面量:
都是一些不可改變的值汉柒,如1,2,3,4,5
字面量都是可以直接使用误褪,但我們一般都不會直接使用字面量變量:
變量可以用來保存字面量,而且變量的值是可以任意改變的
變量更加方便我們使用碾褂,所以在開發(fā)中都是通過變量去保存一個字面量
而很少使用字面量聲明變量:
在JS
中使用關(guān)鍵字var
來聲明一個變量
<script type="text/javascript">
var age = 100;
alert(age);
</script>
6. 標(biāo)識符
標(biāo)識符命名的規(guī)則:
- 標(biāo)識符中可以含有
字母
钦铺,數(shù)字
旗唁,_
弟胀,$
域慷。 - 標(biāo)識符不能以數(shù)字開頭
- 標(biāo)識符不能是
JS
中的關(guān)鍵字和保留字 - 標(biāo)識符一般都采用駝峰命名法
JS底層保存標(biāo)識符時實際上是采用的Unicode
編碼颂碘,所以理論上講柏腻,所有的UTF-8
中含有的內(nèi)容都可以作為標(biāo)識符诺擅。
7. 字面量
在JS
中一共與6
種數(shù)據(jù)類型
-
Boolean
布爾值 -
Number
數(shù)值 -
String
字符串 -
Null
空值 -
Undefined
未定義 -
Object
對象
其中Boolean
晨横,Number
咒程,String
鸠天,Null
,Undefined
屬于基本數(shù)據(jù)類型帐姻,而Object
屬于引用數(shù)據(jù)類型
09.Boolean類型
<body>
Boolean 布爾值
布爾值只有兩個稠集,主要用來做邏輯判斷
true:真
false: 假
<script type="text/javascript">
var bool = true;
console.log(bool);
console.log(typeof bool);
</script>
</body>
output:
true
boolean
8. Number
在JS
中所有的數(shù)值都是Number
類型,包括整數(shù)
和浮點數(shù)
可以使用一個運算符typeof
來檢查一個變量的類型
-
typeof
變量 - 檢查字符串時饥瓷,會返回
string
- 檢查數(shù)值時剥纷,會返回
number
如果使用Number
表示的數(shù)字超過了最大值,則會返回一個Infinity
呢铆,表示正無窮
-
Infinity
正無窮大 -
-Infinity
負(fù)無窮大 - 使用
typeof
檢查Infinity
也會返回Number
NaN
是一個特殊的數(shù)字晦鞋,表示Not A Number
使用typeof
檢查一個NaN
也會返回number
在JS
中整數(shù)的運算基本可以保證精確
如果使用JS
進(jìn)行浮點運算,可能得到一個不精確的結(jié)果棺克,所以千萬不要使用JS
進(jìn)行精確度要求比較高的運算
<script type="text/javascript">
var a = 123;
var b = "123";
console.log(typeof a);
console.log(typeof b);
console.log(Number.MAX_VALUE); // 1.7976931348623157e+308
console.log(Number.MAX_VALUE * Number.MAX_VALUE);
var c = Infinity;
console.log(typeof c);
c = "abc" * "bcd";
console.log(typeof c); // NaN
c = Number.MIN_VALUE;
console.log(c); // 5e-324
c = 0.1 + 0.2;
console.log(c); // 0.30000000000000004
</script>
String字符串
- 在
JS
中字符串需要使用引號引起來 - 使用
雙引號
或單引號
都可以悠垛,但是不要混著用 - 引號不能嵌套,雙引號里面不能放雙引號娜谊,單引號里面不能放單引號
<script type="text/javascript">
var a = '我說:"你好漂亮啊!",你說呢确买?,\\,\n';
alert(a);
</script>
10. Null和Undefined類型
<body>
Null:(空值)
這個類型的值只有一個因俐,就是null
null這個值專門用來表示一個為空的對象
使用typeof檢查一個null值時拇惋,會返回一個object
<script type="text/javascript">
var a = null;
console.log(a);
console.log(typeof a);
</script>
output:
null
object
Undefined:(未定義)
類型的值只有一個,就是undefined
當(dāng)聲明一個變量抹剩,但是并不給變量賦值時撑帖,
它的值就是undefined
使用typeof檢查一個undefined時也會返回undefined
<script type="text/javascript">
var b;
console.log(b);
</script>
output:
undefined
</body>
11. 強(qiáng)制類型轉(zhuǎn)換
強(qiáng)制類型轉(zhuǎn)換
1.將一個數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換為其他的數(shù)據(jù)類型
2.類型轉(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方法衷敌,
<script type="text/javascript">
var a = 123;
var b = a.toString();
console.log(typeof a);
console.log(a);
console.log(typeof b);
console.log(b);
</script>
<!--
方法二:
調(diào)用String()函數(shù)勿侯,并將被轉(zhuǎn)換的數(shù)據(jù)作為參數(shù)傳遞給函數(shù)
使用String()函數(shù)做強(qiáng)制類型轉(zhuǎn)換時,
對于Number和Boolean實際上就是調(diào)用的toString()方法
但是對于null和undefined缴罗,就不會調(diào)用toString()方法
會將null直接轉(zhuǎn)換為"null"
會將undefined直接轉(zhuǎn)換為"undefined"
-->
<script type="text/javascript">
var a = 123;
var b = String(a);
console.log(typeof a);
console.log(a);
console.log(typeof b);
console.log(b);
</script>
12. 轉(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
4.true轉(zhuǎn)換為1舌界,false轉(zhuǎn)換為0
5.null轉(zhuǎn)換為0
6.undefined轉(zhuǎn)換為NaN
<script type="text/javascript">
var a = " ";
a = Number(a);
a = false;
a = Number(a);
a = null;
a = Number(a);
a = undefined;
a = Number(a);
console.log(typeof a);
console.log(a);
</script>
<!--
調(diào)用parseInt()函數(shù)將b轉(zhuǎn)換為Number
parseInt()可以將一個字符串中的有效的整數(shù)內(nèi)容取出來掘譬,轉(zhuǎn)換為Number
parseFloat()它可以獲取有效的小數(shù)位
如果對非String類型的內(nèi)容使用parseInt(),parseFloat()它會先將其轉(zhuǎn)換為
String呻拌,然后再操作葱轩。
-->
<script type="text/javascript">
var b = "123px";
b = parseInt(b); // 123
b = "123.456px";
b = parseFloat(b); // 123.456
console.log(typeof b);
console.log(b);
</script>
13.其他進(jìn)制的數(shù)
在JS中,如果需要表示16進(jìn)制的數(shù)藐握,則需要以0x開頭
如果需要表示8進(jìn)制的數(shù)靴拱,則需要以0開頭
如果需要表示2進(jìn)制的數(shù),則需要以0b開頭
<script type="text/javascript">
var a = 0x123; // 291 16進(jìn)制
a = 070; // 56 8進(jìn)制
a = 0b10; // 2進(jìn)制 2
// 像"070"這種字符串趾娃,有些瀏覽器會當(dāng)成8進(jìn)制解析缭嫡,有些會當(dāng)成10進(jìn)制解析
a = "070";
a = parseInt(a,10); // 第二個參數(shù),指定數(shù)字的進(jìn)制
console.log(typeof a);
console.log(a);
</script>
14. 轉(zhuǎn)換為Boolean
<!--
將其他的數(shù)據(jù)類型轉(zhuǎn)換為Boolean抬闷,使用Boolean()函數(shù)
1.數(shù)字---》Boolean:除了0和NaN妇蛀,其余的都是true
2.字符串---》Boolean:除了空串,其余的都是true
3.null和undefined都會轉(zhuǎn)為false
4.對象也會轉(zhuǎn)為true
-->
<script type="text/javascript">
var a = 123;
a = undefined;
a = Boolean(a);
console.log(typeof a);
console.log(a);
</script>