JavaScript数据类型以及类型转换

JavaScript 数据类型种类

JavaScript中有6种数据类型,其中有五种简单的数据类型

  1. Undefined,null,布尔,数值和字符串.还有一种复杂数据类型Object

  2. 数值(Number):整数和小数(比如1和3.14).

    var a=1;//数值型
    console.log(typeof a);//number
    
  3. 字符串(String):字符组成的文本(比如"Hello World").

    var c="Hello";//字符串
    console.log(typeof c);//String
    
  4. 布尔值(Boolean):true(真)和false(假)两个特定值

    var b=true;//布尔型
    console.log(typeof b);//boolean
    
  5. Undefined:表示"为定义"或不存在,即此处目前没有任何值.

    var d;//为定义
    console.log(typeof d);//undefined
    
  6. Null:表示空缺,即此处应该有一个值,但目前为空

    var e=null;//null
    console.log(typeof e);//object
    
  7. 对象(Object)(引用数据类型),各种值组成的大集合

       1. 对象(object){"name":"zhangsan","age":"18"}   键值对中的键要加引号,在字符串转换js对象时候
       2. 数组(array){1,2,3}
       3. 函数(function) function test( ) { }
    
    var obj = {}; // 空对象
    var obj2 = {uname:"zhangsan"};
    var obj3 = new Object();
    obj3.age=18;
    console.log(typeof obj);  // object
    console.log(typeof obj2); // object
    console.log(typeof obj3); // object
    
    //函数
    function test(str){
        
    }
    console.log(typeof test);//function
    

typeof操作符

  1. typeof 操作符是用来检测数据类型的

    1. typeof null返回的是object字符串

    2. 函数不是数据类型,但是也可以使用typeof操作符返回字符串

      typeof操作符可以操作变量也可以操作字面量

      注意:函数在JavaScript中是对象,不是数据类型,使用使用typeof区分function和object是必要的

undefined

1. undefined类型的值是undefined.
2. undefined是一个表示"无"的原始值,表示值不存在
3. 出现undefined的常见情况
  	1. 当生命一个变量而没有初始化,这个变量的值就是undefined
  	2. 当函数需要形参,但为传递实参时
  	3. 函数没有返回值,但定义了变量接收

null

1. null类型是只有一个值的数据类型,即特殊的值null,它表示空值,即该处的值现在为空
2. 它表示一个空对象引用
3. 使用null类型值时注意以下几点
  	1. 使用typeof操作符测试null返回object字符串
  	2. undefined派生自null;所以等值比较返回值是true.所以,为初始化的变量和赋值为null变量想等
// undefined 派生自 null
console.log(undefined == null); // true
var ab; // 只声明未赋值返回undefined
console.log(ab == null); // true

数值型

​ 数值型包含两种果蔬汁,整型和浮点型

  1. 使用数字(整型和浮点型)都是以64位浮点数形式储存,所以,JS中1和1.0相等

    1. 而且1加上1.0得到的还是一个整数,浮点数最高精确是17位小数,由于浮点数运算时可能不精确,尽量不要使用浮点数做判断。
    
    1. 在储存数值型数据时自动将可以转换为整型的浮点数值转为整型.
    // 浮动性自动转整型
    console.log(1 + 2.0); // 3		
    var n = 5.0;
    console.log(n); // 5
    
    1. 对于过大或过小的数值,可以使用科学计数法来表示

    2. Infinity ,-Infinity

      1. 超过了表数范围,出现Infinity(正无穷)或者 -Infinity(负无穷)
      2. isFinite( )函数可以确定是否超出范围
      3. true:没有超出;false:超出了
    // 数值过大或过小会使用科学计数法显示
    var num2 = 4.12e9;
    console.log(num2);//4120000000
    console.log(0.0000000412);//4.12e-8
    
    // 正无穷和负无穷
    console.log(100e1000);//Infinity
    console.log(-100e1000);//-Infinity
    console.log(1 / -0 );// 除以负 0 得到-Infinity
    console.log(1 / +0); // 除以 0 得到 Infinit
    
    // isFinite()
    console.log(isFinite(1)); //true
    console.log(isFinite(100e1000)); //fasle
    
    1. NaN

      1. 表示非数值(Not a Number):是一个特殊的值
      2. 如:将字符串解析成数字出错的场合.
      3. console.log(parseInt(“abc”));//parseInt 方法将字符解析成数值,但若无法解析,返回NaN
      4. 注意:
        1. NaN不等于任何值,包括它自身,因为它不是一个值
        2. NaN与任何数(包括它自己)的运算,得到的都是NaN
        3. isNaN()可以用来判断一个值是否为NaN
        4. true:不是数字;false:是数字
    // NaN
    console.log(parseInt("123")); // 123
    console.log(parseInt("abc")); // NaN
    console.log(NaN == NaN); // false
    console.log(parseInt("abc") + 1); // NaN
    		
    // isNaN()可以用来判断一个值是否为 NaN
    console.log(isNaN(parseInt("123"))); // false
    console.log(isNaN(parseInt("abc"))); // true
    

