一、函数

一个函数应该只返回一种类型的值。

函数中有一个默认的数组变量arguments,存储着传入函数的所有参数。

为了使用函数参数方便,建议给参数起个名字。

  1. function fun1(obj, name, value){
  2. console.log(arguments);
  3. console.log(obj);
  4. console.log(name);
  5. console.log(value);
  6. }
    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个元素,然后把后面的参数插入(相当于替换)

  1. var arr = [1,3,5];
  2. arr.splice(1, 2, 2, 3, 4); //从1个元素(即arr[1])开始,删除2个元素(即arr[1]和arr[2]),插入 2,3,4
  3. console.log(arr); //[1,2,3,4]

join(str) 数组元素以str连接返回字符串

sort() 数组默认把元素作为字符串自然排序,也可以传入函数作为参数自定义排序规则。

  1. var arr = [3,5,2,1,12];
  2. arr.sort(function(n1, n2){
  3. return n1-n2; //返回true,则n1和n2交换位置,使n1在后,n2在前,false则不变。升序,return n2-n1;则降序
  4. });
  5. console.log(arr); //[1, 2, 3, 5, 12]

三、日期

  1. var oDate = new Date();
  2.  
  3. oDate.getFullYear();  //获取年份
  4. oDate.getMonth();    //获取月份,月份从0开始,即0表示1月,1表示2月,以此类推
  5. oDate.getDate();    //获取当前月份的第几日
  6. oDate.getHours();   //时
  7. oDate.getMinutes();  //分
  8. oDate.getSeconds();  //秒
  1. /**
  2. * 扩展Date对象的功能
  3. * @param format
  4. * @returns
  5. * @example (new Date()).format('yyyy-MM-dd hh:mm:ss') 结果是 2018-08-13 08:42:34 这样的格式 ;
  6. */
  7. Date.prototype.format = function (format) {
  8. var o = {
  9. "M+": this.getMonth() + 1, // month
  10. "d+": this.getDate(), // day
  11. "h+": this.getHours(), // hour
  12. "m+": this.getMinutes(), // minute
  13. "s+": this.getSeconds(), // second
  14. "q+": Math.floor((this.getMonth() + 3) / 3), // quarter
  15. "S": this.getMilliseconds()
  16. // millisecond
  17. }
  18. if (/(y+)/.test(format)) {
  19. format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  20. }
  21. for (var k in o) {
  22. if (new RegExp("(" + k + ")").test(format)) {
  23. format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
  24. }
  25. }
  26. return format;
  27. }
  28.  
  29. /**
  30. * 扩展Date对象的功能
  31. * 获取上一个月日期对象
  32. * @param date
  33. * @returns {Date}
  34. */
  35. Date.prototype.getPreMonth = function() {
  36. var year = this.getFullYear();
  37. var month = this.getMonth()+1;
  38. var day = this.getDate();
  39. var hour = this.getHours();
  40. var minute = this.getMinutes();
  41. var second = this.getSeconds();
  42.  
  43. var y = year;
  44. var m = parseInt(month) - 1;
  45. if (m == 0) { // 如果是一月
  46. y = parseInt(y) - 1;
  47. m = 12;
  48. }
  49.  
  50. var monthDays = new Date(y, m, 0).getDate(); //获取 m 月的天数
  51. var d = day;
  52. if (d > monthDays) {
  53. d = monthDays;
  54. }
  55. return new Date(y, m-1, d, hour, minute, second);
  56. }
  57.  
  58. /**
  59. * 扩展Date对象的功能
  60. * 获取下一个月的日期
  61. * @param date
  62. * @returns {Date}
  63. */
  64. Date.prototype.getNextMonth = function(){
  65. var year = date.getFullYear();
  66. var month = date.getMonth()+1;
  67. var day = date.getDate();
  68. var hour = date.getHours();
  69. var minute = date.getMinutes();
  70. var second = date.getSeconds();
  71.  
  72. var y = year;
  73. var m = parseInt(month) + 1;
  74. if (m == 13) {
  75. y = parseInt(y) + 1;
  76. m = 1;
  77. }
  78.  
  79. var d = day;
  80. var monthDays = new Date(y, m, 0).getDate(); // 获取 m 月的天数
  81. if (d > monthDays) {
  82. d = monthDays;
  83. }
  84. return new Date(y, m-1, d, hour, minute, second);
  85. }

