七、Es5和字符串

一、Es5的语法

  1. 严格模式

  1. 概念:

由于js的作用域和隐式声明变量等语法会造成很多预想不到的错误,所以ES5中新增了一个严格模式的语法,用于严格规范代码的书写。

  1. 语法:

"use strict"

  • 放在代码最前面,也就是在script标签的第一行或者函数内部第一行,不然语法会失效。

  • 严格模式可以规范当前script标签或者当前函数中代码,不能规范除此以外别的代码和函数。

  1. 作用:
  • 没有var,不能定义变量

  • 禁止函数形参存在同名现象

  • 禁止函数中用this代表window

  1. 优点:
  • 代码更加规范,减少一些不必要的语法错误。

  • 让代码运行速度更快,提高运行效率。

二、字符串

  1. 字符串定义

var str='';
var str="";
  1. 字符串长度

字符串中字符的个数:字符串.length

  1. 字符串取下标

var str = "abcdeffdhgfdgd";
var s = str[6]
console.log(s) // 'f'
  1. 字符串遍历

var str = "abcdeffdhgfdgd";
for(var i=0;i<str.length;i++){
    console.log(str[i],i)
}
  1. 字符串只读

  • 字符串是只读数据,只能读,不能增删改查。

  • 字符串可以比较,但是比较和数字比较不同,字符串比较的大小是由阿斯克码决定的。

  • 字符串比较规则是逐字符进行比较。

console.log('25'>'5')//false 
console.log('78'>'123') //true
  1. 阿斯克码

  1. 三个常用阿斯克码范围
  • 0到9,阿斯克码48到57

  • A到Z,阿斯克码65到90

  • a到z,阿斯克码97到122

  1. 字符串能比较大小,中文汉字也是字符串,中文汉字也能比较大小
console.log('我'>'你') // true
console.log('你'>'我') // false
  • 中文汉字的大小由unicode来决定。unicode也称万国码。

三、字符串方法

  1. chatAt

  • 作用:通过指定下标获取对应的字符

  • 语法:字符串.charAt(下标)

  • 返回值:返回字符

var str='asdfghjkl'
var m = str.charAt(6)
console.log(m)//结果j
  1. chatCodeAt

  • 作用:通过指定下标获取对应字符的阿斯克码

  • 语法:字符串.chatCodeAt(下标)

  • 返回值:返回字符对应的阿斯克码

var str='asdfghjkl'
var code = str.charCodeAt(3)
console.log(code);//结果102
  1. String.fromCharCode

  • 作用:通过指定的阿斯克码得到对应的字符

  • 语法:String.fromCharCode( )

  • 返回值:返回阿斯克码对应的字符

var res = String.fromCharCode(65)
console.log(res) //结果是A
  1. split

  • 作用:将字符串通过指定的分隔符,组成数组。

  • 语法:字符串.split( )

  • 返回值:返回数组

var str = 'green_red_yellow'
console.log(str);//  结果 green_red_yellow
var str = 'a-b-c-d';
var arr = str.split('-') // 参数为分隔符,使用-将字符串分割为一个数组
console.log(arr) // ['a','b','c','d']
var str = 'a-b-c-d';
var arr = str.split('-',3) // 参数2表示数组中要保留前几个元素
console.log(arr) // ['a','b','c']
var str = 'a-b-c-d';
var arr = str.split() // 省略了分隔符,默认就不分割,将整个字符串当做一个元素放在数组中
console.log(arr) // ['a-b-c-d']
var str = 'a-b-c-d';
var arr = str.split('')
console.log(arr) // ["a","-","b","-","c","-","d"]
  1. startsWith

  • 作用:判断字符串是否以某个字符或小写字符串开头的

  • 语法:字符串.startsWith(字符/小字符串 )

  • 返回值:返回布尔值

var str = 'abcdef'
var bool = str.startsWith('aabc')
console.log(bool);//结果false
var bools = str.startsWith('abc')
console.log(bools);//结果true
  1. endsWith

  • 作用:判断字符串是否以某个字符或小写字符串结尾的

  • 语法:字符串.endsWith(字符/小字符串 )

  • 返回值:返回布尔值

var str = 'abcdef'
var bool = str.endsWith('kef')
console.log(bool);//结果false
var bools = str.endsWith('f')
console.log(bools);//结果true
  1. includes

  • 作用:判断字符串是否包含某个字符或小写字符串。

  • 语法:字符串.includes(字符/小字符串 )

  • 返回值:返回布尔值

var str = 'abcdef'
var bool = str.includes('bcde')
console.log(bool);//结果true
  1. indexOf

  • 作用:查找字符或小字符串在字符串中第一次出现的下标。

  • 语法:字符串.indexOf(字符/小字符串 )

  • 返回值:找到返回下标,找不到返回-1

var str = 'abcdbabefcd'
var idx = str.indexOf('a')
// 第二个参数表示从哪个下标开始查找
var idx = str.indexOf('a', 2)
console.log(idx);//结果是5
var dx = str.indexOf('k', 2)
console.log(dx);//结果是-1
  1. lastIndexOf

  • 作用:查找字符或小字符串在字符串中最后一次出现的下标。

  • 语法:字符串.lastIndexOf(字符/小字符串 )

  • 返回值:找到返回下标,找不到返回-1

