字符串

311 阅读4分钟

ES5

ES5是一个简称,全称:ECMAScript5.0

ES5是开发者公认的兼容性最好的版本

严格模式

为js代码开启一个解析起来比较严格的模式。 'use strict' 可以放在全局的顶部;也可以放在局部的顶部。 放在全局的严格模式,可以约束所有的代码;放在局部的严格模式,只能约束到局部的代码

严格模式对于语法的要求:

1.不允许省略var定义变量

2.不允许1个函数中的形参重名

3.不允许普通函数中的this关键字代表window窗口

严格模式的优点:

1.对语法要求更高,让我们代码更加规范

2.运行的时候效率更高

字符串

字符串是只读数据,只能读,不可以增、删、改

字符串大小

字符串比较的时候,逐字符比较。

console.log('23' > '228');

字母比数字大,小写的比大写的大,排在后面的越大

阿斯克码:英文字母和符号 ===> 二进制 对照表有128个

0-9的阿斯克码 48 ~ 57

A-Z的阿斯克码 65 ~ 90

a - z的阿斯克码 97 ~ 122

字符串方法

charAt:根据下标获取对应的字符

字符串.charAt(下标) - 返回对应的字符

var str = 'abcdef'
console.log( str.charAt(3) );
console.log( str[3] );

charCodeAt:根据下标获取字符对应的阿斯克码

字符串.charCodeAt(下标) - 返回阿斯克码

var str = 'abcdef'
console.log( str.charCodeAt(2) );

String.fromCharCode:将指定的阿斯克码转成字符

String.fromCharCode(阿斯克码) - 返回对应的字符

var code = 120
console.log( String.fromCharCode(code) );

trim:去除字符串两边的空格

字符串.trim() - 返回左右两边没有空格字符串
var str = '    abc  '
console.log(str);
console.log( str.trim() );

trimLeft:去除左边空格

console.log( str.trimLeft() );

trimRight:去除右边空格

console.log( str.trimRight() );

toUpperCase:将字符串中字母转成大写

字符串.toUpperCase()

var str = 'i love you'
console.log( str.toUpperCase() );

toLowerCase:将字符串中字母转成小写

var str = 'ABCDEF'
console.log( str.toLowerCase() );

split:根据指定的分隔符将字符串分割成数组

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

var str = 'open_door_now'
// ['open', 'door', 'now']
console.log( str.split('_') );

slice:截取字符串

字符串.slice(开始下标, 结束下标) - 返回截取出来一段字符串

var str = 'abcdefg'
console.log( str.slice(2, 4) );

将'i love you'转成'I Love You'
var str = 'i love you'
// 在空格位置放炸弹
var arr = str.split(' ')
// console.log(arr);
// 映射新数组
var brr = arr.map(function(item) {
    var newItem = item[0].toUpperCase() + item.slice(1)
    return newItem
})
// console.log(brr);

substr:截取字符串

字符串.substring(开始下标, 结束下标) - 返回截取出来一段字符串

var str = 'abcdef'
console.log( str.substring(2, 4) );

slice和substring的区别:

slice截取的时候,下标可以使用负数表示,但是截取的顺序必须是从左向右,开始下标必须在结束下标的左边

substring不可以使用负数表示下标,如果给了负数做下标,会将负数转成0;如果开始下标在结束下标的右边,会将两个参数交换顺序然后截取

console.log(str.slice(-4, -2)); // cd
console.log(str.slice(-2, -4)); // ''
console.log( str.substring(-4, -2) ); // 相当于str.substring(0, 0) ''
console.log( str.slice(4, 2) ); // '' 
console.log( str.substring(4, 2) ); // 'c

indexOf:查找字符或小字符串在大字符串中第一次出现的下标

字符串.indexOf(字符或小字符串)

var str = 'abacdacdef'
console.log( str.indexOf('a') ); // 0
console.log( str.indexOf('cd') ); // 3
console.log( str.indexOf('a', 1) ); // 2

lastIndexOf:找字符或小字符串在大字符串中最后一次出现的下标

字符串.lastIndexOf(字符/小字符串)

var str = 'abacdacdef'
console.log( str.lastIndexOf('a') ); // 5
console.log( str.lastIndexOf('a', 4) ); // 2

startsWith:判断字符或小字符串是否是 大字符串的 开头

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

var str = 'abacdacdef'
console.log( str.startsWith('a') ); // true
console.log( str.startsWith('aaa') ); // false

endsWith:判断字符串是否以某个字符或小字符串结尾的

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

var str = 'abacdacdef'
console.log( str.endsWith('f') ); // true
console.log( str.endsWith('ff') ); // false

includes:判断字符串中是否包含某个字符或小字符串

字符串.includes(字符/小字符串) - 返回布尔值

var str = 'abacdacdef'
console.log( str.includes('cd') ); // true
console.log( str.includes('cdcd') ); // false

replace:将字符串中某一部分替换成新内容

字符串.replace(字符串中的一部分, 新内容) - 返回被替换后的字符串

var str = 'i love you'
var str1 = str.replace('love', 'hate')
console.log(str1);
replace默认不够贪婪,只换一次

repeat:将某个字符串重复多次,形成新的字符串

字符串.repeat(次数) - 返回新字符串

var str = '*'
str = str.repeat(9)
console.log(str);