javaScript入门-字符串

环境: Mac GoogleChorme

 

概述:

可使用 '' 或 "" ,在双引号的内部,可以再使用单引号。

由于Html属性值使用双引号,因为对于javaScript推荐使用单引号。从代码规范角度来说,不推荐单双引号同时使用。

'单引号'
"双引号"
"this is 'str' param"

// 也可以使用单引号中套单引号,但要加反斜杠 \ 用来转义
'this is \'str\' param'

字符串若比较多,可使用换行符 \n 或者通过反斜杠 \ 来实现分行,比如:

var str = 'this is long \
long \
long \
string';

主要的转义字符有:

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

 

字符串与数组

javaScript使用length获取字符长度,它使用的unicode字符格式。因此要注意下:

'hello'.length              // 5

'一二三四五'.length          // 5

// 拓展下: 在lua中使用utf-8中文占用三个字节
/*
local str = "一二三四五"
print(string.len(str))            -- 15
*/

字符串可以被认为是字符数组,注意javaScript数组索引是从0开始的

var str = 'hello'
str[1]                        // e

var strs = '零一二三'
strs[0]                     //

// 若超过字符串长度,或者索引根本不是数字,返回undefined
strs[99]                 // undefined
str.xxx                   // undefined
str['x']                   // undefined
    

 

base64:

主要针对于于ASCII码尤其是0~31的符号无法打印。为此可使用base64编码转换为可以打印的符号。

base64就是一种编码方法,将任意值0~9,A~Z,a~z, +, -等字符转换后,用于简化程序的处理。常用的方法:

var str = 'javaScript'
// btoa: 将ASCII字符转换为base64编码
btoa(str)              // "amF2YVNjcmlwdA=="
// atob: 将base64编码转换为原来的值
atob("amF2YVNjcmlwdA==")                 // "javaScript"

// 以上方法不适用于中文字符串
btoa('中文')                  // The string to be encoded contains characters outside of the Latin1 range 

// 对中文要进行转码: encodeURIComponent,解码为decodeURIComponent
var str = encodeURIComponent('中文')
btoa(str)                                 // "JUU0JUI4JUFEJUU2JTk2JTg3"
atob("JUU0JUI4JUFEJUU2JTk2JTg3")         // "%E4%B8%AD%E6%96%87"
decodeURIComponent("%E4%B8%AD%E6%96%87")  // "中文"

...

 

posted @ 2020-06-12 18:45  Code~  阅读(182)  评论(0)    收藏  举报