var str = 'i love you';
// 找到o字符在str中最后一次出现的位置
var s = str.lastIndexOf('o');
console.log(s); // 8

var s = str.lastIndexOf('o',7) // 将下标7当做字符串末尾,查找字符o在字符串中
最后一次出现的下标
console.log(s) // 3

var s = str.lastIndexOf('a')
console.log(s) // -1 - 找不到就返回-1
  1. slice

  • 作用:截取字符串。

  • 语法:字符串.slice(参数1,参数2 )参数1是截取开始的下标,参数2是截取的结束下标

  • 返回值:包前不包后

var str = 'abcdefhfdh';
// 从下标1截取到下标4
var s = str.slice(1,4) // 参数1是开始截取的下标,参数2是截取的结束下标
console.log(s) // bcd - 结果中不包含结束下标对应的字符

var s = str.slice(1) // 省略第二个参数,默认能截取到字符串末尾
console.log(s) // bcdef

var s = str.slice(-3,-1) // 下标可以使用负数表示,-3表示倒数第3个字符,-1表示倒数第1个字符
console.log(s) // def

var s = str.slice(-1,-3) // 如果开始下标比结束下标大,会截取到空
console.log(s) // ''
  1. substr

  • 作用:截取字符串。

  • 语法:字符串.substr(开始下标, 截取的长度)

  • 返回值:返回一小段

var str = 'abcdef';
str = str.substr(1,3) // 参数1是开始截取的下标,参数2是截取的字符串长度
console.log(str) // bcd

str = str.substr(1) // 省略参数2默认截取到字符串末尾
console.log(str) // bcdef

str = str.substr(-4,2) // 开始截取的下标可以用负数表示
console.log(str) // 'cd'

str = str.substr(1,20) // 长度超出最大下标,就相当于省略了参数2
console.log(str) // cdef
  1. substring

  • 作用:截取字符串。

  • 语法:字符串.substring(开始下标, 结束下标)

  • 返回值:返回一小段,包前不包后.

var str = 'abcdef'
str = str.substring(1,4) // 参数1是开始截取的下标,参数2是结束下标
console.log(str) // bcd - 结果不包含结束下标对应的字符

str = str.substring(1) // 省略参数2,默认截取到末尾
console.log(str) // bcdef

str = str.substring(1,1) // 开始下标和结束下标相等就截取到空字符串
console.log(str) // ''

str = str.substring(4,1) // 开始下标大于结束下标,就先交换两个参数位置,然后再截取
console.log(str) // 'bcd'

str = str.substring(-5,4) // 开始下标或结束下标是负数,就先替换为0,然后开始截取
console.log(str) // abcd
  1. replace

  • 作用:替换字符串中指定的一小段。

  • 语法:字符串.replace(被替换的一段,新的内容)

  • 返回值:返回替换后的字符串。

var str = 'i love html very much and html is very good'
str = str.replace('html', 'js')//i love js very much and html is very good
str = str.replace('html', 'js')//i love js very much and js is very good
console.log(str);
  1. trim

  • 作用:去除字符串两端空白

  • 语法:字符串.trim()

var str = '    aaa          ';
str = str.trim()
console.log(str) // 'aaa' - 左右两端的空白被去掉了

str = str.trimLeft() // 去除左边的空白
console.log(str) // 'aaa          '

str = str.trimRight() // 去除右边的空白
console.log(str) // '    aaa'
  1. toUpperCase

  • 作用:将字符串中字母转为大写

  • 语法:字符串.toUpperCase()

var str = 'i love you';
str = str.toUpperCase()
console.log(str) // 'I LOVE YOU'
  1. toLowerCase

  • 作用:将字符串中字母转为小写

  • 语法:字符串.toLowerCase()

var str = 'I LOVE YOU';
str = str.toLowerCase()
console.log(str) // 'i love you'

四、三个截取方法的区别

  1. slice

特点:可以使用负数表示下标

var str = 'abcdefghijklmnopq'
var s = str.slice(-5, -2)//结果是mno
var s = str.slice(-2, -5) //结果是ab
// 因为截取一定是从左向右的,开始下标在结束下标的右边,就截取到字符串
console.log(s);
  1. substr

特点:可以用负数表示开始下标

// 1.可以用负数表示开始下标
var str = 'abcdefghijklmnopq'
var s = str.substr(-5, 3)//结果是mno
console.log(s);
  1. substring

特点:不能用负数表示下标

var s = str.substring(-5, -2)//结果是空

var s = str.substring(2, 5)//结果是cde
// 如果开始下标在结束下标的右边,就先交换两个参数的位置 - 然后截取
var s = str.substring(5, 2)//结果是cde
// 如果使用了负数表示下标,就将负数先转成0去截取
var s = str.substring(-2, 2)//结果是ab
var s = str.substring(2, -2)//结果是ab
console.log(s);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白有点绿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值