javascript原始数据类型

前面有提到过javascript的几个引用类型,还差了Function类型,想放在后面学习函数的时候一起总结。今天,主要是总结javascript原始数据类型的一些方法,细节方面也不做说明了。

javascript的原始数据类型有Boolean类型、Number类型和String类型。还有Null和Undefined在javascript基本概念中有介绍过,这里也不再提了。

在介绍对应类型的方法之前,有一点需要特别强调下,那就是基本包装类型跟引用类型的区别:

  • 原始值不可改变。引用类型值是可修改的;
  • 原始值的比较是值的比较。引用类型值的比较是引用的比较;
  • 原始值只存在于一行代码的执行瞬间,然后会立即被销毁。引用类型实例一直保存在内存中。


Number类型


数值转换为字符串

Number类型提供了一些将数值格式化为字符串的方法:

toFixed()

toFixed()方法根据传进去的参数控制小数点后指定的位数。从不使用指数计数法。该方法有一个参数,即表示小数点后面数字的位数。例如:

var num=10.0005;
alert(num.toFixed(2)); //10.00
注意,该方法会进行适当的四舍五入或者补充0,如:

var num1=10.0005;
alert(num1.toFixed(3)); //10.001
var num2=10.0004;
alert(num2.toFixed(3)); //10.000
alert(num2.toFixed(6)); //10.000400

toExponential()

toExponential()使用指数计数法(科学计数法)将数字转换为指数形式字符串,其中小数点前只有一位,小数点后的位数有传入的参数决定。该方法也会进行适当的四舍五入或补充0。如:

var num=100.208;
alert(num.toExponential(3)); //1.002e+2
alert(num.toExponential(4)); //1.0021e+2
alert(num.toExponential(8)); //1.00208000e+2

toPrecision()

toPrecision()根据制定的有效数字位数(包括小数点后面的位数)将数字转换为字符串。如果有效数字位数少于数字整数部分位数,将转换为指数计数法。该方法也会进行适当的四舍五入或补充0。如:

var num=100.208;
alert(num.toPrecision(5)); //100.21
alert(num.toPrecision(3)); //100
alert(num.toPrecision(1)); //1e+2

字符串转换为数值

javascript中还有一些方法能将字符串转换为数值,如Number()强制转换、parseInt()和parseFloat()。

Number()强制转换

Number()只能基于十进制进行转换。并且不能出现非法的尾随字符。它有一个参数,即要转换的字符串。如:

var str1="123blue";
alert(Number(str1)); //NaN

var str2="123";
alert(Number(str2)); //123

parseInt()

parseInt()从字符串开始处转换和返回任何的数字,并且会忽略或舍去非数字部分。它允许开头和结尾的空白。parseInt()只解析整数。看个例子:

var str1="123blue";
alert(parseInt(str1)); //123
var str2="blue123";
alert(parseInt(str2)); //NaN
parseInt()还接受第二个参数,用于说明要解析的数字的基数,如:

var str1="11";
alert(parseInt(str1,2)); //3  (1*2+1)

parseFloat()

parseFloat()的解析方式跟parseInt()一样,只不过它可以解析整数跟浮点数。并且它只有一个参数,就是要解析的字符串。

var str1="11.02eee";
alert(parseFloat(str1)); //11.02

var str2="....2334";
alert(parseFloat(str2)); //NaN

var str3="1.2.3";
alert(parseFloat(str3)); //1.2


String类型


字符方法

charAt()

charAt()方法接收一个基于0的字符位置参数,返回给定位置的那个字符。

var str="javascript";
alert(str.charAt(3)); //a
charCodeAt()

charCodeAt()也接受一个基于0的字符位置参数,只不过它返回的是给定位置的字符的编码。

var str="javascript";
alert(str.charCodeAt(3)); //97

字符串操作方法

concat()

concat()方法用于拼接字符串。它可以接受任意多个参数,即要拼接的字符串。调用该方法不会修改源字符串。

var str="javascript";
alert(str.concat("不是","Java")); //javascript不是Java
alert(str); //javascript
slice()

