ECMAScript標準,語法遵循這個標準
~~~
var a = 1;
~~~
***
### 數據類型
js中的數據類型:
數值型(Number)
字符串(String)
布爾型(boolean)
函數型(function)
對象(Object):例如window,document,json,數組
***
**面試題:JavaScript中原始數據類型有哪些?**
Number,String,Boolean,Null,undefined
***
### typeof查看類型
***
### 類型轉換
~~~
<script type="text/javascript">
var a = '100';
Number(a); // 轉成數字100
var a = '0000100';// 轉換也是100
var a1 = '';
alert(Number(a1));//轉換成0,空格也是0
var a2 = true;
alert(Number(a2));// true-1 false-0
var a3 = function(){alert(1)};
alert(Number(a3));//NaN 轉不了
var a4 = [];
alert(Number(a4));//如果數組沒有元素,就是0,空字符串也是0,123就是123,數組中放一堆東西,轉成NaN
var json = {abc:123};
alert(Number(json));//json轉不了,NaN
var a5 = null;
alert(Number(a5));//0
var a6;
alert(Number(a6));//NaN
</script>
~~~
~~~
<script type="text/javascript">
var b = '100px';
alert(Number(b));//NaN
// 這時我們用parseint
var b = '100px';
alert(parseInt(b));//從左到右一個一個看,所以轉換結果是100,不要拿paerint去轉其他東西,就讓它轉換(前面的)數字就可以;
var c = '12.34元';
alert(parseInt(c));//12,用parseFloat,如果有多個.就只能到第一個點
alert(parseInt(c),10);//10進制 2 二進制 8 八進制
var num = '200';
// 判斷一個值是整數還是小數
if(parseInt(num) == parseFloat(num)){
alert(num+'是整數');
}else{
alert(num+'是小數');
}
</script>
~~~
***
### 隱式轉換
~~~
<script type="text/javascript">
// 利用上述number、parseint...是顯式轉換,還有隱式轉換
alert('200' - 3);// - * / % 都轉換成數字
alert(200+'3');//+是連接
var a = '10';
a++;//a--;
alert(a);//11
// <、>
alert('10' > 9);//true
alert('10' > '9');//false,比較的是字符碼
// !取反
alert(!true);//false
// ==
alert(2 == '2');//true,比較時有隱式轉換
alert('2' === 2);//false,類型和值必須都相等
alert(Number('...'));//NaN
alert('....'-9);//NaN
</script>
~~~
***
### NaN
NaN:not a number 出現轉換錯誤時的提示信息
NaN與自己相比都是false
***
### isNaN()
isNaN()是一個方法,幫我們判斷某些值是不是數字,其本身屬于Number類型
isNaN()遇到數字就是false
~~~
<script type="text/javascript">
alert(isNaN(2));//false
alert(isNaN('你好'));//true
alert(isNaN('50'));//false,內部經是過Number轉換的
alert(isNaN(true));//false
</script>
~~~
課堂練習-1:判斷一個文本框中輸入的是不是數字(思考:可不可以用typeof判斷)
課堂練習-2:
