JavaScript基础学习(2)

JS数据类型、类型转换

ECMAScript:标准、核心

  • JS中的数据类型:
    数字、字符串、布尔、函数、对象(obj、[]、{}、null)、未定义
    typeof 判断数据类型
  • 显式类型转换(强制类型转换):
    Number()
    parseInt()
    parseFloat()

Number() 函数把对象的值转换为数字。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var s = '123';
Number(s); //123
var s = '00000123';
Number(s); //123
var s = '+123';
Number(s); //123
var b = true;
Number(b); //0
var f = function(){alert(1);};
Number(f); //NaN
var json = {};
Number(json); //NaN
var arr = [];
Number(arr); //0
var arr = [1];
Number(arr); //1
var arr = ['1'];
Number(arr); //1
var arr = [1,2];
Number(arr); //NaN
var o = null;
Number(o); //0
var u;
Number(u;) //NaN

  • parseInt与parseFloat的区别
    1
    2
    3
    var b = '100px';
    Number(b); //NaN
    parseInt(b); //100

parseInt与parseFloat可用于判断是整数还是小数

  • 隐式类型转换
    + 运算会把数字转换为字符串
    - * / % 运算会把字符串转换为数字
    ++ -- 运算会把字符串转换为数字
    > < 数字的比较、字符串的比较
    - `alert('10' > 9);    //true`
    - `alert('10' > '9');    //false`
    - 数字的比较(比较大小)与字符串的比较(一位一位的比较)是不同的
    

    ! 取反 把右边的数据类型转换成布尔值

  • isNaN应用实例
    NaN === NaN //flase(除NaN外其他类型数据都等于其自身)
    isNaN:判断某些值是不是数字
    isNaN内部是根据Number()进行转换的
  • 数据类型转换小练习
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <script>
    var arr = ['100px','abc'-6,[],-98765,34,-2,0,'300', ,function(){alert(1);},null,document,[],true,'200px'-30,'23.45元',5,Number('abc'),function(){alert(3)}];
    /*
    1.找到arr里所有的数字:-98765,34,-2,0,5
    2.找到可以转成数字的:'100px',-98765,34,-2,0,'300',5
    3.把转成数字以后,最大值判断出来:300
    4.把NaN所在的位置找出来:1 14 17
    */

    /*
    qq号码 判断

    1.有没有输入
    2.输入的是不是数字
    3.不能有0在前面
    4.不能是小数
    5.输入的数字必须在5位以上、10位以内
    */
    </script>

【示例:点击查看