JavaScript 高级程序设计 02-变量、数据类型

时间:2023-03-10 06:47:48
JavaScript 高级程序设计 02-变量、数据类型

一、JavaScript变量

1.变量的定义

在定义变量时,统一使用关键字var,后跟变量名(即标识符,如果不知道什么是标识符,可以到这去查看),如下

var message; //定义一个变量

注意:如果没有使用关键字var,就会成为全局变量了

2.变量的类型

//定义多个变量
var message, //没赋值,因此会保留一个特殊的值undefined
num=22, //为number类型
name='jerry', //为string类型
flag=true; //为boolean类型

如果我们要查看一个变量时什么类型,可以使用typeof操作符进行查看变量类型

var message;
alert(typeof message); //undefined
var str='Jerry';
alert(typeof str); //string
var num=123;
alert(typeof str); //bumber

需要注意的是,使用尚未定义的变量是会报错哦

alert(age);    //产生错误

alert(typeof age)  //却会返回undefined,这个时候我们不要问为什么,嘻嘻

二、JavaScript的数据类型

ECMAScript有5种简单数据类型(基本数据类型):Undefined、Null、Boolean、Number和String

还有一种复杂数据类型--Object

1.Undefined类型

Undefined类型只有一个值,即特殊的undefined。上面有讲过声明变量时,未初始化时,这个变量的值就是undefined

var message;
alert(typeof message); //undefined

2.Null类型

而Null类型是第二个只有一个值的数据类型,它也有一个特殊的值是null。

alert(typeof null);//object
alert(null==undefined)//true

实际上,undefined值是派生自null值的,因此 ECMAScript 把它们定义为相等的。尽管这两个值相等,但它们的含义不同。undefined 是声明了变量但未对其初始化时赋予该变量的值,null 则用于表示尚未存在的对象(typeof 运算符对于 null 值会返回 "Object"。)如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是 null。

3.Boolean类型

Boolean类型只有两个字面值:true和false。

我们要将一个值转换为对应的boolean值,可以调用函数Boolean(),它会返回一个Boolean值

var name='jerry';
var aa='';
alert(Boolean(name)); //true
alert(Boolean(aa)); //false

4.Number类型

var num1=123;  //
var num2='123'; //字符串类型'123'
var num3=parseInt('123'); //数字123
var num4=parseInt('123asds'); //
var num5=parseInt('asds421asdas'); //NaN
var num6=parseInt(''); //NaN
var num7=parseInt('0xf') //15(十六进制)

5.String类型

在JavaScript里,String类型作为一个基本数据类型,可以由双引号("")或者单引号('')表示。

var name='jerry';
var firstName="Tom";
var age=11;
alert(age+''); //字符串"11"
alert(age.toString()) //字符串"11"
alert(name+firstName); //"jerryTom"

6.Object类型

ECMAScript中的对象其实就是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的类型的名称来创建,也可以使用对象初始化器创建。

var obj=new Object();

var obj1={
name:'jerry',
age:26
};

Object的每个实例都具有以下属性和方法

①构造函数:Object();

②hasOwnProperty(PropertyName):检查给定的属性是否在当前的对象实例中,注:PropertyName必须以字符串给定

③isPrototypeOf(object):检查传递的对象,是否是另一个对象的原型。注:这里牵扯到原型和原型链,所以以后具体在讲,目前大家先知道有这么个方法

④propertyIsEnumerable(PropertyName):检查给定的属性是否能用for-in 语句来枚举。注:PropertyName必须以字符串给定

⑤toLocaleString():返回的字符串与执行环境的地区对应

⑥toString():返回字符串

⑦valueOf():返回对象的字符串、数值或布尔值表示