JavaScript 基本概念之数据类型

关键字(不能用作标识符)

保留字(不能用作标识符):尽管保留字在这门语言中还没有任何特定的用途,但他们有可能在将来被用作关键字

变量

//var:关键字   message:变量名(标识符)
var message;   
//定义多个变量
var message = "hi",
	found = false,
	age = 29;

数据类型

ECMAScript中有5种简单数据类型(也称基本类型):Undefined、Null、Boolean、Number和String 还有一种复杂数据类型: Object

检测给定变量的数据类型可以使用typeof 返回如下结果:
"Undefined"   ---值未定义
"boolean" ---值是布尔值
"string" ---值是字符串
"number" ---值是数值
"object" ---值是对象或null
"function" ---值是函数

var message = "some string";
alert(typeof message); 		//"string"
alert(typeof(message)); 	//"string"
alert(typeof 95);    		//"number"
Undefined
Undefined只有一个值,即特殊的undefined。在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined
var message;
alert(message == undefined);   //true

var message2 = undefined;
alert(message2 == undefined);	//true
Null
也是只有一个值的数据类型,这个特殊的值是null。从逻辑角度来看,null值表示一个空对象指针
var car = null;
alert(typeof car);  //"object"

//实际上undefined值是派生自null值的
alert(null == undefined);   //true
Boolean
true和false,区分大小写
虽然Boolean类型的字面值只有两个,但ECMAScript中所有类型的值都有与这两个Boolean值等价的值。可使用转型函数Boolean();
var message = "Hello world";
var messageAsBoolean = Boolean(message);		//true
转型函数Boolean()转换规则

Number

var floatNum1 = 1.1;
var floatNum2 = 0.1;
var floatNum3 = .1;    	//有效,但不推荐

var floatNum4 = 1.; 	//小数点后面没有数字 ---- 解析为1
var floatNum5 = 10.0;	//整数 ----解析为10

//极大或极小的数值,用e表示法(科学计数法)。用e表示法表示的数值等于e前面的数值乘以10的指数次幂
var floatNum = 3.125e7;    //等于31250000
var floatNum1 = 3e-7;      //等于0.0000003
数值范围
最小数值 Number.MIN_VALUE 值为: 5e-324
最大数值 Number.MAX_VALUE 值为: 1.7976931348623157e+308
如果计算结果超出JavaScript数值范围的值,那么将会自动转换成特殊的 Infinity 值
如果为正数,则为 Infinity(正无穷); 负数,则为 -Infinity(负无穷)
判断值知否在最小与最大数值之间(isFinite)
var result = Number.MAX_VALUE + Number.MAX_VALUE;
alert(isFinite(result)); 	//false
NaN

非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)
NaN与任何值都不相等,包括NaN本身

alert(NaN == NaN);		//false

alert(isNaN(NaN));		//true
alert(isNaN(10));		//false(10是一个数值)
alert(isNaN("10"));		//false(可以被转换成数值10)
alert(isNaN("blue"));	//true(不能转换成数值)
alert(isNaN(true));		//false(可以被转换成数值1)
数值转换
有3个函数可以把非数值转换为数值: Number()、parseInt()和parseFloat()
var num1 = Number("1234Hello world");		//NaN
var num2 = Number("");						//0
var num3 = Number("00011");					//11
var num4 = Number(true);					//1

var num5 = parseInt("1234Hello world");		//1234
var num6 = parseInt("");					//NaN
var num7 = parseInt("0xA");					//10(十六进制)
var num8 = parseInt("15.6");				//15
var num10 = parseInt("10",2);			    //2 (按二进制解析)
var num11 = parseInt("10",8);			    //8 (按八进制解析)
var num12 = parseInt("10",10);			    //10(按十进制解析)
var num13 = parseInt("10",16);			    //16(按十六进制解析)


var num14 = parseFloat("1234blue");			//1234
var num15 = parseFloat("0xA");			    //0
var num16 = parseFloat("22.5");			    //22.5
var num17 = parseFloat("22.34.5");			//22.34
var num18 = parseFloat("0908.5");			//908.5
var num19 = parseFloat("3.125e7");			//31250000
String类型
var num = 10;
alert(num.toString());						//"10"
alert(num.toString(2));						//"1010"
alert(num.toString(8));						//"12"
alert(num.toString(10));					//"10"
alert(num.toString(16));					//"a"
null和undefined值没有这个方法,但可以使用转型函数String(),这个函数能够将任何类型的值转换为字符串
如果值有toString()方法,则调用该方法(没有参数)并返回相应的结果
如果值是null,则返回"null";
如果值是undefined,则返回"undefined"
var value1 = 10;
var value2 = true;
var value3 = null;
var value4;

alert(String(value1));						//"10"
alert(String(value2));						//"true"
alert(String(value3));						//"null"
alert(String(value4));						//"undefined"
Object类型
var o = new Object();


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页