大家好,今天我们来认识下JavaScript中的数据类型。JavaScript是弱类型语言,开始的时候并不知道变量时什么类型,必须通过存储的具体的值才能判断变量的类型。
JavaScript的数据类型分为基本数据类型和复杂数据类型。其中,基本数据类型: Number(数字),String(字符串),Boolean(布尔),Undefined(未定义),Null(空);复杂(引用)数据类型: Object(对象), Array(数组), Function(函数)。我们可以使用typeof操作符检查变量的类型,语法为typeof(变量)/typeof 变量,typeof返回值: number, string, boolean, undefined, object, function。今天我们来认识下JavaScript中的基本数据类型。
首先,我们来认识下Number类型。number类型就是数字类型,主要用于存储数据,参与数学运算。number类型包括 整数,小数,正数,负数,各种进制的数字和特殊数字。我们通过下面的代码来认识下number类型:
- // 1.1 普通整数和小数
- var num1 = 10;
- var num2 = 2.5; console.log(typeof(num1), typeof num2);
- // 1.2 负值
- var num3 = -0.2;
- console.log(num3, typeof num3);
- // 1.3 八进制,以 0 开头并且没有超过 8 的值,则为 8 进制
- var num4 = 070;
- console.log(num4, typeof num4); // 56 number
- // 1.4 十六进制,0x 开头,则为 16 进制
- var num5 = 0x10;
- console.log(num5, typeof num5); //15 number
除了上面的number类型,JavaScript中还有一些特殊的数字类型:
1、NaN: not a number,算术运算不能得到正常数字时会返回NaN,NaN不和NaN相等。
2、Infinity: 无穷大。
3、e: 10的次幂 1e9代表1乘以10的9次幂
4、小数相加会有误差
- //1.1 NaN not a number 算术运算不能得到正常数字都会返回 NaN var num5 = ‘a’ - 5;
- console.log(num5, typeof num5); // NaN number
- // 1.2 无穷大
- var num6 = 1 / 0;
- console.log(num6, typeof num6); // Infinity number
- // 1.3 小数相加 会有一点偏差
- console.log(0.1+0.2); // 0.30000000000000004
接下来,我们来认识下String类型,string类型就是字符串类型,是用引号引起来的内容,单引号和双引号都可以, 例如:“web”, ‘web’。字符串有一个常用属性length,用来表示字符串的长度,字符串中的任意字符都占字符串的一个长度,字符串也可以通过charAt(下标)方法来获取对应下标的字符,需要注意的是,字符串中下标是从0开始的,除了charAt()方法外,也可以使用字符串加中括号的形式获取对应下标的字符。
- var str1 = ‘abc’;
- var str2 = “123”;
- console.log(typeof str1,typeof str2); //string string
- console.log(str1.charAt(0)); // a
- console.log(str1[0]]); // a
此外,所有我们从 input 表单中获取的用户输入的内容都是字符串,哪怕输入的是数字。例如下面的例子。
- <input type="text" id="oIn">
- <button id="oBut">输出内容</button>
- ​
- oBut.onclick = function () {
- var value = oIn.value;
- console.log(typeof value); // string
- }
接下来,我们来认识下Boolean类型。Boolean: 布尔类型, 只有真和假,也就是true/false。
- var bool1 = true;
- var bool2 = false;
- console.log(typeof bool1, typeof bool2); // boolean boolean
- console.log(10 > 20); //false
- if(10 > 20){ // if 的小括号里面,会自动转换成 boolean 类型
- alert(true)
- };
除了通过比较能得到 Boolean 的值以外,还有一个口诀来判断条件是否为真:非 0 为真,非空为真”。即 0 为假,其他数字为真,空字符串为假,其他为真。
最后,我们来认识下null和undefined。null表示值为空,undefined表示变量没有初始化(声明未赋值),值的空缺。null表示空对象,使用typeof操作符得到的“object”。undefined:undefined类型,当声明变量未赋值时,变量的值就是undefined,类型也是undefined。
- var a = null;
- console.log(a); // null
- console.log(typeof a); // object
- ​
- // var b = undefined;
- var b;
- console.log(b); // undefined
- console.log(typeof b); // undefined