JS学习笔记-几个有趣的东西
2016-06-21 10:12
441 查看
最近比较详细地翻阅了一下js资料,发现以下几个有趣的知识点
1、string类型不能改变单个字符值
如 var mystr ="BOb",如果你想改变mystr第一个字符的值,使用mystr[0]='j' 会报错
2、shift()分割数组:方法用于把数组的第一个元素从其中删除,并返回第一个元素的值
如var ourArray = ["one","two","three"];myArray = ourArray.shift();得到myArray:"one",ourArray:["two","three"]
3、object对象删除prop属性:delete.obj.prop
4、对象声明方式
var Car = function() {
this.wheels = 4;
this.engines = 1;
this.seats = 1;
};
5、使用map遍历数组
如:将数组 var oldArray = [1,2,3,4,5]的每个数加3
var newArray = oldArray.map(function(val){
return val+3;
});
6、使用reduce计算数组总和
var array = [4,5,6,7,8];
var singleVal = array.reduce(function(a,b){
return previousVal+currentVal;
},0);
其中reduce的第二个参数0表示初始值,若不写则初始值默认为数组第一个数的值
7、使用filter过滤数组
var oldArray = [1,2,3,4,5,6,7,8,9,10];
var newArray = oldArray.filter(function(val){
return val<6;
});
得到的newArray=[1,2,3,4,5]
8、使用sort排序
var array = [1, 12, 21, 2];
array.sort(function(a,b){
return a<b;
});
上面的a<b也可以用b-a代替
9、其他数组函数
reverse():倒置
split():将字符串按照某一分隔符分隔成数组
join:将数组按照某一连接符连接成字符串
10、js 参数对象
function destroyer(arr) {
var arrFilter = Array.prototype.slice.call(arguments, 1);
return arr.filter(function(val){
for(var i = 0; i<arrFilter.length;i++){
if(val===arrFilter[i]){
return false;
}
}
return true;
});
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);//return [1,1]
上面这个函数实现了从数组中去掉其他参数的功能,那么这是怎么实现的呢?
我们先来看看方法声明destroyer(arr)和方法调用destroyer([1, 2, 3, 1, 2, 3], 2, 3),由于js可省略参数声明,故我们可知arr代表[1,2,3,1,2,3]
然后观察方法体, Array.prototype.slice.call(arguments, 1)表示将参数从1开始取出并放到数组中
最后通过调用filter函数将参数从数组过滤掉。
后面会持续更新,同时欢迎大家补充
1、string类型不能改变单个字符值
如 var mystr ="BOb",如果你想改变mystr第一个字符的值,使用mystr[0]='j' 会报错
2、shift()分割数组:方法用于把数组的第一个元素从其中删除,并返回第一个元素的值
如var ourArray = ["one","two","three"];myArray = ourArray.shift();得到myArray:"one",ourArray:["two","three"]
3、object对象删除prop属性:delete.obj.prop
4、对象声明方式
var Car = function() {
this.wheels = 4;
this.engines = 1;
this.seats = 1;
};
5、使用map遍历数组
如:将数组 var oldArray = [1,2,3,4,5]的每个数加3
var newArray = oldArray.map(function(val){
return val+3;
});
6、使用reduce计算数组总和
var array = [4,5,6,7,8];
var singleVal = array.reduce(function(a,b){
return previousVal+currentVal;
},0);
其中reduce的第二个参数0表示初始值,若不写则初始值默认为数组第一个数的值
7、使用filter过滤数组
var oldArray = [1,2,3,4,5,6,7,8,9,10];
var newArray = oldArray.filter(function(val){
return val<6;
});
得到的newArray=[1,2,3,4,5]
8、使用sort排序
var array = [1, 12, 21, 2];
array.sort(function(a,b){
return a<b;
});
上面的a<b也可以用b-a代替
9、其他数组函数
reverse():倒置
split():将字符串按照某一分隔符分隔成数组
join:将数组按照某一连接符连接成字符串
10、js 参数对象
function destroyer(arr) {
var arrFilter = Array.prototype.slice.call(arguments, 1);
return arr.filter(function(val){
for(var i = 0; i<arrFilter.length;i++){
if(val===arrFilter[i]){
return false;
}
}
return true;
});
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);//return [1,1]
上面这个函数实现了从数组中去掉其他参数的功能,那么这是怎么实现的呢?
我们先来看看方法声明destroyer(arr)和方法调用destroyer([1, 2, 3, 1, 2, 3], 2, 3),由于js可省略参数声明,故我们可知arr代表[1,2,3,1,2,3]
然后观察方法体, Array.prototype.slice.call(arguments, 1)表示将参数从1开始取出并放到数组中
最后通过调用filter函数将参数从数组过滤掉。
后面会持续更新,同时欢迎大家补充
相关文章推荐
- JS技巧
- js同步和异步编程
- JSON.parse()在火狐中的bug
- JSP页面的静态包含和动态包含
- canvas 状态的保存和恢复 Saving and restoring state
- java和javascript的des 加密
- Javascript中的冒泡排序
- JS保留两位小数 四舍五入函数
- JS调试必备的5个debug技巧
- Javascript中Math对象、数组方法
- 编写可复用的无缝滚动轮播图
- ArcGIS JS 学习笔记4 实现地图联动
- ArcGIS JS 学习笔记3 实现百度风格的BubblePopup
- ArcGIS JS 学习笔记2 实现仿百度的拖拽画圆
- ArcGIS JS 学习笔记1 用ArcGIS JS 实现仿百度地图的距离量测和面积量测
- js清除浏览器缓存的几种方法
- JavaScript调用OC代码调试问题、页面 4000 复杂跳转逻辑警告处理
- 纯JS前端实现分页代码
- JS的Math以及Date对象
- js数组与字符串的相互转化