Javascript 温故知新记【三】之字符串

字符串

1. 概述

1.1 转义

反斜杠 \ 在字符串中用于表示一些特殊的字符,又名:转义符。

一些特殊字符需要转义,如下:

  • \n\u000A :换行符
  • \'\u00027 :单引号
  • \"\u00022 :双引号
  • \\\u005C :反斜杠
  • \0\u0000 :null
  • \b\u0008 :后退键
  • \f\u000C :换页符
  • \r\u000D :回车键
  • \t\u0009 :制表符
  • \v\u000B :垂直制表符

例如:

console.log('a\nb')
// a
// b

console.log('a\tb')	//a	b
console.log('a\"b')	//a"b

\ 还有其他特殊用法:转义 八进制数十六进制数

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

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

\ 后跟非特殊字符,会被省略。

console.log('\m'); 	// m	

2.字符集

JavaScript 使用 Unicode 字符集。在 JavaScript 引擎内部,所有字符都用 Unicode 表示。

解析代码的时候,JavaScript 会自动识别字符的形式,如果是 Unicode 形式表示的,该字符会被转成字面形式。如下:

let \u004d\u006f\u006e\u0074\u0079 = 'me';
console.log(Monty);	// me

3.Base64 转码

提到 Base64 转码,我们可能都用到过,也许您会去找一些库来实现需求,当然那些库都是很棒的!其实 JavaScript 原生也提供了两个和 Base64 相关的方法。

  • btoa() :将任意值转换为 Base64 编码
    这个方法在转换中文字符时(ASCII )会有乱码的现象,使用之前需要对其转码。
  • atob():解码 Base64 编码
const encode = (string) =>{
	return btoa(encodeURIComponent(string));
}

const decode = (string) =>{
	return decodeURIComponent(atob(string));
}
encode('你好,世界')	// JUU0JUJEJUEwJUU1JUE1JUJEJUVGJUJDJThDJUU0JUI4JTk2JUU3JTk1JThD

decode('JUU0JUJEJUEwJUU1JUE1JUJEJUVGJUJDJThDJUU0JUI4JTk2JUU3JTk1JThD') // 你好,世界

// 如果转码 ASCII 时不先进行 encodeURIComponent 转码

btoa('你好,世界') //报错 :The string to be encoded contains characters outside of the Latin1 range.

atob('JUU0JUJEJUEwJUU1JUE1JUJEJUVGJUJDJThDJUU0JUI4JTk2JUU3JTk1JThD') // 乱码:"%E4%BD%A0%E5%A5%BD%EF%BC%8C%E4%B8%96%E7%95%8C"

有了这两个方法,Base64 转码就无需使用第三方了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值