关键字(不能用作标识符)
保留字(不能用作标识符):尽管保留字在这门语言中还没有任何特定的用途,但他们有可能在将来被用作关键字
变量
//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();