ES5新增方法
1.ES5新增方法
1.1 ES5 新增方法概述
ES5 中给我们新增了一些方法,可以很方便的操作数组或者字符串,这些方法主要包括: 数组方法 字符串方法 对象方法 迭代(遍历)方法:forEach()、map()、filter()、some()、every();
1.2数组方法forEach遍历数组
<script>
// forEach 方法
var arr = [1,2,3];
var sum = 0;
arr.forEach(function(value,index,arr) {
console.log('每个数组元素' + value);
console.log('每个数组元素的索引号' + index);
console.log('数组本身' + arr);
sum += value;
});
console.log(sum);
</script>
//相当于数组遍历的 for循环 没有返回值
Value:数组当前项的值
index:数组当前项的索引 arr:数组对象本身
1.3数组方法filter过滤数组
<script>
// filter 筛选数组
var arr = [1,18,33,24,65,78];
var Array = arr.filter(function(value,index) {
// return value >= 20;
return value % 2 === 0;
})
console.log(Array); //返回值是一个新数组
</script>
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素,主要用于筛选数组
注意它直接返回一个新数组 currentValue: 数组当前项的值 index:数组当前项的索引 arr:数组对象本身
1.4数组方法some
<script>
// some查找数组中是否有满足条件的元素
var arr = [1,45,67,33,12];
var flag = arr.some(function(value) {
// return value >= 12; // true
return value >= 68; // flase
})
console.log(flag);
var arr1 = ['pink','yellow','green'];
var flag1 = arr1.some(function(value) {
return value = 'green';
})
console.log(flag1);
// 1. filter也是查找满足条件的元素返回的是一个数组而且是把所有满足条件的元素返回回来
// 2. some也是查找满足条件的元素是否存在―返回的是一个布尔值如果查找到第一个满足条件的元素就终止循环
</script>
some() 方法用于检测数组中的元素是否满足指定条件. 通俗点 查找数组中是否有满足条件的元素
注意它返回值是布尔值, 如果查找到这个元素, 就返回true , 如果查找不到就返回false. 如果找到第一个满足条件的元素,则终止循环. 不在继续查找. currentValue: 数组当前项的值 index:数组当前项的索引 arr:数组对象本身
1.5some和forEach区别
- 如果查询数组中唯一的元素, 用some方法更合适,在some 里面 遇到 return true 就是终止遍历 迭代效率更高
- 在forEach 里面 return 不会终止迭代
<script>
var arr = ['pink','green','yellow','red'];
/* // forEach 迭代/遍历
arr.forEach(function(value) {
if(value == 'green'){
console.log('找到了');
return value;
}
console.log(11);
}) */
//如果查询数组中唯一的元素,用some方法更合适
/* arr.some(function(value) {
if(value == 'green') {
console.log('找到了');
return true; //在some里面遇到return true就是终止遍历迭代效率更高
}
console.log(22);
}) */
arr.filter(function(value) {
if(value == 'green') {
console.log('找到了');
return true; // filter里面return不会终止迭代
}
console.log(22);
})
</script>
1.6trim方法去除字符串两端的空格
trim() 方法会从一个字符串的两端删除空白字符。
str.trim()
trim() 方法并不影响原字符串本身,它返回的是一个新的字符串。
<script>
// trim 去除字符串两侧空格
var str = ' andy ';
console.log(str);
var str1 = str.trim();
console.log(str1);
// 获取元素
var input = document.querySelector('input');
var btn = document.querySelector('button');
var div = document.querySelector('div');
btn.addEventListener('click',function(value) {
if (input.value.trim() === '') {
alert('请输入内容');
} else {
console.log(input.value.trim());
div.innerHTML = input.value.trim();
}
})
</script>
1.7获取对象的属性名
Object.keys(对象) 获取到当前对象中的属性名 ,返回值是一个数组
var obj = {
id: 1,
pname: '小米',
price: 1999,
num: 2000
};
var result = Object.keys(obj)
console.log(result)//[id,pname,price,num]
效果类似 for…in 输出对象中值大于 2 的 key 的数组
1.8Object.defineProperty
Object.defineProperty设置或修改对象中的属性
Object.defineProperty(obj, prop, descriptor)
<script>
// object.defineProperty()定义新属性或修改原有的属性
// 1.以前的对象添加和修改属性的方式
var obj = {
id:1,
uname:'华为',
price:3999
}
// 1.以前的对象添加和修改属性的方式
// obj.price = 2999;
// obj.num = 1000;
// console.log(obj);
// 2. object.defineProperty()定义新属性或修改原有的属性
Object.defineProperty(obj,'price',{
value:9.9,
})
Object.defineProperty(obj,'num',{
value:1000,
})
console.log(obj);
Object.defineProperty(obj,'id',{
//如果只为false不允许修改这个属性值―默认值也是false true可以修改
writable:true,
})
Object.defineProperty(obj,'adress',{
value:'六盘水师范学院',
//如果只为false不允许修改这个属性值―默认值也是false true可以修改
writable:true,
//lenumerable如果值为false则不允许遍历,默认的值是false
enumerable:true,
// configurable如果为false则不允许删除这个属性不允许在修改第三个参数里面的特性默认为flase
configurable:false
})
console.log(obj);
console.log(Object.keys(obj));
delete obj.address;
delete obj.uname;
console.log(obj);
Object.defineProperty(obj,'adress',{
value:'六盘水师范学院',
//如果只为false不允许修改这个属性值―默认值也是false true可以修改
writable:false,
//lenumerable如果值为false则不允许遍历,默认的值是false
enumerable:false,
// configurable如果为false则不允许删除这个属性不允许在修改第三个参数里面的特性默认为flase
configurable:true
})
console.log(obj);
</script>Object.defineProperty(对象,修改或新增的属性名,{
value:修改或新增的属性的值,
writable:true/false,//如果值为false 不允许修改这个属性值
enumerable: false,//enumerable 如果值为false 则不允许遍历
configurable: false //configurable 如果为false 则不允许删除这个属性 属性是否可以被删除或是否可以再次修改特性
})
Object.defineProperty() 第三个参数 descriptor 说明:
value: 设置属性的值 writable: 值是否可以重写。true | false enumerable: 目标属性是否可以被枚举。true | false configurable: 目标属性是否可以被删除或是否可以再次修改特性 true | false
obj:必需。目标对象 prop:必需。需定义或修改的属性的名字 descriptor:必需。目标属性所拥有的特性
- 优先队列(个人模版)
- Numpy教程第2部分 - 数据分析的重要功能
- 最小表示法(个人模版)
- 基于Python-ChatterBot搭建不同adapter的聊天机器人(使用NB进行场景分类)
- 并查集(个人模版)
- Markdown 语法和 MWeb 写作使用说明既然都整理了,捎带手把这个也整理了吧第一级标题<h1>
- 带权并查集(个人模版)
- 我的第一次Pascal程序
- Hive第二天学习内容总结Hive 第三天DDL特别注意一下,没事别删除数据DML
- Codeforces 791B Bear and Friendship Condition(DFS,有向图)
- Codeforces 791A Bear and Big Brother(暴力枚举,模拟)
- Selenium2+python自动化28-table定位
- POJ 2370 Democracy in danger(简单贪心)
- POJ 2209 The King(简单贪心)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 超性感的React Hooks(九)useContext实践
- 七日Python之路--第三天(之初试Django 2-2)
- 超性感的React Hooks(十)useRef
- 七日Python之路--第三天(之初试Django 2-1)
- 超性感的React Hooks(十一)useCallback、useMemo
- 七日Python之路--第二天
- 八、通过断点调试观察JS执行过程
- 传智播客OA项目学习--阶段三(Struts中Action书写)
- 九、函数与函数式编程
- 关于Hibernate懒加载----Spring filter
- 十、详解函数柯里化
- Unable to load file:*struts.xml-[unknown location]
- 使用hooks重新定义antd pro想象力(一)
- 传智播客OA项目学习--阶段三(级联操作)
- 七日Python之路--第十一天