一、严格模式(了解)
- JS 是一个相对不是很严谨的语言, 在开发的时候一些代码也不是很严格, 严格模式就是对开发的时候写的代码做了一些要求
如何开启严格模式
- 要开启严格模式, 直接在代码最开始的位置写上字符串 'use strict'
严格模式的规则
- 声明变量必须有
var 关键字
- 函数的形参不可以重复
二、字符串
创建字符串(了解)
var str1 = "hello";
var str2 = new String("hello");
ASCII 字符集(了解)
- 计算机只能存储二进制数据
0101010
- 我们的 大写字母; 小写字母; 符号 之类的内容也是由二进制数字组成的
- 或者说 我们的字母符号这些东西写都有一个对应的编号, 然后计算机存储的时候是存储的这些编号,不过我们看到的时候, 是通过这些编号解析成我们看到的内容
- 所以我们计算机存储的字母符号之类的并不是存储了这个字母, 而是存储了这个字母对应的编号, 然后给我们看到的时候是通过这个编号找到了对应的字母给我们看
unicode 编码
- ASCII 只有 128 个字符的编码结构, 这是因为他出现的比较早, 而且是美国发明的, 所以在早期这些内容完全足够
- 但是这个世界要存储的东西就不够, 比如我们的汉字, 所以就出现了
unicode 编码, 也叫(万国码, 统一码)
- unicode 和 ASCII 一样的对照表, 只不过存的东西特别多, 基本包含了世界上大部分国家的文字, 所以我们的文字在存储的时候 都是按照 unicode 编码转换成了数字进行存储
- 我们的 UTF-8 就是一种 8 位的 unicode 字符集
操作字符串的常用方法
1. charAt
- 语法:
变量/字符串.charAt(下标)
- 作用: 根据下标去字符串中寻找对应的值
- 返回值: 如果字符串中有对应的下标那么返回对应的值,如果没有返回一个空字符串
var str = 'QF123'
var res = str.charAt(40)
console.log(res)
console.log(str[0])
2. charCodeAt
- 语法:
变量/字符串.charCodeAt(下标)
- 作用: 根据下标去字符串中寻找对应的值, 然后找到这个值对应的 unicode 编码
- 返回值: 如果找到返回 unicode 编码,没有返回 NaN
var str = 'QF123'
var res = str.charCodeAt(40)
var res1 = str.charCodeAt(0)
console.log(res)
console.log(res1)
3. toLowerCase
- 语法:
变量/字符串.toLowerCase()
- 作用: 将字符串中所有的字母转换为小写
- 返回值: 转小写后的字符串
4. toUpperCase
- 语法:
变量/字符串.toUpperCase()
- 作用: 将字符串中所有的字母转换为大写
- 返回值: 转大写后的字符串
var str = 'abcQWE'
console.log('原字符串: ', str)
console.log('toLowerCase: ', str.toLowerCase())
console.log('toUpperCase: ', str.toUpperCase())
console.log('原字符串: ', str)
5. substr
- 语法:
变量/字符串.substr(开始索引, 截取多少个)
- 作用: 截取字符串
- 返回值: 截取出来的字符串
6. substring
- 语法:
变量/字符串.substr(开始索引, 结束索引)
- 作用: 截取字符串
- 返回值: 截取出来的字符串
- 注意: 参数包前不包后,可省略不写
var str = 'qwertyuiop'
console.log(str.substr(2, 3))
console.log(str.substring(2, 3))
console.log(str.substring(6))
console.log(str.substring())
7. slice
- 语法:
变量/字符串.slice(开始索引, 结束索引)
- 作用: 截取字符串
- 返回值: 截取出来的字符串
- 注意: 参数包前不包后,可省略不写,可以有负数
var str = 'qwertyuiop'
console.log(str.slice(2, 3))
console.log(str.slice(2))
console.log(str.slice())
console.log(str.slice(5, -1))
8. concat
- 语法:
变量/字符串.concat(字符串1, 字符串2,......)
- 作用: 合并数据到执行的字符串中
- 返回值: 合并后的一个新字符串
var str = 'QWE123Q'
console.log(str.concat('!@#', 'asd', '+-*/'))
console.log('方法使用完毕后的源字符串: ', str)
9. indexOf
- 语法:
变量/字符串.indexOf(查找的字符, 开始索引)
- 作用: 查找当前字符串中是否包含指定字符
- 返回值: 找到返回第一次出现的首字母索引位置, 找不到就返回 -1
var str = 'QWE123Q'
console.log(str.indexOf('@'))
console.log(str.indexOf('Q'))
console.log(str.indexOf('Q', 3))
10. lastIndexOf
- 语法:
变量/字符串.lastIndexOf(查找的字符, 开始索引)
- 作用: 查找当前字符串中是否包含指定字符 (从后往前)
- 返回值: 找到返回第一次出现的首字母索引位置, 找不到就返回 -1
var str = 'QWE123Q'
console.log(str.lastIndexOf('@'))
console.log(str.lastIndexOf('Q'))
console.log(str.lastIndexOf('Q', 3))
11. split
- 语法:
变量/字符串.split('分隔符')
- 作用: 把字符串按照分隔符分开为几段内容
- 返回值: 拆分好的字符串, 组成的一个数组
- 注意: 如果传递的分隔符是一个空字符串, 那么会将整个字符串按照每一个字符拆分开, 放在一个数组中
var str = 'value=QF001=QF002=QF003'
console.log(str.split('='))
console.log(str.split('@'))
console.log(str.split())
console.log(str.split(''))
console.log(str.split(' '))
12. trim
- 语法:
变量/字符串.trim()
- 作用: 把字符串左右空格去除
- 返回值: 去除空格后的字符串
13. trimStart/trimLeft
- 语法:
变量/字符串.trimStart()
- 语法:
变量/字符串.trimLeft()
- 作用: 把字符串左边空格去除
- 返回值: 去除左边空格后的字符串
14. trimEnd/trimRight
- 语法:
变量/字符串.trimEnd()
- 语法:
变量/字符串.trimRight()
- 作用: 把字符串右边空格去除
- 返回值: 去除右边空格后的字符串
var str1 = ' 1 2 3 '
var str2 = '123'
console.log('源字符串' + str2)
console.log('源字符串' + str1)
console.log('trim' + str1.trim())
console.log('trimStart' + str1.trimStart())
console.log('trimLeft' + str1.trimLeft())
console.log('trimEnd' + str1.trimEnd())
console.log('trimRight' + str1.trimRight())
15. includes
- 语法:
变量/字符串.includes('要查询的一些字符')
- 作用: 用于判断字符串中是否包含一段字符
- 返回值: true/false
16. startsWith
- 语法:
变量/字符串.startsWith('要查询的一些字符')
- 作用: 用于判断字符串开头是否为指定的字符
- 返回值: true/false
17. endsWith
- 语法:
变量/字符串.endsWith('要查询的一些字符')
- 作用: 用于判断字符串结尾是否为指定的字符
- 返回值: true/false
var str = 'qwe123!@#$%^&*()asd'
console.log(str)
console.log(str.includes('QF001'))
console.log(str.includes('!@#$%^&*'))
console.log(str.includes('qweasd'))
console.log(str.includes('qwe123'))
console.log(str.startsWith('q'))
console.log(str.startsWith('qwe123'))
console.log(str.startsWith('qweasd'))
console.log(str.endsWith('asd'))
console.log(str.endsWith('asdtyuiop'))
18. repalce
- 语法:
变量/字符串.repalce('查找的字符串', '要替换的内容')
- 作用: 去字符串中找到一个指定的内容, 然后将新的内容替换过去
- 返回值: 修改好的字符串
var str = 'QF001QF001QF001'
var res = str.replace('QF', '***')
console.log(res)