es5和字符串

  1. es3的不合理的地方

1.省略var定义变量

var a = 10

b = 20

2.函数的形参可以同名

function fn(a, a) {

console.log(a, a);

}

fn(1, 2)

3.

js中有一个关键字this - this关键字是代表一个变量的 - 在不同的作用域中代表的值是不一样的

全局的this

console.log(this); // window

function fn() {

console.log(this); // window

}

fn()

2.es5消除不合理

es5提出了一个严格模式语法:

语法: - 字符串 'use strict'

'use strict'

a = 10

console.log(a);

function fn(a, a) {

console.log(a);

}

fn(1, 2)

function fn() {

console.log(this);

}

fn()

总结:

加一个字符串 - 'use strict'

全局顶部或局部的顶部

全局放了可以约束所有代码

局部放了只能约束局部代码

不允许省略var定义变量

不允许函数的形参同名

不允许普通函数中的this代表window

严格模式的优点:

(1)消除了一些不合理的语法,规避了一些不必要的错误

(2)语法更规范了,运行效率更高了

3.重新认识字符串

var str = 'abcdef'

字符串可以像数组一样取下标

console.log( str[0] );

console.log( str[2] );

能取下标就能遍历

for(var a = 0; a <= 5; a++) {

console.log(str[a]);

}

字符串也有length长度

console.log(str.length);

for(var a = 0; a < str.length; a++) {

console.log(str[a]);

}

字符串中的length不允许改

str.length = 20

console.log(str);

字符串不允许修改、删除、添加字符 - 字符串是一种只读数据

str[0] = 'o'

console.log(str);

str[str.length] = 'p'

console.log(str);

总结:(1)字符串可以取下标

(2)字符串有长度

(3)字符串是只读数据

4.字符串比较

字符串也能进行大小比较

console.log( '11' < '12' );

字符串的比较规则是逐字符比较

console.log('a' < 'b'); -- 大小由阿斯克码决定

console.log('我' > '你'); -- unicode - 万国码

记忆:

0-9:48-57

A-Z:65-90

a-z:97-122

5.字符串方法

(1)charAt - 通过指定下标获取到对应的字符

语法:字符串.charAt(下标) - 返回字符

var str = 'abcdefg'

var s = str.charAt(3)

console.log(s)

(2)charCodeAt - 通过指定下标获取到对应字符的阿斯克码

语法:字符串.charCodeAt(下标) - 返回字符对应的阿斯克码

var code =str.charCodeAt(3)

console.log(code)

(3)String.fromCharCode - 通过指定的阿斯克码获取到他对应的字符

语法:String.fromCharCode(阿斯克码) - 返回字符

var s = String.fromCharCode

(4)split - 将字符串通过指定的分隔,组成数组

语法:字符串.split(分隔符) - 返回数组

var str = 'open_door_now' ['open', 'door', 'now']

var arr = str.split('_')

split的第二个参数是数字,表示我们在数组中要保留几个元素

var arr = str.split('_', 20)

var arr = str.split() 如果不加参数,默认将整个字符串当做数组的元素

var arr = str.split('') 空字符串做分隔符,会将每个字符都作为数组的元素

console.log(arr);

(5) startsWith - - 判断字符串是否以某个字符或小字符串开头的

语法:字符串.startsWith(字符/小字符串) - 返回布尔值

var str ='abcdef'

var bool = str.startsWith('aabc')

console.log(bool)

(6)endsWith - 判断字符串是否以某个字符或小字符串结尾的

语法:字符串.endsWith(字符/小字符串) -返回布尔值

var str = 'abcdef'

var bool = str.endsWith('f')

console.log(bool)

(7)includes - 判断字符串中是否包含某个字符或小字符串

语法:字符串.includes(字符/小字符串) 返回布尔值

var str = 'abcdef'

var bool = str.includes('ab')

console.log(bool);

(8)indexOf - 查找字符或小字符串在字符串中第一次出现的下标

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

找到了就返回下标,找不到就返回-1

var str = 'abcdababefcd'

var idx = str.indexOf('a')

第二个参数表示从哪个下标开始查找

var idx = str.indexOf('a', 2)

console.log(idx);

(9)lastIndexOf - 查找小字符串或字符在字符串中最后一个出现的下标

语法:字符串.lastIndexOf(字符/小字符串) 找到就返回下标,找不到就返回-1

var idx = str.lastIndexOf('ab')

第二个参数表示将下标几当做是字符串结尾

var idx = str.lastIndexOf('ab', 5)

console.log(idx);

(10)slice - 截取字符串

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

返回一小段字符串 包前不包后

var str = 'abcdababefcd'

var s = str.slice(2, 5)

省略第二个参数,表示截取到末尾

var s = str.slice(2)

省略第二个参数时,就可以第一个参数也省略 - 从头截取到末尾

var s = str.slice()

console.log(s);

(11)trim - 去除字符串左右两边的空格字符

语法:字符串.trim( )

var str = ' abcd '

console.log(str);

var s = str.trim()

console.log(s);

(12)trimLeft - 去除左边空格

语法:字符串.trimLeft( )

语法:字符串.trimLeft()

var str = ' abcd '

var s = str.trimLeft()

console.log(s);

(13)trimRight - 去除右边空格

var s = str.trimRight()

console.log(s);

(14)toUpperCase - 所有字符都转大写

语法:字符串.toUpperCase( )

var str = 'i love you'

var s = str.toUpperCase()

console.log(s);

(15)toLowerCase - 所有字符都转小写

语法:字符串.toLowerCase()

var str = 'I Love You'

var s = str.toLowerCase()

console.log(s);

(16)substr - 截取字符串

语法:字符串.substr(开始下标, 截取的长度) - 返回一小段

var str = 'abcdefghijklmn'

var s = str.substr(2, 5)

省略第二个参数,默认截取到末尾

var s = str.substr(2)

console.log(s);

(17)substring - 截取字符串

语法:字符串.substring(开始下标, 结束下标) - 返回一小段

包前不包后

var s = str.substring(2, 5)

省略第二个参数就是截取到末尾

var s = str.substring(2)

console.log(s);

(18)replace - 替换字符串中指定的一小段

语法:字符串.replace(被替换的那一小段, 新的内容) - 返回替换后的字符串

var str = 'i love html very much and html is very good'

str = str.replace('html', 'js')

str = str.replace('html', 'js')

console.log(str);

6.三个截取方法的区别

(1)slice 可以使用负数表示下标

var str = 'abcdefghijklmnopq'

var s = str.slice(-5, -2)

var s = str.slice(-2, -5) 因为截取一定是从左向右的,开始下标在结束下标的右边,就截取到字符串

console.log(s);

(2)substr 可以用负数表示开始下标

var s = str.substr(-5, 3)

console.log(s);

(3)subtring 不能用负数表示下标

如果开始下标在结束下标的右边,就先交换两个参数的位置 - 然后截取

var s = str.substring(5, 2)

如果使用了负数表示下标,就将负数先转成0去截取

var s = str.substring(-2, 2)

var s = str.substring(2, -2)

console.log(s);

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值