JavaScript数据类型
*基本数据类型(原始数据类型、简单数据类型)
(1)数值类型(number)
所有的数字,无论整数,浮点数。
(2)字符串类型(string)
用单引号或者双引号包括的所有字符
(3)布尔类型(boolean)
只有true和false两个取值
(4)null(空)
有两种产生null的情况:
一种是直接为变量赋值为null
val a = null;
另一种是当获取不到标签时
<!-- <input id="ipt" type="text"> -->
var a = document.getElementById('ipt');
console.log(a);
(5)undefined(未定义)
只有当定义了变量,但是没有赋值的情况下产生
var a;
console.log(a);
*复杂数据类型(引用数据类型)
(1)object(对象)
定义空对象
var obj = {};
定义对象的两种方法(一)
var obj = {
name: "Tom",
age: 20,
addr: "河南"
}
定义对象的两种方法(二)
var obj = {}
obj.name="Tom";
obj.age=20;
obj.addr="河南";
(2)array(数组)
定义数组的两种方法(一)
使用Array()构造函数定义
var arr = new Array();
//定义空数组
var arr1 = new Array(10);
//定义长度为10的空数组,默认值是undefined
定义数组的两种方法(二)
使用字面量[ ]方式定义数组
var arr = [];
//定义空数组
var arr1 = [1,2,3];
//定义数组为[1,2,3]
*数据类型相关操作
(1)检测变量类型
通过typeof进行检测
var a=10;
console.log(typeof a);
(2)数据类型转换
1)string类型转换为number类型
parseInt()转换为整数型
parseFloat()转换为浮点型
parseInt()和parseFloat()是一个一个字符进行解析,当遇到非数字时停止
Number()转换为数值型
Number()是整体解析完进行转换
var str1 = '99';
var str2 = '99str';
var str3 = 'str99';
console.log(parseFloat(str1));//99
console.log(parseInt(str1));//99
console.log(Number(str1));//99
console.log(parseFloat(str2));//99
console.log(parseInt(str2));//99
// Number()是整体解析完进行转换
console.log(Number(str2));//NaN
//parseInt()和parseFloat()是一个一个字符进行解析,当遇到非数字时停止
console.log(parseFloat(str3));//NaN
console.log(parseInt(str3));//NaN
console.log(Number(str3));//NaN
2)其他类型转换为string类型
String() JS的全局函数
toString() Object原型的一个方法
不能使用toString()方法将null和undefined转换为字符串
+’’ 追加空字符串,拼接为字符串
var num=99;
console.log(typeof String(num));//string
console.log(typeof String(true));//string
console.log(typeof String(null));//string
console.log(typeof String(undefined));//string
console.log(typeof num.toString());//string
console.log(typeof true.toString());//string
console.log(typeof null.toString());
//报错,不能使用toString()方法将null转换为字符串
console.log(typeof undefined.toString());
//报错,不能使用toString()方法将undefined转换为字符串
console.log(typeof (num+''));//string
console.log(typeof (true+''));//string
console.log(typeof (null+''));//string
console.log(typeof (undefined+''));//string
2)其他类型转换为boolean(布尔)类型
目前我学习到的只有null、undefined、0、flase、空字符串为假,其他的都为真
console.log(Boolean(10));//true
console.log(Boolean(-10));//true
console.log(Boolean(0));//false
console.log(Boolean(null));//false
console.log(Boolean(undefined));//false
console.log(Boolean(''));//空字符串 false
console.log(Boolean(false));//false
console.log(Boolean(' '));//空格字符串 true
//空格字符串与空格完全不一样,空格也是一个自符
(3)不常用的关于数值的知识
1)js能容纳的最大值
Number.MAX_VALUE
1.7976931348623157e+308
2)js的最小值
Number.MIN_VALUE
5e-324
3)正无穷
Infinity
4)判断是否是非数字
var str="a";
console.log(isNaN(10));//是数字,为false
console.log(isNaN(str));//不是数字,为true