JavaScript数据类型:javascript数据类型有哪些?

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JavaScript一种弱类型语言,不用提前声明变量的数据类型。

在程序运行过程中,变量的数据类型会被自动确定。

与之相对的强类型语言,如C、Java。

们通过代码比较弱类型语言与强类型语言的区别,如下所示。

//强类型语言(Java)
intnum=10;//这里的变量numint型(整数类型)
//弱类型语言(JavaScript)
varnum=10;//这里的变量num一始一个数字型
num='abc';//赋值一个字符串,现在num变成了字符串型
从上述代码可以看出,JavaSeript变量的数据类型,在程序运行时根据等号右边的值来确定的。

JavaScript数据类型分类
JavaScript中的数据类型分为两类,分别基本数据类型和复杂数据类型(或称为引用数据类型),如下图所示。

在图中,复杂数据类型的使用比较难,具体会在后面的章节中专门进行讲解,们用代码演示基本数据类型的使用。

(1)数字型(Number),包含整型值和浮型值:
varnuml=21;//整型值
varnum2=0.21;//浮型值
(2)布尔型(Boolean),包含true和false两个布尔值:
varbool1=true;//表示真、1、成立
varbool2=false;//表示假、0、不成立
(3)字符串型(String),用单引号或双引号包裹:
varstrl='';//空字符串
varstr2='abc';//单引号包裹的字符串abc
varstr3="abc";//双引号包裹的字符串abc
(4)未定义型(Undefined),只有一个值undefined:
vara;//声明变量a,未赋值,此时a就undefined
varb=undefined;//变量b的值为undefined
(5)定型(Null),只有一个值null:
vara=null;//变量a的值为null
需要注意的,代码中的值true、false、undefined和null全部都要写成小写字母。

一、数字型
JavaScript中的数字型可以用来保存整数或浮数(小数),示例代码如下。

varage=18;//整数
varpi=3.14;//浮数(小数)
们针对数字型在使用时的一些细节问题进行介绍:
1.进制
常见的进制有二进制、八进制、十进制和十六进制。

在一般情况下,数字都使用十进制来表示的。

在JavaScript中还可以用八进制和十六进制,具体如下。

(1)在数字头加上0,表示八进制数。

八进制数由0~7组成,逢8进位:
varnum1=07;
console.log(num1);//输出结果:7
varnum2=010;
console.log(num2);//输出结果:8
(2)在数字头加上0x,表示十六进制数。

