【JavaScript学习笔记】函数、数组、日期
一、函数
一个函数应该只返回一种类型的值。
函数中有一个默认的数组变量arguments,存储着传入函数的所有参数。
为了使用函数参数方便,建议给参数起个名字。
function fun1(obj, name, value){
console.log(arguments);
console.log(obj);
console.log(name);
console.log(value);
}
fun1({'id':12}, 'username', '张三');
二、数组
2.1、定义方式
var arr = [1,2,3];
var arr = new Array("a", "b", "c");
数组具有length属性,既可以获取 arr.length ,也可以设置 arr.length = 2; (设置数组长度,超出数组长度的元素被丢弃)
2.2、数组方法
pop() 取出并删除数组末尾元素
push(variable) 在数组的末尾追加元素
shift() 取出并删除数组开头元素
unshift(variable) 在数组的开头添加元素
splice(start, length, [var1, ...]); 从arr[start]元素起,删除length个元素,然后把后面的参数插入(相当于替换)
var arr = [1,3,5];
arr.splice(1, 2, 2, 3, 4); //从1个元素(即arr[1])开始,删除2个元素(即arr[1]和arr[2]),插入 2,3,4
console.log(arr); //[1,2,3,4]
join(str) 数组元素以str连接返回字符串
sort() 数组默认把元素作为字符串自然排序,也可以传入函数作为参数自定义排序规则。
var arr = [3,5,2,1,12];
arr.sort(function(n1, n2){
return n1-n2; //返回true,则n1和n2交换位置,使n1在后,n2在前,false则不变。升序,return n2-n1;则降序
});
console.log(arr); //[1, 2, 3, 5, 12]
三、日期
var oDate = new Date(); oDate.getFullYear(); //获取年份
oDate.getMonth(); //获取月份,月份从0开始,即0表示1月,1表示2月,以此类推
oDate.getDate(); //获取当前月份的第几日
oDate.getHours(); //时
oDate.getMinutes(); //分
oDate.getSeconds(); //秒
/**
* 扩展Date对象的功能
* @param format
* @returns
* @example (new Date()).format('yyyy-MM-dd hh:mm:ss') 结果是 2018-08-13 08:42:34 这样的格式 ;
*/
Date.prototype.format = function (format) {
var o = {
"M+": this.getMonth() + 1, // month
"d+": this.getDate(), // day
"h+": this.getHours(), // hour
"m+": this.getMinutes(), // minute
"s+": this.getSeconds(), // second
"q+": Math.floor((this.getMonth() + 3) / 3), // quarter
"S": this.getMilliseconds()
// millisecond
}
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
}
}
return format;
} /**
* 扩展Date对象的功能
* 获取上一个月日期对象
* @param date
* @returns {Date}
*/
Date.prototype.getPreMonth = function() {
var year = this.getFullYear();
var month = this.getMonth()+1;
var day = this.getDate();
var hour = this.getHours();
var minute = this.getMinutes();
var second = this.getSeconds(); var y = year;
var m = parseInt(month) - 1;
if (m == 0) { // 如果是一月
y = parseInt(y) - 1;
m = 12;
} var monthDays = new Date(y, m, 0).getDate(); //获取 m 月的天数
var d = day;
if (d > monthDays) {
d = monthDays;
}
return new Date(y, m-1, d, hour, minute, second);
} /**
* 扩展Date对象的功能
* 获取下一个月的日期
* @param date
* @returns {Date}
*/
Date.prototype.getNextMonth = function(){
var year = date.getFullYear();
var month = date.getMonth()+1;
var day = date.getDate();
var hour = date.getHours();
var minute = date.getMinutes();
var second = date.getSeconds(); var y = year;
var m = parseInt(month) + 1;
if (m == 13) {
y = parseInt(y) + 1;
m = 1;
} var d = day;
var monthDays = new Date(y, m, 0).getDate(); // 获取 m 月的天数
if (d > monthDays) {
d = monthDays;
}
return new Date(y, m-1, d, hour, minute, second);
}
【JavaScript学习笔记】函数、数组、日期的更多相关文章
- JavaScript学习笔记之数组(二)
JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...
- JavaScript学习笔记:数组reduce()和reduceRight()方法
很多时候需要累加数组项的得到一个值(比如说求和).如果你碰到一个类似的问题,你想到的方法是什么呢?会不会和我一样,想到的就是使用for或while循环,对数组进行迭代,依次将他们的值加起来.比如: v ...
- JavaScript学习笔记——函数
javascript函数的声明和调用 将完成某一特定功能的代码集合起来,可以重复使用的代码块. 一.函数的声明方式(创建) A.基本语法 function 关键字 function 函数名([参数1] ...
- JavaScript学习笔记之 数组方法一 堆栈 和队列
数组的方法 以及 堆栈的操作的方法 JavaScript是一种弱类型语言,不像其它程序语言需要严格定义数据类型.在JavaScript中数组可以任意修改变动,这样也就出现了一个问题,如果边遍历数组边操 ...
- JavaScript学习笔记之数组(一)
数组基础篇 一.数组概述 1. 数组的语法 数组(array)是按次序排列的一组值.每个值的位置都有编号(从0开始). var arr=[1,2,3] //arr[0]=1 任何类型的数据,都可以放入 ...
- c语言学习笔记 函数数组传递笔记
今天学习c语言的一个小例子,果然还是陷入了php的编程习惯里,这里记录一下. #include <stdio.h> //例子很简单,就是编写一个函数把传递进来的数组里的值都赋值为1而已 / ...
- JavaScript学习笔记-函数
函数的两种创建方式:函数定义表达式.函数声明语句 编译时,函数声明语句创建的函数会‘被提前’至外部函数的作用域顶部,在该作用域内可以被随意调用: 而函数表达式创建的函数,要调用它必须赋值给一个变量,编 ...
- JavaScript学习笔记——4.数组
数组(Array) 数组也是一个对象 数组中保存的内容我们称为元素 数组的操作 - 创建数组 - var arr = new Array(); - var arr = []; 例如:var m ...
- JavaScript学习笔记-函数实例
函数实例 var p = { a:15, b:'5', f1:function(){ var self = this; console.log(self.a+self.b); f2(); functi ...
- JavaScript学习笔记:数组的indexOf()和lastindexOf()方法
https://www.w3cplus.com/javascript/array-part-6.html
随机推荐
- Java反射机制(二):通过反射取得类的结构
在反射运用过程中,如果你想得到一个类的完整结构,那么就要使用到java.lang.reflect包中的几个类: · Constructor 表示类中的构造方法 · Field 表示类中的属性 · ...
- C#循环语句练习(三)
for循环拥有两类:一.穷举:把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况. (1).羽毛球拍15元,球3元,水2元.200元每种至少一个,有多少可能. (2).百鸡百钱:公鸡2文钱一 ...
- 最小生成树kruskal算法、
克鲁斯卡尔(kruskal) //kruskal算法生成最小生成树. //对边集数组Edge结构的定义 typedef struct { int begin; int end; int weight; ...
- python命令之m参数
在命令行中使用python时,python支持在其后面添加可选参数. python命令的可选参数有很多,例如:使用可选参数h可以查询python的帮助信息: 可选参数m 下面我们来说说python命令 ...
- H3C 配置RIP peer
- 反思K-S指标(KPMG大数据挖掘)
评估信用评级模型,反思K-S指标 2015-12-05 KPMG大数据团队 KPMG大数据挖掘 “信用评级”的概念听起来可以十分直截了当.比如一天早上你接到电话,有个熟人跟你借钱,而你将在半睡半醒间迅 ...
- git的安装与命令行基本的使用
1.https://git-scm.com/ 点击这个网址进入git的官方网站 2,.进去里面会有提示,64位于32位的,根据自己的电脑安装 3 下载完了过后就直接安装,一般会安装在c盘里面 ,进入安 ...
- Bi-LSTM-CRF for Sequence Labeling
做了一段时间的Sequence Labeling的工作,发现在NER任务上面,很多论文都采用LSTM-CRFs的结构.CRF在最后一层应用进来可以考虑到概率最大的最优label路径,可以提高指标. 一 ...
- hadoop的6个进程启动不全,请试 比如datanode没有启动
赋给hadoop用户hadoop-1.2.1读写权限 [root@master usr]# chown -R hadoop121:hadoop121 hadoop-1.2.1/ 折腾了两个小时 ...
- Yet Another Number Sequence——[矩阵快速幂]
Description Everyone knows what the Fibonacci sequence is. This sequence can be defined by the recur ...