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:
![](https://box.kancloud.cn/d1f36a63e0eda42881e767ac609af73a_387x152.png)