slice()方法用于返回子字符串。它接受两个参数,一个是子串开始的位置,另一个是子串结束的位置。返回的子串包含开始位置但不包含结束位置。当传入的参数是负值时,可以将字符串的长度于参数相加,得到的值再作为参数;当只传入一个参数,则将该参数作为起始位置,返回从这个位置开始到字符串结束的所有字符;当起始位置大于结束位置时,将返回空字符串。如:

var str="javascript";
alert(str.slice(0,4)); //java
alert(str.slice(4)); //script
alert(str.slice(-6,-1)); //scrip
alert(str.slice(5,2)); //空字符串
alert(str); //javascript
substring()

substring()也接受两个参数,分别表示其实位置和结束位置。substring在很多时候跟slice()返回的值是一样的。唯一不同的是参数值是负数的情况下,substring()会将负参数都转换为0。还有一点,substring()总是会将小的值当作起始位置,大的值当作结束位置。如:

var str="javascript";
alert(str.substring(4,0));  //java
alert(str.substring(-5,-1)); //空字符串
alert(str.substring(0,4)); //java
alert(str); //javascript
substr()

substr()也是用于返回子串。它也接受两个参数,第一个参数表示其实位置,第二个参数表示要返回的字符的个数。当遇上负参数时,substr()会将第一个负参数于字符串相加,第二个负参数则转换为0;当第一个参数大于第二个参数时也将返回空字符串。如:

var str="javascript";
alert(str.substr(4,0));  //空字符串
alert(str.substr(-6,-5)); //空字符串,相当于(4,0)
alert(str.substr(-5,8)); //cript,相当于(5,8)
alert(str.substr(5,-8)); //空字符串,相当于(5,0)
alert(str.substr(0,4)); //java
alert(str); //javascript

字符串位置方法

用于查找子串位置的方法有两个,分别是indexOf()和lastIndexOf()。它们都有一个参数,即要查找的子串,然后返回该子串在字符串中的位置,如果没有找到,则返回-1。这两个方法的区别是,indexOf()方法是从字符串开头向后查找的,而lastIndexOf()方法是从字符串末尾向前查找的。如:

var str="javascript";
alert(str.indexOf("a"));  //1
alert(str.lastIndexOf("a")); //3
这两个方法还可以接受第二个参数,表示开始查找的位置。对于indexOf()方法,就是从这个位置开始向后查找,而对于lastIndexOf()方法,就是从该位置向前查找。如:

var str="javascript";
alert(str.indexOf("a",2));  //3
alert(str.lastIndexOf("a",2)); //1

trim()方法

trim()方法会创建一个字符串副本,删除字符串前后的所有空格,然后再将该副本返回。该方法也不会改变源字符串。如:

var str="   javascript   ";
alert(str.trim()); //javascript

字符串大小写转换方法

转换为小写字母的方法:toLowerCase()和toLocaleLowerCase();

转换为大写字母的方法:toUpperCase()和toLocaleUpperCase()。

这几个方法都没有参数。

var str="javaScript";
alert(str.toLowerCase());  //javascript
alert(str.toLocaleLowerCase());  //javascript
alert(str.toUpperCase());  //JAVASCRIPT
alert(str.toLocaleUpperCase()); //JAVASCRIPT

字符串的模式匹配方法

这些方法在之前的正则表达式中有介绍过,在这里就不做介绍了。具体参考【javascript正则表达式(RegExp类型)中的用于模式匹配的String方法】。

localeCompare方法

用于比较两个字符串。它们比较的是在字母表中的位置。如果字符串的位置应该在字符参数之前,则返回一个负数;如果两者的位置相同,则返回0;如果字符串的位置应该在字符参数之后,则返回一个正数。

var str="b";
alert(str.localeCompare('a')); //1
alert(str.localeCompare('b')); //0
alert(str.localeCompare('c')); //-1

fromCharCode()方法

这是一个静态方法,接收一个或多个字符编码,然后将他们转换成一个字符串。

alert(String.fromCharCode(98)); //b


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值