JavaScript 的String 对象 、Number对象


JavaScript 拥有动态类型。这意味着相同的变量可用作不同的类型:

var x;                // x 为 undefined
var x = 6;           // x 为数字
var x = "Bill";      // x 为字符串

正因为JavaScript动态的数据类型,所以有时我们有必要对变量的数据类型进行一个判断。

1、JavaScript 字符串

var txt="Hello world!";
new String(str);
String(str);

参数 str 是要存储在 String 对象中,或转换成字符串的原始值。

  • new String(str); : 返回一个新创建的 String 对象,存放的是字符串 str 或 str 的字符串表示
  • String(str); : 只把 str 转换成原始的字符串,并返回转换后的值。

在很多语言中,字符串 是以对象的形式表示的,但在ECMAScript里没有沿用这种传统,字符串 是当作一种基本数据类型,但它是一个比较特殊的基本类型。String可以理解为对字符串的一个包装。

需要注意的是,JavaScript 的字符串是不可变的(immutable),javascript也没有提供任何一个改变字符串的方法和语法。像 String.toUpperCase() 这样的方法,返回的是全新的字符串,而不是修改原始字符串。

String的 属性 :

  • constructor :对创建该对象的构造函数的引用
  • length : 字符串的长度
  • prototype : 允许向对象添加属性和方法

String 常用方法:

  • str.charAt(index) :返回str中指定索引(从0开始)位置的字符;
    需要注意的是:JavaScript 并没有一种有别于字符串类型的字符类型,所以返回的是长度为 1 的字符串。如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串。
  • str.concat(stringX,stringX,…,stringX) :该方法将把它的所有参数转换成字符串,然后按顺序连接到字符串 str 的尾部,并返回连接后的新字符串。请注意,str 本身并没有被更改。
  • str.indexOf(searchvalue,fromindex) :
    参数:
    searchvalue : 必需。规定需检索的子字符串值。
    fromindex : 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 str.length - 1。如省略该参数,则将从字符串的首字符开始检索。
    说明:该方法将从头到尾地检索字符串 str,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一次出现的索引位置。若检索不到,返回-1;indexOf() 方法对大小写敏感!

  • 详细方法列表

判断变量是否为字符串:

(typeof str=='string')&&str.constructor==String;

2、JavaScript Number

Number 对象是原始数值的包装对象。

与许多其他编程语言不同,JavaScript 不定义不同类型的数字,比如整数、short、long、float、double 等等。
JavaScript 中的所有数字都存储为根为 10 的 64 位,浮点数。

var myNum=new Number(value);
var myNum=Number(value);

  new Number(value);返回一个新创建的 Number 对象。
  如果不用 new 运算符,把 Number() 作为一个函数来调用,它将把value参数转换成一个原始的数值,并且返回这个值(如果转换失败,则返回 NaN)。
  在 JavaScript 中,数字是一种基本的数据类型。JavaScript 还支持 Number 对象,该对象是原始数值的包装对象。在必要时,JavaScript 会自动地在原始数据和对象之间转换。
注意,以下值是构造函数 Number() 自身的属性,而不是单独的某个 Number 对象的属性。
  

//1、可表示的最大值。它的近似值为 1.7976931348623157 x 10308。
//正确:
var big = Number.MAX_VALUE; 
//错误:
var n= new Number(2);
var big = n.MAX_VALUE

//2、MIN_VALUE 属性是 JS 中可表示的最小的数(接近 0 ,但不是负数)。它的近似值为 5 x 10-324。
var minNum = Number.MIN_VALUE

//3、正无穷大,溢出时返回该值。(表示大于 Number.MAX_VALUE 的值。)
Number.POSITIVE_INFINITY

//4、负无穷大,溢出时返回该值。表示小于 Number.MIN_VALUE 的值。
Number.NEGATIVE_INFINITY

//5、NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。
Number.NaN
提示:JavaScript 以 NaN 的形式输出 Number.NaN。
请注意,NaN 与其他数值进行比较的结果总是不相等的,包括它自身在内。因此,不能与 Number.NaN 比较来检测一个值是不是数字,而只能调用 isNaN() 来判断。

3、string 与 number 转换

1、字符串—> 数值
除了Number() 、new Number() 外,还有 parseInt()、 parseFloat()、* 和 /

 parseInt(str):取出字符串数值部分,转为整数。小数部分会被去除。转化失败时,返回NaN

 parseFloat(str):转化时保留小数部分。转化失败时,返回NaN

 * 和 / :也能完成string 转为number.
         如: var str = "12345";
             var num = str * 1;
             typeof num 返回 number

2、数值 —> 字符串

  • num.toString(radix) :radix为可选参数。规定表示数字的基数,使 2 ~ 36 之间的整数。若省略该参数,则使用基数 10(10进制)。按照radix参数进制转换后,转为字符串。但是要注意,如果该参数是 10 以外的其他值,则 ECMAScript 标准允许实现返回任意值。

  • num.toLocaleString():把一个 Number 对象转换为本地格式的字符串。根据本地规范进行格式化,可能影响到小数点或千分位分隔符采用的标点符号。当调用该方法的对象不是 Number 时抛出 TypeError 异常。

  • num.toFixed(param):把 Number 四舍五入为指定小数位数的数字,并转为字符串。param(0~20间整数,包括0和20)指定小数位数,注意:不采用指数计数法,小数点后有固定的 param位数字。如果必要,该数字会被舍入,也可以用 0 补足,以便它达到指定的长度。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值