JS变量的定义和类型
定义变量
javasrcipt 使用 var
来定义变量,多个变量名之间用逗号隔开。定义变量是不为其赋值则缺省为undefined ,表示该值未定义。
var a;
var b,c
var aa=10;
var bb=20,cc=30;
JavaScript 的所有变量都用var
既可以是数值,也可以是布尔型,还可以是字符串,甚至即使一个变量初始值为数值,赋值过程可以被赋值为其他类型
var a=10;
var b=false;
var c="test"
a=c;
console.log(a);
尽管上述操作是可以进行的,但是建议变量的类型最好从始至终都是确定的,不建议随意更改。
JavaScript中使用var定义变量和不使用var定义变量的区别
1、不使用var定义一个变量
不使用var定义一个变量时是定义了全局对象window的一个属性,事实上你无论在代码中的任何一个部分(全局或者在某一代码块中)声明的都是一个全局变量,可以通过delete运算删除该属性(变量)
2、使用var定义一个变量
使用var定义一个变量时,事实上你仍旧是在定义一个window的属性,但是这个属性是不可配置的,也就是说无法通过调用delete运算来删除该属性,而且var声明的变量涉及到作用域的问题,即:局部变量和全局变量;
JavaScript中定义变量的时候要注意的事项
由数字、字母、下划线和美元符号$组合而成的变量,并且数字不能放开头
1.数字不能开头
2.出现样字符 如:var @ab中@ab是不合法的,因为@是异样字符
3.var ___ 中的___ 是合法的变量名
js的数据类型
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!");
}
这里只介绍一下几种比较常见的类型
undefined
未初始化的变量默认未undefined,表示该值未定义,如果一个变量将来要被赋值为其他类型,将其初始化为undefined较好。
var a = undefined;
a = "test";
null
null表示一个空对象。如果将来想将其赋值为object类型,将其初始化为null较好。
var a = null;
a = {sex:"男",age:"18"}
boolean
boolean类型一共只有两个值false
和true
,表示假和真两种状态。使用if
判断语句时,其他类型会被自动转换为boolean
类型。其中,0
、NaN
、undefined
、null、""(空字符串)会被转换为
false
其余皆为 true
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
总结
(1)var在函数内部使用的时候,在var定义变量的语句之前是访问不到变量的! 所以避免预防的方法就是尽量不使用同名的变量名命名并且在函数头部定义变量并赋值。
(2)确定一个值的哪种基本数据类型可以使用typeof操作符,而确定一个值是哪种引用类型可以使用instanceof操作符。