JS数据类型,类型转换

ECMAScript:标准、核心
HTML 标签类型:block、inline、inline-block、table……
JS中的数据类型:数字(Number)、字符串(String)、布尔(boolean)、函数、对象(obj、[]、{}、null)、未定义(undefined)

typeof 判断数据类型

  • typeof操作符的操作数可以是变量也可以是数值字面量。
var i = 100;
 alert( typeof i );           // number
 alert(typeof 100);        //number
var s = ' miaov ';
 alert( typeof s );               // string
 alert( s.length );               // 7
 alert( s.charAt(3) );        // 'a'
var b = true;               // 布尔值:true  false
 alert( typeof b );       // boolean
var arr=[5,6,9,3];
alert(typeof(arr));     //object
var obj = document;
 alert( typeof obj );             // object  物体、东西、对象
var n = null;
 alert( typeof n );            //object(从逻辑角度看,null值表示一个空对象指针,所以会返回object)
var a;
alert(typeof a);   //undefined

数据类型转换-number

  • JS中有三个函数可以将非数值转化为数值:Number(),ParesInt(),ParesFloat()。
  • 区别:Number()可以用于任何数据类型,而另外两个函数专门用于把字符串转换成数值

Number()函数的转换规则如下

  1. 如果是boolean值,true和false会分别转化为1和0;
    var a=true;
    alert(Number(a));  // 1
  1. 如果只是数字值,只是简单的传入和返回。
    var a=100;
    alert(Number(a));  // 100
  1. 如果是Null值,则会返回0;
var a = null;
// alert( Number(a) );             // 0
  1. 如果是undefined,函数,json则都返回NaN;
var json = {};
// alert( Number(json) ); //NaN
var u;
// alert( Number(u) );  //NaN
var a3 = function (){ alert(1); };
// alert( Number(a3) );           // NaN
  1. 如果是字符串,遵循下列规则:
  • 如果字符串中只包含数字(包括正负,并且前导的零会被忽略),则将其转换为十进制数值
var a = '+100';
 alert( a+100 );      // '100100'
 alert( Number(a) );          // 100
  • 如果字符串中包含有效的浮点数,则将其转化为对应的浮点数
    var a=2.123;
    alert(Number(a)); //2.123
  • 如果字符串中包含有效的十六进制格式,如'0xf',则将其转化为相同大小的十进制数值
 var a=0xAD;
 alert(Number(a));  //173
  • 如果是空字符串(不包含任何字符),则将其转换为0;
var a1 = '    ';
// alert( Number(a1) );     // 0
  • 其他格式的字符串将会被转化为NaN;

parseInt()转换规则如下:

  1. 它会忽略字符串前面的空格,直至找到第一个非空字符,如果第一字符不是数字符号,则返回NaN。
  2. 空字符串也会被转换为NaN。
  3. 从第一数字字符开始解析,直到解析到最后一个数字字符或者遇到一个非数字字符则会停止解析,相应的小数点也不会被解析。
  4. 当需要解析进制数时最好在函数中添加第二个参数:转换时使用的基数(即多少进制的数字)。
var num=parseInt('0xAF',16) //175

parseFloat()的与parseInt()的一些区别:

  1. 它解析的第一个小数点有效,第二个小数点无效。
  2. 前导0会被忽略,所以只能解析十进制
//特殊的一些转换
var a=parseFloat('0xAF');  //0
var b=parseFloat('3.125e7'); //31250000
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一章: JS简介 从当初简单的语言,变成了现在能够处理复杂计算和交互,拥有闭包、匿名函数, 甚至元编程等...
    LaBaby_阅读 1,697评论 0 6
  • 变量 声明变量 命名变量区分大小写的语言第一个字符是字母或下划线_,数字不能作为第一个字符字符必须是字母,数字或者...
    flyingtoparis阅读 834评论 0 0
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,270评论 0 4
  • ECMAScript中有5种简单数据类型(也称为基本数据类型):Undefined 、Null、 Boolean ...
    胖胖冰阅读 245评论 0 0
  • 好朋友接二连三的结婚了,有一种做爸爸的把女儿交出去的感觉,有些许的不舍,也明白好朋友之后的精力更多的会放在...
    洋葱葱阅读 1,895评论 37 33