在JavaScript中有5种简单的基本数据类型:
String,Number,Boolean,Null,undefined。
还有一种复杂的数据类型Object。
今天我们来了解一下5种基本的数据类型
1.Undefined -- 未定义类型
Undefined类型只有一个值,即特殊的 undefined。
在使用var声明变量,但未赋值(未初始化)时,这个变量的类型就是undefined,且其默认初始化值为undefined。
对未声明,直接使与初始化的变量用,那么这个变量的类型也是undefined,但是没有默认初始化值。
例如:
var a;
console.log(a);//输出的结果就是undefined
console.log(typeof a);// 类型也是"undefined"
2.Null -- 空类型
Null类型是第二个只有一个值的类型,这个特殊值是null。null值表示一个空对象指针。
Null是特殊的对象类型:object
javaScript高级程序上有讲到,undefined类型是派生自null的,可以说二者都是指没有明确赋值的类型。
但是细分之后,undefined类型,被用来形容未经初始化的变量,null类型被用来形容空对象指针。
而在javaScript权威指南中: null 和 undefined 都表示“值的空缺”,你可以认为undefined是表示系统级的、
出乎意料的或类似错误的值的空缺,而null是表示程序级的、正常的或在意料之中的值的空缺。
所以,如果定义的变量准备在将来用于保存对象(即复杂的数据类型object),那么就该将该变量初始化为null。
当一个变量声明后,未初始化,则该值为undefined,如果这个值是为了保存对象,则修改其默认初始化的值,改为null。
所以当检测其类型时,会显示类型为object。
var car = null;
console.log(car);// 输出结果为null
console.log(typeof car);// 检测类型为"object"
3.Boolean -- 布尔类型
Boolean类型是ECMAScript中使用得最多的一种类型。
Boolean类型只有两个值:true(真) \ false(假)。
调用转型函数:Boolean() 可以将ECMAScript中所有类型的值都转换成相应的布尔值。
例如:
var str = "hello world";
console.log(Boolean(str));//true
各种数据类型转换布尔类型规则
-------------------------------------------------------------------
数据类型 转化为true的值 转化为false的值
-------------------------------------------------------------------
Boolean true false
String 任何非空字符串 "" (空字符串)
Number 任何非零数值(包括无穷大) 0和NaN(非数值)
Object 任何对象 null
Undefined 无 undefined
1、除0和NaN之外的所有数字,转换为布尔型都为true
2、除"" 之外的所有字符,转换为布尔型都为true
3、null和undefined转换为布尔型为false
这些转换规则对理解流程控制语句,如(if)语句自动执行相应的转换非常重要。
4.Number -- 数值类型
Number 类型的表示方法有两种形式,第一种是整数,第二种为浮点数。
整数就不用说了吧
浮点数值(有些语言中被称为双精度数值) (就是这种// 4.522 //3.1415926之类的)
1、该数值中必须包含一个小数点,且小数点后必须有一位数字,如果小数点后只有零,则该小数会被转化为整数。
2、浮点数所占据的内存空间是整数的两倍。
3、对极大极小的浮点数采用e表示法。
var floatNum=3.2e7;//3.2×10(7次幂)
var floatNum=3.2e-7;//3.2×10(-7次幂)
注意:保存浮点数值所需的内存空间是保存整数值的2倍。
浮点数值的最高精度是17位小数。特殊:0.1+0.2=0.30000000000000004
范围:
Number.MIN_VALUE: 5e-324
Number.MAX_VALUE:1.7976931348623157e+308
-Infinity(负无穷)、+Infinity(正无穷)
3/0 +Infinity(正无穷)
-3/0 -Infinity(负无穷)
重点
NaN:not a Number 不是一个数字 特殊的数值类型
表示一个本来要返回数值的操作数未返回数值的情况。
NaN特点:1.任何涉及NaN的操作都会返回NaN。
2. NaN与任何值都不相等,包括NaN本身。
console.log( NaN == NaN ) //false
isNaN(参数):判断参数是否"不是数值"。如果是数值返回false,不是数值返回true;
console.log(isNaN(NaN)); //true
console.log(isNaN(10)); //false(10是一个数值)
console.log(isNaN("10")); //false(可以被转换成数值10)
console.log(isNaN("hello")); //true(不能转换成数值)
console.log(isNaN(true)); //false(可以被转换成数值1)
*数值转换:有三个函数可以把非数值转换为数值:
1.Number();//转型函数
2.parseInt();//取整
3.parseFloat(); //从第一位起取到小数部分(只识别第一个小数点),只解析10进制数。
**Number():转型函数Number()可以用于任何数据类型
语法:Number(变量名/变量);
例:Number(true); //1
Number(false); //0
Number(22); //22
Number(null) ;//0
Number(undefined); //NaN
Number("123"); //123
Number("2.11"); //2.11
Number(""); //0
Number("11asdf"); //NaN
**parseInt()和parseFloat()这两个函数则专门用于把字符串转换成数值。
parseInt():从第一位起取到整数部分
例:parseInt("1234blue") //1234
parseInt("") //NaN ( 区别:Number("") //0)
parseInt(" 112abc") //112
parseInt("22.5") //22
parseInt()还可以指定基数(可以解析不同进制数):parseInt("0xAF",16) //175
parseFloat():从第一位起取到小数部分(只识别第一个小数点),只解析10进制数。
例:parseFloat("1234blue") //1234
parseFloat("22.5") //22.5
parseFloat("22.5.22") //22.5
注意: console.log(Number("3.125e7")); //31250000
console.log(parseInt("3.125e7")); //3
console.log(parseFloat("3.125e7")); //31250000
1.String--字符串类型
字符串可以使用双引号 " "赋值,也可以使用单引号' '赋值。
例如:
var name = "admin"; //双引号
console.log(name); //"admin";
console.log(typeof(name)); //"string"
var name = 'admin'; //单引号
String 数据类型包含一些特殊的字符字面量,也叫转义序列,用于表示非打印字符,
\n 换行
\t 制表
\b 空格
\r 回车
\f 进纸
重点
查看字符串的长度:length属性
var str = "hello world";
console.log(str.length);//字符串长度为11,包含中间空格
查看字符串相应位置的字符。
var str = "hello world";
console.log(str[1]);//查找对应下标 e
转化为字符串的2种方法:
1.toString()
数组、布尔值、对象和字符串值都有toString()方法。
但null和undefined值没有这个方法。
例:
var arr = [1,2,3,4];
console.log(arr.toString());
注意:toString()可以传递一个参数:输出数值的基数
var sum = 10;
console.log(sum.toString()) //"10" (默认为10进制)
console.log(sum.toString(2)) //"1010"
console.log(sum.toString(8)) //12
console.log(sum.toString(10)) //10
2.String(变量)
强转函数,可以转化任何类型的值
例:var num1;
String(123) // "123"
String(3>4) // "false"
String(3<4) // "true"
String(num1) // "undefined"
String(null) // "null"
"+"也可以把某个值转换为字符串,也可以拼接多个字符串。
var str = 111+""; //"111"
var str = "hello" + " world"; //"hello world"
好了,今天就暂时先到这里,欲知后事如何,且听下回分解
网友评论