【JavaScript笔记 · 基础篇(七)】String全家桶(基本数据类型中的字符串 / String对象 / String.prototype)


一. 基本数据类型中的字符串

1.1 定义

字符串就是零个或多个排在一起的字符,放在单引号或双引号之中。通常用单引号 / 双引号 / 反引号括起来,或者结合嵌套使用。

var a = "hello world";//双引号
var a = 'hello world';//单引号
var a = `
     hello world
` ;//反引号(会打印出换行)  
var json = '{"name":"zevin","age":21}';//单双引号交替使用

分别的打印结果为:

hello world
hello world

  hello world

{
   "name":"zevin","age":21}

1.2 转义

反斜杠(\)在字符串内有特殊含义,用来表示一些特殊字符,所以又称为转义符。

  • \0 :null(\u0000)
  • \b :后退键(\u0008)
  • \f :换页符(\u000C)
  • \n :换行符(\u000A)
  • \r :回车键(\u000D)
  • \t :制表符(\u0009)
  • \v :垂直制表符(\u000B)
  • \ ’ :单引号(\u0027)
  • \ " :双引号(\u0022)
  • \ \ :反斜杠(\u005C)
console.log('Hi,I\'m zevin!');
// Hi,I'm zevin!

反斜杠还还有三种特殊的方法来表示特殊字符:

  • \HHH —— 反斜杠后跟三个八进制数(000到377),最多可表示256种字符;
  • \xHH —— 反斜杠后跟十六进制数(00到FF),最多可表示256种字符;
  • \uHHHH —— 反斜杠后跟四个十六进制数(0000到FFFF);

比如版权符号(©)的表示:

'\251' // "©"
'\xA9' // "©"
'\u00A9' // "©"

'\172' === 'z' // true
'\x7A' === 'z' // true
'\u007A' === 'z' // true

反斜杠也支持自身转义:

"Left \\ Right"
// "Left \ Right"

1.3 字符串与数组

字符串与数组有一个很相似的地方,就是都可以通过方括号运算符来访问某个位置的字符。

var str = 'zevin';
str[0] // "z"
str[1] // "e"
str[3] // "i"

// 直接对字符串使用方括号运算符
'zevin'[1] // "e"

如果方括号中的数字超过字符串的长度,或者方括号中根本不是数字,则返回undefined

'abc'[3] // undefined
'abc'[-1] // undefined
'abc'['x'] // undefined

1.4 length 属性

length属性返回字符串的长度。

var s = 'hello';
s.length // 5

同样该属性也是无法改变的,但是也不会报错。

s.length = 3;
s.length // 5

s.length = 7;
s.length // 5

二. String对象

2.1 概述

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

var s1 = 'abc';
var s2 = new String('abc');

typeof s1 // "string"
typeof s2 // "object"

同时字符串对象也是四大类数组对象之一。并不是真正的数组。

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

'abc'[1] // 'b'
'abc'.length // 3

'abc' instanceof Array // false

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

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

2.2 静态方法 —— String.fromCharCode()

fromCharCode()方法的参数是一个或多个数值,代表 Unicode 码点,返回值是这些码点组成的字符串。

String.fromCharCode() // ""
String.fromCharCode(97) // "a"
String.fromCharCode(104, 101, 108, 108, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值