js学习笔记4----数据类型

时间:2023-03-08 22:10:15
js学习笔记4----数据类型
1.ECMAScript:标准、核心

  JS中的数据类型:数字(NaN)、字符串(空隔也会占据长度)、布尔值(true和false)、函数、对象(obj、[]、{}、null)、undefined。

  typeof 判断数据类型

2.数据类型的转换(显式类型转换或强制类型转换)

  a.  Number()----空的字符串会解析成0,true解析成1,false解析成0, 函数、json和undefinde解析成NaN, null和空的数组解析成0;

      var a="100";

      alert(Number(a)); //弹出100

  b.  parseInt(str,10)----转化从整型,从左到右依次转换,遇到不是数字的(除+,-,空隔)就不再转换。里面的“10”代表十进制,可以为其他进制的方法,缺省值为10.

  c.  parseFloat()----转化成浮点型

3.隐式类型转换

  -,*,/,%    ---- 把字符串变成数字,如alert('200'-3) ===> 197

  +                 ---- 把数字变成字符串,如alert(200+'3') ===> 2003

  ++,--           ---- 把字符串变成数字

> ,<            ---- 数字的比较还是字符串的比较,如alert(200>'10') ===> true, alert('200'>'90') ===> false

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

  ==              ---- 把字符串转换成数字

4.NaN

  a.  NaN:not a number  不是个 数字 的 数字类型 (typeof(NaN) ===> number)。

  b.  一旦写程序出现了NaN,肯定进行了非法的运算操作。

  c.  NaN 是 false。

  d.  NaN 与自己不相等!

5.isNaN

  a.  isNaN:Is not a number (不是数字)

  isNaN(); 是一种方法,判断某些值是不是数字,不喜欢数字,出现数字就为false

  b.  检验的值通过Number()转换,只要为数字,就为false

       如isNaN('250') ===> Number('250') ===> 250 ===> false

     isNaN([]) ===> Number([]) ===>1 ===> false

6.真假的问题

  a.  真:非0的数字,非空字符串(包括空格),true,函数,能找到的元素,[],{}

  b.  假:0,NaN,空字符串,false,不能找到的元素,null,未定义