ES6学习总结之字符串的新增方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6学习总结之字符串的新增方法相关的知识,希望对你有一定的参考价值。
参考技术A该函数可识别unicode码点,输入码点,返回对应字符,与es5对比,可识别大于0xFFFF的字符,若参数为多个unicode码,则返回的字符将合成一个字符串。
将输入的字符串进行转义,主要针对模板字符串,即替换模板字符串中的所有变量,且遇见\'\'在其前面加一个\'\'
能正确的处理4个字节存储的字符,返回其十进制码点,es5只能识别2个字节的字符
使用 for...of 能将字符串的每一个字符的码点正确提取出,使用其参数会发生错误
该函数也可用于检验一个字符是2或4个字节
将不同表示法的字符统一为同样的形式,在计算不同表示法字符串长度的时候适用,例如不同字节长度的unicode码
1 includes() 是否找到参数
2 startWith() 是否在头部找到参数
3 endWith() 是否在尾部找到参数
其函数接受第二个参数,即检索起始位置
返回String,将字符串重复n次
1 padStart() 2 padEnd()
接受两个参数:1 最大长度 2 用于补全的字符串
1 trimStart() 2 trimEnd() 返回新字符串,不修改原字符串
主要用于正则在当前字符串的匹配
一次性替换所有匹配
ES5新增方法总结(数组方法,字符串方法,对象方法)
首先来看看什么是ES5.
ES5:是ECMAScript(基于JavaScript的规范)标准的修正。 与HTML5规范进程本质类似,ES5通过对现有JavaScript方法添加语句和原生ECMAScript对象做合并实现标准化。
ES5中新增了一些方法,可以很方便的操作数组、字符串以及对象
数组方法
迭代(遍历)方法
使用forEach()、map()、filter()、some()、every()等方法来遍历数组。
具体用法
(1)forEach()、map()
arr.forEach(function(value,index,array))
arr.map(function(value,index,array)) //遍历数组
value
:数组当前项的值
index
:数组当前项的索引
array
:数组本身
例如:
var arr = [1, 2, 3];
var sum = 0;
arr.forEach(function(value, index, array) {
console.log('每个数组元素' + value);
console.log('每个元素的索引号' + index);
console.log('数组' + array);
sum += value;
})
console.log(sum); //6
(2)filter()
arr.filter(function(value,index,array)) //直接返回一个新的数组
value
:数组当前项的值
index
:数组当前项的索引
array
:数组本身
注意:filter()方法创建一个新的数组,新的数组中的元素是通过检查指定数组中符合条件的所有元素。用法——>筛选数组。
例如:
// filter 筛选数组
var arr = [12, 66, 4, 88, 3, 7];
var newArr = arr.filter(function(value, index) {
// return value >= 20; //0:66,1:88
return value % 2 === 0; //12,66,4,88
});
console.log(newArr);
(3)some()
arr.some(function(value,index,array))
value
:数组当前项的值
index
:数组当前项的索引
array
:数组本身
some()方法用于检测数组中的元素是否满足指定条件。也就是说,some()方法用于查找数组中是否有满足条件的元素。
它的返回值是布尔值,如果含有满足条件的元素就返回true;如果找不到就返回false。
注意:如果找到第一个满足条件的元素,则终止循环,不再继续查找。
例如:
var arr1 = ['red', 'pink', 'blue'];
var flag1 = arr1.some(function(value) {
return value == 'pink';
});
console.log(flag1); //true
(4)every()
arr.some(function(value,index,array))
查找数组所有的元素,当所有的元素满足指定条件时返回true,有一个不满足条件则返回false。
例如:
var arr = [10, 30, 4];
var flag = arr.every(function(value) {
return value > 3;
});
console.log(flag); //true
filter()与some()方法的区别
-
filter()
:查找满足条件的元素,返回的是一个数组,而且是把所有满足条件的元素返回回来 -
some()
:查找满足条件的元素是否存在 ,返回的是一个布尔值,如果查找到第一个满足条件的元素就终止循环。
字符串方法
trim()
:trim()方法会从一个字符串的两端删除空白字符。
用法:
str.trim()
注意:trim()方法并不影响原字符串本身,它返回的是一个新的字符串。
例如:
var input = document.querySelector('input');
var btn = document.querySelector('button');
var div = document.querySelector('div');
btn.onclick = function() {
var str = input.value.trim();
if (str === '') {
alert('请输入内容');
} else {
console.log(str); //12345 两端没有空格
console.log(str.length); //5
div.innerHTML = str;
}
}
对象方法
Object.keys()
Object.keys()
用于获取对象自身所有的属性。
用法:
Object.keys(obj)
它的效果类似于for…in
例如:
var obj = {
id: 1,
name: '小文',
age: 18,
sex: '女'
};
var arr = Object.keys(obj);
console.log(arr);
arr.forEach(function(value) {
console.log(value);
})
Object.defineProperty()
Object.defineProperty()
: 用于定义对象中新属性或修改原有的属性。
用法:
Object.defineProperty(obj,prop,descriptor)
obj
:目标对象
prop
:需要定义或修改的属性的名字
descriptor
:目标属性拥有的特性,以对象{}形式书写
1、以前添加和修改对象属性的方法:
var obj = {
id: 1,
name: '小文',
age: 18,
sex: '女'
};
obj.grand = 1;
obj.age = 20;
console.log(obj);
2.、使用Object.defineProperty() 定义新属性或修改原有的属性
var obj = {
id: 1,
name: '小文',
age: 18,
sex: '女'
};
Object.defineProperty(obj, 'age', {
value: 20,
});
以上是关于ES6学习总结之字符串的新增方法的主要内容,如果未能解决你的问题,请参考以下文章