十六进制数由0~9,a~f组成:
varnuml=0x9;
console.log((numl);//输出结果:9
varnum2=Oxa;
console.log(num2);//输出结果:10
十六进制数中的“x”和“a~f"不区分小写。

2.范围
数字型的值和最小值可以用如下代码来获取。

console.log(Number.MAX_VALUE);//输出结果:1.7976931348623157e+308
console.log(Number.MIN_VALUE);//输出结果:5e-324
在输出结果中,使用了科学计数法来表示,在JavaScript中可以使用科学计数法来
表示数字。

3.特殊值
数字型有3个特殊值,分别Infinity(无穷)、-Infinity(无穷小)和NaN (NotaNumber,非数值)。

们通过代码演示这3种值出现的情况。

console.log(Number.MAX_VALUE*2);//输出结果:Infinity
console.log(-Number.MAX_VALUE*2);//输出结果:-Infinity
console.log('abc'-100);//输出结果:NaN
若要判断一个变量否为非数字的类型,可以用isNaN()来进行判断,它会返回一个
布尔值,返回true表示非数字,返回false表示数字,示例代码如下。

console.log(isNaN(12));//输出结果:false
console.log(isNaN('abc'));//输出结果:true
二、字符串型
字符串指计算机中用于表示文本的一系列字符,在JavaSeript中使用单引号或双引号来包裹字符串,示例代码如下。

varstr1='单引号字符串';
varstr2="双引号字符串";
们针对字符串型在使用时的一些细节问题进行讲解。

1.单、双引号嵌套
在单引号字符串中可以直接书写双引号,在双引号字符串中也可以直接书写单引号,示例代码如下。

//正确的语法
varstr1='Iama"programmer"';//Iama"programmer"
varstr2="I'ma'programmer'";//I'ma'programmer'
//常见的语法
varstr1='I'maprogrammer';//单引号用法
varstr2="I'ma"programmer"";//双引号用法
varstr3='工amaprogrammer";//单双引号混用
2.转义符
在字符串中使用换行、Tab等特殊符号时,可以用转义符来进行转义。

转义符都以“\”
转义符解释说明
\' 单引号
\n LF换
行,n表

newline
\t Tab符号
\f 换页
\b 退格,b
表示
blank
\xhh 由2位
十六进制
数字hh
表示的
ISO-
8859-1
字符。


“\x61”表
示"a"
\" 双引号
\v 跳格
(Tab、水
平)
\r CR换行
\\ 反斜线
(\)
\0 Null字

\uhhhh 由4位
十六进制
数字
hhhh表
示的
Unicode
字符。


“\u597d”
表示“好”
们通过代码演示转义符的使用。

varstrl='I\'maprogrammer';//I'maprogrammer
varstr2='Iama\nprogrammer'//Iama(换行)programmer
varstr3='C:\\JavaScript\\';//C:\JavaScript\
varstr4='\x61bc';//abc
varstr5='\u597d';//好
3.字符串长度
字符串由若干字符组成的,这些字符的数量就字符串的长度。

通过字符串的length 属性可以获取整个字符串的长度,示例代码如下。

varstr1='I\'maprogrammer';
console.log(str1.length);//输出结果:16
varstr2='程序员';
console.log(str2.length);//输出结果:5
4.访问字符串中的字符
字符串可以使用“[index]"语法按照index(索引)访问字符,index从0始,一直到字符串的长度减1,如果超过了index值,会返回undefined。

示例代码如下。

varstr='I\'maprogrammer';
console.log(str[0]);//输出结果:I
console.log(str[1]);//输出结果:
console.log(str[15]);//输出结果:r
console.log(str[16]);//输出结果:undefined
5.字符串拼接
多个字符串之间可以使用“+”进行拼接,如果数据类型不同,拼接前会把其他类型转成字符串,再拼接成一个新的字符串。

示例代码如下。

console.log('a'+'b');//ab
console.log('a'+18);//a18
console.log(''+true);//true
console.log('12'+14);//1214
console.log(12+14);//两个数字相加,结果为26(非字符串排接
在实际发中,经常会将字符串和变量进行拼接,这因为使用变量可以很方便地里面的值。

示例代码如下:
varage=18;
console.log('小明’+age+岁');//小明18岁
6.“显示年龄”案例
在学习了字符串的使用后,们通过一个显示年龄的案例来练习。

本案例需要弹出一个输人框,让用户输人年龄。

输人后,单击“确定”按钮,程序就会弹出来一个警告框,显示内容为“您今年x岁了”,x表示刚才输人的年龄。

具体代码如下。

//弹出一个输人框,让用户输人年龄
varage=prompt('请输人您的年龄');
//将年龄与输出的字符串拼接
varmsg='您今年'+age+'岁了';
//弹出警告框,输出程序的处理结果
alert(msg);
三、布尔型
布尔型有两个值:true和false,表示事物的“真”和“假”,通常用于逻辑判断。

示例代码如下。

console.log(true);//输出结果:true
console.log(false);//输出结果:false
当布尔型和数字型相加的时候,true会转换为1,false会转换为0,如下所示。

console.log(true+1);//输出结果:2
console.log(false+1);//输出结果:1
四、undefined和null
如果一个变量声明后没有赋值,则变量的值就undefined。

们也可以给一个变量赋一个null值,null一般用来表示空对象指针。

们通过代码演示undefined和null的使用。

vara;
console.log(a);//输出结果:undefined
console.log(a+'');//输出结果:undefined(字符串型)
console.log(a+1);//输出结果:NaN
varb=null;
console.log(b+'_');//输出结果:null(字符串型)
console.log(b+1);//输出结果:1(b转换为0)
console.log(b+true);//输出结果:1(b转换为0,true转换为1)
数据类型检测
在发中,当不确定一个变量或值什么数据类型的时候,可以利用typeof运算符进行数据类型检测。

示例代码如下。

console.log(typeof12);//输出结果:number
console.log(typeof'12');//输出结果:string
console.log(typeoftrue);//输出结果:boolean
console.log(typeofundefined);//输出结果:undefined
console.log(typeofnull);//输出结果:object
在上述示例中,typeof检测nmull值时返回的object,而不null,这JavaScript最初实现时的遗留问题,后来被ECMAScript沿用下来。

使用typeof可以很方便地检测变量的数据类型,示例代码如下。

varage=prompt('请输入您的年龄');
console.log(age)
console.log(typeofage);
上述代码执行后,如果用户什么都不输人,单击“确定”按钮,则age的值为空字符串,类型为string;如果单击“取消”按钮,则age的值为null,类型为object;如果输入的一个数字,则age的值用字符串保存的数字,类型为string。

typeof运算符的返回结果-一个字符串,可以使用比较运算符“==”来判断typeof返回的检测结果否符合预期,示例代码如下。

vara='12';
console.log(typeofa=='string');//输出结果:true
console.log(typeofa=='number');//输出结果:false
在上述代码中,“typeofa”的返回结果string,在与字符串string比较时,结果为true,表示astring类型;与number比较时,结果为false,表示a不number类型。

相关文档
最新文档