zoukankan      html  css  js  c++  java
  • JavaScript(四)字符串类型

    一些基础知识

    1. 单引号字符串的内部可以使用双引号,双引号内部可以使用单引号
    2. 如果要在单引号内部使用单引号,就要使用转义符
    3. 由于HTML属性值使用双引号,所以有些项目规定JavaScript全部使用单引号
    4. 如果一个字符串过长,在每一行的结尾可以使用反斜杠标记,这样输出的时候和单行的效果一样。(反斜杠的后面必须是换行符,不能是其他字符)
    5. 连接符可以连接多个字符串,输出的效果也和单行输出一样

    转义

    在字符串中有特殊含义,用来表示一些特殊字符,所以又称为转义符,


    转义符 名称 Unicode编码
    null u0000
     后退符 u0008
    f 换页符 u000C
    换行符 u000A
    回车符 u000D
    制表符 u0009
    v 垂直制表符 u000B

    如果在非特殊字符前面使用反斜杠,则反斜杠会被忽略

    字符串和数组

    1. 字符串可以被看成一个字符数组,因此可以使用s[i]来获取i下标下的字符,如果长度超过最大长度或者无法识别,则返回undefined
    2. 但是无法通过下标来改变字符串中的字符
    3. length属性返回字符串的长度
    4. JavaScript默认使用Unicode字符集,内部的所有字符都是使用Unicode字符来表示
    5. 每个字符在JavaScript中都是按照16位的utf-16格式存储的,也就是JavaScript中单位字符的长度为16位,即两个字节

    但是JavaScript对utf-16的支持是不完整的,由于历史原因,只支持两个字节的字符,不支持四字节的字符,因为第一版utf-16发表的时候之编写到了UFFFF,因此两个字节就足够了,后来Unicode的自己付越来越多,出现了四个字节的字符,但是JavaScript已经定型,统一将字符长度规定为两个字符,导致现在不能识别四字节的字符

    因此,JavaScript在识别四个字节字符的时候会把它认为是两个字符,因此JavaScript返回的字符串长度可能是不对的。

    Base64编码

    有时候文本里包含一些不能用来打印的符号,例如ASCII码0到31的符号都无法打印。这个时候可以使用Base64编码,将他们转变成可以打印的字符,另一个场景是有时候需要使用文本传递二进制数据,这个时候也会使用Base64转化。

    Base64是一种编码格式,可以把任意字符转化成0到9,a到z,A到Z,+,/这64个特殊字符组成的可打印字符,他的主要目的不是为了加密,

    JavaScript原生提供了两个Base64函数

    • btoa():任意值转化为Base64编码
    • atob():Base64转化为原来的值

    这两个方法只适用于ASCII码的字符,例如汉字就不支持,如果想使用的话可以进行转码

    • encodeURIComponent(str)//将非ASCII码的字符转化为ASCII支持的
    • decodeURIComponent(atob(str))//相反,将转化后的值转化为原来的值
  • 相关阅读:
    解决Laravel 开启HTTPS反向代理时Url一直是Http问题
    Laravel Passport 401 Unauthenticated.
    Windows 10 1909 (2020年1月) DVD (Chinese-Simplified)
    Office Professional Plus 2019 下载安装激活
    电脑设置U盘启动快捷键
    适用于 Laravel 的阿里云MNS队列驱动
    idea 2021版下创建springMvc项目过程
    UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
    Mac 下打包python 程序
    Tomcat 对 servlet 的支持表
  • 原文地址:https://www.cnblogs.com/charlottepl/p/13743996.html
Copyright © 2011-2022 走看看