JavaScript基础之基本类型

一、JavaScript中只有3种基本数据类型:字符串、数字、布尔类型。JavaScript还提供了一些内置对象,String、Number、Boolean。当以对象的方式使用基本类型时,String、Number、Boolean会对各自的基本类型进行封装。

比如:

var firstName="shelley"; 

var cappedName=firstName.toUpperCase();

toUpperCase()是String对象的一个把字符串大写的方法。当字符串变量firstName调用toUpperCase方法的时候,JavaScript会创建一个对象来封装这个字符串,然后调用toUpperCase方法,最后丢弃这个临时对象。

1、字符串

由单引号或双引号所引用的一系列字符:

var strString="This is String";

var anotherString='But this is also a string';

通过使用反斜杠\,可以在字符串中引用特殊符号:

var string_value='this is a \\string \\with a backslash';//引用“\”

还可以使用Unicode字符,通过在\u后面加上4位的十六进制数值。

document.write('\u7321');//输出中文简字“爱”,Unicode编码参考http://www.unicode.org

字符串编码

encodeURI和encodeURIComponent方法就是对字符串进行转义,就是编码,将其从ASCII码或非ASCII码字符转换成URIencoding字符。

encodeURI

对下列可以进行编码

; , / ? : @ & = + $ 

对于字母、数字以及下列字符不会进行编码

- _  . ! ~ * ' ( ) #

encodeURIComponent方法会对所有的字符进行编码

与之对应的解码函数:decodeURI、decodeURIComponent

比如:var one=encodeURI('http://www.baidu.com/');//one是个字符串

var two=decodeURI(one);//two是个字符串,http://www.baidu.com/

字符串转换

数字、布尔值等其他数据类型都可以转换成字符串,一般来说,脚本引擎将根据上下文自动完成这样的转换。

赋值语句+:什么时候将数字转换成字符,取决于JavaScript脚本引擎在什么时候处理字符串。

var strValue="4"+3+1;//结果是“431”,字符串是序列值的第一个,那么会把所有数值都当做字符串来处理。

var strValueTwo=4+3+"1";//结果是71

使用其他操作符号(除了加号),那么字符串转换为数字

var firstResult='35'-3;//结果是32

var secondResult=30/'3'//结果是10

var thirdResult='3'*3;//结果是90

String转换

输入 undefined 、 null 、 布尔值 、数字 、字符串 、对象

结果 "undefined"、 "null" 、"true"或"false"、 数字相对应的字符串、NaN表示非数字值、 不转换 、对象默认的字符串

<script>

     function convertToString(){

     var newNumber=34.56;

     var newBoolean=true;

     var nothing;

     var newNull=null;

     var strNumber=String(newNumber); var strBoolean=String(newBoolean);

     var strUndefined=String(nothing); var strNull=String(newNull);

     var strOutput="<p>"+strNumber+" "+strBoolean+" "+strUndefined+" "+strNull+"</p>";

     document.writeln(strOutput);

     var strOutput2=String(document);

     document.writeln(strOutput2);

}

</script>

<body onload="convertToString()"></body>

在不同浏览器(Firefox、opera、IE及Safari)中,该示例输出的第一个字符串都是一样的:34.56 true undefined null

然而,只有Opear和Firefox浏览器将输出document对象的ECMAScript特定表示法:[object HTMLDocument]

IE浏览器则仅仅显示[object],而Safari和WebKit浏览器则根本不支持document对象转换成字符串。

2、Boolean数据类型

var isMarried=true;

var hasChildren=false;

Boolean转换表

输入类型:  Undefined,Null,布尔值,数字,字符串,对象

结果        :False,False,布尔值,0或NaN时结果为false否则为true,空字符串false其他true;true

双重否定符(两个否定操作符“!”)可以用来显式地将数字或字符串转换为布尔值:

var strValue='1';

var numValue=0;

var boolValue=!!strValue;//把字符串“1”转换为true

var boolValue2=!!numValue;//把数字 0转换为false

3、Number数据类型

在JavaScript中,number数据类型是浮点数,可以包含小数部分,也可以没有小数部分。如果没有小数部分,那么该数字就将当做十进制数字,取值范围为-2ⁿ53·2ⁿ53。

var somefloat=0.3555;

var lastNum=19.5e-2;(-2e31~2e31)

var neg=-2000;

JavaScript的Number数据类型有两个比较特殊的数字:Infinity(正无穷大)和-Infinity(负无穷大)

var firstHex=0xccff;//十六进制用0x开头,342

var firstOct=0526;//八进制以0开头,342

将字符串转换为数字:parseInt和parseFloat。parseInt只返回数字的整数部分

var  sNum=parseInt("23.4");//结果23

parseInt函数可以在十进制与八进制、十进制之间进行转换。

var ivalue=parseInt("266",16);//将266转换为16进制,结果614。第二个参数值2~36

其他数据类型与数字之间的转换表:

输入: undefined 、null 、布尔值、数字、字符串、对象

结果:NaN、0(在IE中NaN)、true时为1,否则为0( IE中为NaN)、数组值、整数或浮点数、NaN

还尅一通过isFinite函数来判断是否为无穷大,如果是无穷大或NaN,返回false;

4、null和undefined变量

null变量是已定义的、值为null的变量

var nullString=null;

undefined变量已经声明但还没有初始化

var undefString;

var SValue="";//SValue即不是null也不是undefined变量,值为空字符



猜你喜欢

转载自blog.csdn.net/weixin_42210229/article/details/80956679