大家好,我是瓶盖袁 !今天给大家介绍一下javaScript数据类型以及的转换方式,废话不多说我们步入正题。
数据类型
ECMAScript中有五种数据Number 数值,String 字符串,Boolean 布尔,Undefined 空,Null 空,类型加上一种复杂的数据类型Object对象一共六种,你可能会说六种有点少吧,其实ECMAScript数据类型具有动态性,因此没有必要定义那么多。
第一种数据类型Number
Number数据就是一个数字
最基本的数字面量格式就是十进制格式。可以直接这样写入代码中
var num = 55;
除了有十进制的当然会有其他进制的写法,接下来把最常见的几种给大家写下来
八进制:以8为基数八进制的字面量第一位必须是0
var num = 055;
十六进制:以(0-9及a-f)字母a-f可以大写也可以小写,它的字面量写法为前俩位必须是0x
var num = 0xa;
var num = 0x1F;
注意:当然在计算过程中,所有的进制表示的数值会被转换成十进制数字数值。
第二种数据类型string
string表示的是由0或多个16位Unicode字符组成的字符列表,即字符串。字符串一般都由英文双引号(" ")或 英文单引号(’ ')引起来的
var firstName = 'nice';
var firstName = '23';
var firstName = "23aaa";
以上都是合法的
注意:引号的应用要以同种引号开始或者结尾,一段出现多个引号时,里单外双或里双外单,一定要配对。
var firstName = 'nice"; //报错
var firstName = "你好,我叫 "韩美美" 我叫李雷雷";//显示不正常
第三种数据类型Boolean
Boolean类型时使用最多的一种类型,它只有俩个字面值:true和false。这俩值可以理解为真和假或者1和0但是不可以说等于1和0,不是一回事。
var found = true;
var found = false;
注意:ture和false是区分大小写的,Ture和False以及其他的大小混合写法,都不是Boolean类型
第四种数据类型Undefined
Undefined只有一个值,就是undefined。在使用var声明变量时没有对其加以初始化,这个值就是undefined。
var mun; //mun的值就是undefined
第五种数据类型Null
Null也是只有一个值,就是null。表示一个空的对象指针
Undefined和Null区别
Undefined:你可以认为它该有一个值却没有,无论在什么情况都没必要把值设置undefined。
Null:可以认为它是一个空值,只要在你意在保存对象却还没保存时可以让该变量保存为null值。
第六种数据类型Object
Object在ECMAScript其实是一个数据和功能的集合。是一个复杂的数据类型
创建一个Object
//字面量创建
var obj = {};
//内置构建函数
var obj2 = new Object();
仅仅创建并没有什么用处,会有更对数据的操作方法这里就不说了。
typeof操作符
因为ECMAScript是松散类型的需要对数据进行检测
那么就会用到typeof操作符,它会返回的值有以下几种
“number”——是个数值
“string”——是个字符串
“boolean”——是个布尔值
“undefined”——未定义值
“object”——是个对象或者null
“function”——是一个函数
var found = true;
alert(typeof found);//boolean
var found1 = 233;
alert(typeof found);//number
var found2 = 'ture';
alert(typeof found);//string
注意:返回值是一个字符串
数据类型的转换
其他数据转number类型
方法一:Number()
var str = '123.456';
alert(Number(str));
注意:如果是boolean值,ture转换为1,flase转换为0.
如果是数字只是简单的传入输出
如果是null值,返回为0。
如果是一个undefined,返回NaN。
如果是字符串: 1,(" ")空字符串,返回为0
2,其中包含数值的只转合法的数值
3,不合法的数值都会转换成NaN
方法二:parseInt()
parseInt()转换更多的是看是否符合数值模式,一位位的看如果第一位就不是一个合法的数值那么就输出NaN
依次类推能解释多少位就解析多少位。
var num = '100.3456';
var result = parseInt(num);
console.log(result);
注意:它是不识别小数点的,故是取整
parseFloat()
方法三:parseFloat()
parsefloat()方法原理同parseInt(),唯一的区别是它是识别小数点的。
var num = '100.3456';
var result = parseFloat(num);
console.log(result);
方法四:非 加法 的数学运算
var s1 = '123.321';
var result1 = s1- 0;
console.log(result1);
var s2 = '123.321';
var result2 = s2 * 1;
console.log(result2);
var s3 = '123.321';
var result3 = s3 / 1;
console.log(result3);
其他类型转String
方法一:String()
什么都能转换
String(变量)
var num = 10;
alert(Sting(num));
方法二:toString()
不能转换 undefined 和 null
变量.toString()
var num = 10;
alert(num.toString());
方法三:加法
符号两边有任意一边是字符串就会进行字符串拼接只有符号两边都是数字或者布尔的时候才会进行数学运算
var num = 10 + '20';
其他类型转Boolean
Boolean()什么都能转false的值一共有以下五种
0值 ,NaN ,’'空字符串,undefined,null除了这五 个其余都是 true