字符串

1. 使用' '或" "引起来,如:'sxt',"good"
2. 使用加号'+'进行字符串的拼接:如:console.log('hello'+'everybody');
console.log('Hello' + " everyone");

对象

​ instanceof 运算符

	1. typeof操作符对数组(array)和对象(object)的显示结果都是object,那么可以利用instanceof运算符,它可用于判断一个变量是否某个对象的实例
// instanceof 运算符
var o = {};
var ar = [];
		
console.log(o instanceof Object); // true
console.log(ar instanceof Array); // true

JavaScript类型转换

  1. parseInt()
    1. parseInt()在转换之前,首先会分析该字符串,判断位置为0处的字符,判断他是否是个有效数字,如果不是,贼直接返回NaN,不在继续,如果是则继续,知道找到非字符
    2. parseInt()方法还有基模式,可以吧二进制,八进制,十六进制或其他任何进制的字符串转换成整数,基是由pareInt()方法的第二个参数指定的
    3. 如果十进制数包含前导0,那么最好采用基数10,这样才不会以外的得到八进制的值
  2. parseFloat()
    1. parseFloat()方法与ParseInt()方法的处理方式相似,但是parseFloat()可以识别第一个小数点
		// parseInt()	
		console.log(parseInt("123ab1c")); // 123
		console.log(parseInt("123.4.5ab1c")); // 123
		console.log(parseInt("0xA")); //returns 10
 		console.log(parseInt("22.5")); //returns 22
 		console.log(parseInt("blue111")); //returns NaN
 		
 		console.log(parseInt("AF", 16)); //returns 175
		console.log(parseInt("10", 2)); //returns 2
		console.log(parseInt("10", 8)); //returns 8
		console.log(parseInt("10", 10)); //returns 10
		
		console.log(parseInt("010")); //returns 8
		console.log(parseInt("010", 8)); //returns 8
		console.log(parseInt("010", 10)); //returns 10
		
		console.log("==========================");
		// parseFloat()
		console.log(parseFloat("123ab1c")); // 123
		console.log(parseFloat("123.4ab1c")); // 123
		console.log(parseFloat("0xA")); //returns 10
 		console.log(parseFloat("22.5")); //returns 22
 		console.log(parseFloat("blue111")); //returns NaN
  1. 显示转换

    1. toString()函数将内容转换为字符串形式,其中Number提供的
    2. toStirng()函数可以将数字以指定的进制转换为字符串,默认为十进制
    3. Number还提供了toFixed()函数将根据小数点后指定位数将数字转为字符串,四舍五入
    
     		console.log("====================显式转换==========");
     		var data = 10;
    		console.log(data.toString())
    		console.log(data.toString(2))
    		data = 1.4;
    		console.log(data.toFixed(0));
    		data = 1.49;
    		console.log(data.toFixed(1));
    		data = true;
    		console.log(data.toString());
    
    1. 强制转换

      1. JS为Number,Boolean,String 对象提供了构造方法,用于强制转换其他类型的数据,此时操作的是整个数据,而不是部分.

      2.  	console.log("===================强制转换==========");
         	console.log(Number("1"));
         	console.log(Number("1.4"));
         	console.log(Number("123aabc"));
         	console.log(Number("abc"));
         	console.log(Number(true));
         	console.log(Number(false));
         	console.log(Number(19));
         	console.log(Number(new Object()));
         	console.log(Number(new Array()));
        
      
      
      
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值