JavaScript变量的定义及类型
定义变量
JavaScript使用 var
来定义变量,多个变量名之间用逗号隔开。定义变量是不为其赋值则缺省为undefined,表示该值未定义。
代码如下:
var a; //undefined
var b,c; //undifined
var aa = 10;
var bb = 20, cc = 30;
JavaScript的所有变量都用 var
来定义,既可以是数值,也可以是布尔型,也可以是字符串。甚至即使一个变量初始值为数值,赋值过程中可以被赋值为其他类型。
代码如下:
var a = 10;
var b = false;
var c = "test";
a = c;
console.log(a); //控制台输出test
尽管上述操作是可以进行的,但是建议变量的类型最好从始至终都是确定的,不建议随意更改。
JavaScript的数据类型
JavaScript的几种数据类型分别为:undefined、null、boolean、number、string、object、array、function。
查看变量属于哪种数据类型可以用typeof
查看,代码如下:
var a = 10;
var b = false;
var c = function(){
console.log("this is a function!");
}
console.log(typeof a); //number
console.log(typeof b); //boolean
console.log(typeof c); //function
这里主要介绍几种常见类型。
undefined
未初始化的变量默认未undefined,表示该值未定义,如果一个变量将来要被赋值为其他类型,将其初始化为undefined较好。
var a = undefined;
a = "test";
null
null表示一个空对象。如果将来想将其赋值为object类型,将其初始化为null较好。
var a = null;
a = {sex:"男",age:"18"};
有趣的是,将一个变量赋值为null,使用typeof
检测得到结果为object。
var a = null;
console.log(typeof a) //object
boolean
boolean类型一共只有两个值false
和true
,表示假和真两种状态。使用if
判断语句时,其他类型会被自动转换为boolean类型。其中,0、NaN、undefined、null、""(空字符串)
会被转换为false
,其余皆为true
。
var a = 10;
if(a){
console.log("a is not in {0、NaN、undefined、null、""(空字符串)}");
}
number
number类型可以使用八进制、十进制、十六进制。其中八进制以0开头,十六进制以0x开头。
var a_10 = 10; //十进制数10
var a_8 = 012; //八进制数012(十进制数10)
var a_16 = 0xA; //十六进制数0xA(十进制数10)
浮点数值可以使用小数,其中特别大或者特别小的数可以使用指数表示:
var pi = 3.1415926;
var a_8 = 3e8;
number类型范围为Number.MIN_VALUE~Number.MAX_VALUE
(5e-324~1.7976931e+308
)。超出上限返回Inifinity
,超出下限则返回-Inifinity
。
number类型还有一个特殊值NaN
,即Not a Number,表示并不是一个数。
string
JavaScript的string类型可以使用'
或者"
来表示,两则没有差别。
var s1 = 'test1';
var s2 = "test2";
字符串之间可以通过+
来进行拼接:
var s3 = s1 + s2; //test1test2
字符串的长度可以由length
得到:
console.log(s1.length); //5
console.log(s2.length); //5
console.log(s3.length); //10
object
JavaScript的object是拥有属性和方法的数据类型。属性即与对象相关的值,方法是在对象上执行的动作。
var p1 = new object(); //创建对象
上面代码创建了一个对象,但是此时这个对象没有属性也没有方法。下面为其添加属性与方法:
p1.name = "小明";
p1.sex = "男";
p1.age = "18";
p1.grow_up = function(){
this.age += 1;
}
这段代码为p1加入了name、sex、age三个属性和grow_up()一个方法。
接下来尝试访问这些属性和方法:
console.log(p1.name); //小明
console.log(p1.age); //18
p1.grow_up();
console.log(p1.age); //19