Javascript学习笔记(String对象)

来源:互联网 发布:java属性签名是什么 编辑:程序博客网 时间:2024/05/16 14:42

String对象

来自《JavaScript 标准参考教程(alpha)》,by 阮一峰

目录

  • 概述
  • String.fromCharCode()
  • 实例对象的属性和方法
  • length属性
  • charAt()
  • charCodeAt()
  • concat()
  • slice()
  • substring()
  • substr()
  • indexOf(),lastIndexOf()
  • trim()
  • toLowerCase(),toUpperCase()
  • localeCompare()
  • match()
  • search()
  • replace()
  • split()
  • 参考链接

概述

String对象是JavaScript原生提供的三个包装对象之一,用来生成字符串的包装对象。

var s1 = 'abc';var s2 = new String('abc');typeof s1 // "string"typeof s2 // "object"s2.valueOf() // "abc"

上面代码中,变量s1是字符串,s2是对象。由于s2是对象,所以有自己的方法,valueOf方法返回的就是它所包装的那个字符串。

实际上,字符串的包装对象是一个类似数组的对象(即很像数组,但是实质上不是数组)。

new String("abc")// String {0: "a", 1: "b", 2: "c", length: 3}

除了用作构造函数,String对象还可以当作工具方法使用,将任意类型的值转为字符串。

String(true) // "true"String(5) // "5"

上面代码将布尔值ture和数值5,分别转换为字符串。

String.fromCharCode()

String对象提供的静态方法(即定义在对象本身,而不是定义在对象实例的方法),主要是fromCharCode()。该方法的参数是一系列Unicode码点,返回对应的字符串。

String.fromCharCode(104, 101, 108, 108, 111)// "hello"

上面代码中,fromCharCode方法接受5个Unicode码点作为参数,返回它们组成的字符串。

注意,该方法不支持Unicode码点大于0xFFFF的字符,即传入的参数不能大于0xFFFF

String.fromCharCode(0x20BB7)// "ஷ"

上面代码返回字符的编号是0x0BB7,而不是0x20BB7。它的根本原因在于,码点大于0xFFFF的字符占用四个字节,而JavaScript只支持两个字节的字符。这种情况下,必须把0x20BB7拆成两个字符表示。

原创粉丝点击