JS数据类型

一、基本数据类型(简单数据类型)

1. number 数值类型

整数

(1)十进制表示   var a = 100;

(2)八进制表示

  以0为前缀  var b = 021; //结果为十进制的 17

(3)十六进制表示

  以0x为前缀  var c = 0x35;//结果为十进制的 53

使用 : 整数可以采用不同进制表示,在控制台输出时一律会按照十进制输出

小数

(1)小数点表示  var m = 1.2345;

(2)科学计数法

例 : 1.5e3

e表示10为底,e后面的数值表示10的次方数

1.5e3 等价于 1.5 * 10(3)

2. string 字符串类型

字符串 : 由一个或多个字符组成,使用""或''表示,每一位字符都有对应的Unicode编码

  var s = "100";

  var s1 = "张三";

3. boolean 布尔类型

只有真和假两个值,布尔值与number值可以互相转换。true 为 1,false 为 0

  var isSave = true;

  var isChecked = false;

4. undefined 

特殊值,变量声明未赋值时显示undefined

  var a;

  console.log(a);//undefined

5. null 空类型

解除对象引用时使用null,表示对象为空

二、引用数据类型

主要指对象,函数等

三、检测数据类型

typeof  变量或表达式

typeof (变量或表达式)

var n = "asda";
console.log(typeof n);//string
console.log(typeof(n));//string

 四、数据类型转换

不同类型的数据参与运算时,需要转换类型

1.强制类型转换

(1)转换字符串类型

  方法 : toString()

  返回转换后的字符串

 var a = 100;
 a = a.toString(); //"100"
 var b = true;
 b = b.toString(); //"true"
 console.log(a1,typeof a1,b1,typeof b1)

(2)转换number类型

  Number(param)

  参数为要进行数据类型转换的变量或值,返回转换后的结果:

    如果转换成功,返回number值

    如果转换失败,返回NaN,(Not a Number),只要数据中存在非number字符,一律转换失败,返回 NaN

  parseInt(param)

  参数为要解析的数据

  作用 : 从数据中解析整数值

  过程 :

    1. 如果参数为非字符串类型,会自动转成字符串

    2. 从左向右依次对每一位字符转number,转换失败则停止向后解析,返回结果

  parseFloat(param)

  作用 : 提取number值,包含整数和小数部分

/*整体转number,使用Number()*/
var s1 = '123';
var s2 = '101a';
var s3 = true;
var s4 = 'true';
var s5 = null;
var s6;
console.log(Number(s1),s1)    //123 '123'
console.log(Number(s2),s2)    //NaN '101a'
console.log(Number(s3),s3)    //1 true
console.log(Number(s4),s4)    //NaN 'true'
console.log(Number(s5),s5)    //0 null
console.log(Number(s6),s6)    //NaN undefined
/*
提取字符串中的number部分:会将非字符串的数据自动转换成字符串
parseInt(n)
parseFloat(n)
*/
console.log(parseInt(35.5))            //35
console.log(parseInt("35.5"))          //35
console.log(parseFloat('35.5.6.6'))    //35.5
console.log(parseFloat('a35.5'))       //NaN
console.log(parseFloat('101a'))        //101        

(3)转Boolean类型

/*除‘零’值以外,其他数据都为真,只有‘零’值为假*/
console.log(Boolean(100))         //true
console.log(Boolean('100'))        //true
/*以下为‘零’值*/
console.log(Boolean('0'))          //true
console.log(Boolean(0.0))          //false
console.log(Boolean(''))           //false
console.log(Boolean(null))         //false
console.log(Boolean(undefined))    //false
console.log(Boolean(NaN))          //false

2.隐式类型转换(自动转换)

(1)当字符串与其他数据类型进行"+"运算时,表示字符串的拼接,不再是数学运算

  转换规则 :将非字符串类型的数据转换成字符串之后进行拼接,最终结果为字符串

(2)其他情况下,一律将操作数转number进行数学运算

var r1 = "我学"+"Python";
console.log(r1,typeof r1)  //我学Python string
var r2 = 'maple'+31;
console.log(r2,typeof r2)  //maple31 string
var r3 = 'maple'+true;
console.log(r3,typeof r3)  //mapletrue string
var r4 = 'maple'+null;
console.log(r4,typeof r4)  //maplenull string
var r5 = 'maple'+undefined;
console.log(r5,typeof r5)  //mapleundefined string
var r6 = 'maple'+NaN;
console.log(r6,typeof r6)  //mapleNaN string        
var r7 = 'maple'+5+10;
console.log(r7,typeof r7)  //maple510 string
var r8 = 10+5+'maple';  
console.log(r8,typeof r8)  //15maple string

3.其他情况

var n1 = '100'+'5'        //1005 string
console.log(n1,typeof n1)
var n2 = '100'-5         //95
console.log(n2,typeof n2)
var n3 = '100'-'5'        //95
console.log(n3,typeof n3)
var n4 = '100'-true       //99
console.log(n4,typeof n4)
var n5 = '100a'-5         //NaN
console.log(n5,typeof n5)
var n6 = '100a'-true      //NaN
console.log(n6,typeof n6)
var n7 = '100'+'true'     //100true string
console.log(n7,typeof n7)
var n8 = true+100         //101
console.log(n8,typeof n8)
var n9 = true+true        //2
console.log(n9,typeof n9)
var n10 = 100+null        //100
console.log(n10,typeof n10)
var n11 = 100+undefined   //NaN
console.log(n11,typeof n11)
var n12 = 100+NaN         //NaN
console.log(n12,typeof n12)

 

posted @ 2019-07-20 00:37  maplethefox  阅读(501)  评论(0编辑  收藏  举报