【JavaScript学习笔记】函数、数组、日期的更多相关文章

  1. JavaScript学习笔记之数组(二)

    JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...

  2. JavaScript学习笔记:数组reduce()和reduceRight()方法

    很多时候需要累加数组项的得到一个值(比如说求和).如果你碰到一个类似的问题,你想到的方法是什么呢?会不会和我一样,想到的就是使用for或while循环,对数组进行迭代,依次将他们的值加起来.比如: v ...

  3. JavaScript学习笔记——函数

    javascript函数的声明和调用 将完成某一特定功能的代码集合起来,可以重复使用的代码块. 一.函数的声明方式(创建) A.基本语法 function 关键字 function 函数名([参数1] ...

  4. JavaScript学习笔记之 数组方法一 堆栈 和队列

    数组的方法 以及 堆栈的操作的方法 JavaScript是一种弱类型语言,不像其它程序语言需要严格定义数据类型.在JavaScript中数组可以任意修改变动,这样也就出现了一个问题,如果边遍历数组边操 ...

  5. JavaScript学习笔记之数组(一)

    数组基础篇 一.数组概述 1. 数组的语法 数组(array)是按次序排列的一组值.每个值的位置都有编号(从0开始). var arr=[1,2,3] //arr[0]=1 任何类型的数据,都可以放入 ...

  6. c语言学习笔记 函数数组传递笔记

    今天学习c语言的一个小例子,果然还是陷入了php的编程习惯里,这里记录一下. #include <stdio.h> //例子很简单,就是编写一个函数把传递进来的数组里的值都赋值为1而已 / ...

  7. JavaScript学习笔记-函数

    函数的两种创建方式:函数定义表达式.函数声明语句 编译时,函数声明语句创建的函数会‘被提前’至外部函数的作用域顶部,在该作用域内可以被随意调用: 而函数表达式创建的函数,要调用它必须赋值给一个变量,编 ...

  8. JavaScript学习笔记——4.数组

    数组(Array) 数组也是一个对象   数组中保存的内容我们称为元素 数组的操作 - 创建数组 - var arr = new Array();   - var arr = []; 例如:var m ...

  9. JavaScript学习笔记-函数实例

    函数实例 var p = { a:15, b:'5', f1:function(){ var self = this; console.log(self.a+self.b); f2(); functi ...

  10. JavaScript学习笔记:数组的indexOf()和lastindexOf()方法

    https://www.w3cplus.com/javascript/array-part-6.html

随机推荐

  1. Mac MAMP 使用终端shell操作mysql数据库

    在MAMP中已经集成了phpMyAdmin,可以很方便的管理mysql数据库,但是有的情况是phpMyAdmin不能做到的.比如,导入sql文件,当sql文件非常大(大于20MB)的时候,apache ...

  2. [转]Netty实现原理浅析

    Netty是JBoss出品的高效的Java NIO开发框架,关于其使用,可参考我的另一篇文章netty使用初步.本文将主要分析Netty实现方面的东西,由于精力有限,本人并没有对其源码做了极细致的研 ...

  3. Codeforces Round #179 (Div. 1 + Div. 2)

    A. Yaroslav and Permutations 值相同的个数不能超过\(\lfloor \frac{n + 1}{2} \rfloor\). B. Yaroslav and Two Stri ...

  4. H3C 通配符掩码

  5. React---钩子函数

    钩子函数的状态有4个阶段: <p>1.初始化阶段  (componentWillMount() || componentDidMount()) </p>             ...

  6. H3C 三种生成树协议的端口状态对比

  7. Vue与React比较

    与React 相似: (1)虚拟DOM(Virtual DOM) 虚拟DOM的诞生是基于:改变真实的DOM状态远比改变一个JS对象的花销要大的多. 虚拟DOM是一个映射真实DOM的JS对象,当有变化产 ...

  8. SVG基础绘图实例

    SVG可缩放矢量图(Scalable Vector Graphics),是使用 XML 来描述二维图形和绘图程序的语言,图像在放大或改变尺寸的情况下其图形质量不会有所损失,是万维网联盟的标准. 下面整 ...

  9. jQuery 工具类函数-URL操作函数

    调用名为$. param的工具函数,能使对象或数组按照key/value格式进行序列化编码,该编码后的值常用于向服务端发送URL请求,调用格式为: $. param (obj); 参数obj表示需要进 ...

  10. HttpRepl 互操作的 RESTful HTTP 服务调试命令行工具

    今天早上曽根セイラ告诉我一个好用的工具 HttpRepl 这是一个可以在命令行里面对 RESTful 的 HTTP 服务进行路由跳转和访问的命令行工具.可以使用 cd 这个命令和像文件跳转已经跳转到下 ...