7_JavaScript_函数_对象数组_日期

函数

  1. 基本概念

    • 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。
    • JavaScript 函数语法:函数就是包裹在花括号中的代码块:
    function 函数名()
    {
    这里是要执行的代码
    }
    
  2. 函数的声明和调用:

    • 使用了关键词 function来声明函数
    • 关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数。
    • 函数本身不会自动运行,只有当调用该函数时,才会执行函数内的代码。
    • 函数可以通过其名字加上括号中的参数进行调用
    • 可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript 在任何位置进行调用。
    • 在调用函数时,您可以向其传递值,这些值被称为参数。带有参数的函数也被称为有参函数。
  3. 带有返回值的函数:

    • 有时,我们会希望函数将值返回调用它的地方。通过使用 return 语句就可以实现。
    • 在使用 return 语句时,函数会停止执行,并返回指定的值。
    • 可以将返回值赋值给一个变量,然后对变量进行操作
    • 当函数遇到第一个return后将终止执行函数后边的语句,直接跳出函数
  4. arguments 对象:

    • 在函数代码中,使用特殊对象 arguments存储函数调用传递给该函数的所以参数。
    • 还可以用 arguments 对象检测函数的参数个数,引用属性 arguments.length 即可。
    • arguments [0]表示函数的第一个参数,arguments [1]表示函数的第二个参数......
    • 通过arguments可以动态的添加参数。
      return arguments[0];
    <script type="text/javascript">
        function draw() {
        var c=document.getElementById("myCanvas");
        var con=c.getContext("2d");
            for (var i = 0; i < 6; i++) {
                for (var j = 0; j < 6; j++) {
                    con.fillStyle="rgb(212, "+Math.floor(255-11.5*i)+", "+Math.floor(255-11.5*j)+")";
                    con.beginPath();
                    con.arc(20+j*50,20+i*50,15,0,Math.PI*2,true);
                    con.closePath();
                    con.fill();
                }
            }
        }
    </script>
    

对象和数组

对象:Object

  1. JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...
  • 对象是属性的集合,每个属性都有名字和值,对象可以通过属性的名字存取属性的值。
  • 对象的属性既可以存放基本数据类型也可以存放其他对象的引用值或者函数的引用值,如果存储的是函数的的引用值则该属性称为方法
  • 对象可以看做带有属性和方法的特殊数据类型。
  • 对象包含两个基本要素:属性-值,也称作键-值/名-值;当属性值为方法时也称作:属性(字段)和方法(函数)
  • 对象的创建方法
    • 通过new运算符创建
    • new关键字可以省略
    • 属性可以用引号包含也可以不用
  • 可以用点符号访问对象属性值也可以通过数组的方式,即用["属性名称"]
  • 可以使用delete运算符删除对象的属性。
// var person=new Object();
// var person={};
//      person.name="木木";
//      person.age=18;
var person={name:"木木",age:"18"};
document.write(person.name);
document.write(person["age"]);

数组:Array

数组的声明(创建)方法:
  1. new关键字创建空数组
  • new关键字创建包含元素的数组
  • new关键字创建指定元素个数的数组
  • 也可以使用[]直接创建数组
  • 可以使用length属性获取数组的长度;并且可以给一个数组赋值。

数组元素的基本操作程序运行时通常需要读取数组中的数据,有时候需要对数据进行修改。

  1. 读取数据:可以使用索引查询获取数组元素和添加数组元素
  • 添加数据:使用push方法将新元素添加到数组尾部.

  • 删除数据:可以使用delete运算符删除指定的元素。

  • 删除末尾元素(更新数据)pop()方法:该方法会返回删除的元素。

  • 删除顶端的元素 shift方法:

  • 在数组顶端添加元素 unshift方法:返回值为新数组的长度,但不建议使用,IE会出错。

  • 字符转换:toString方法将数组表示为字符串。

  • join方法输出数组元素。(输出结果会转换成字符串)

  • 数组逆序reverse:颠倒数组元素的顺序;返回值为逆序后的新数组。

    var fruit=new Array('香蕉','苹果','橘子');
    fruit.push('芒果');
    document.write(fruit+'<br>');
    // delete fruit[0];
    // document.write(fruit.pop()+'<br>');
    // document.write(fruit.shift()+'<br>');
    fruit.unshift(1);
    document.write(typeof fruit[0].toString()+'<br>');
    document.write(fruit.join('-')+'<br>');
    document.write(fruit.reverse());
    
  • 数组排序 sort:

    • 语法 数组名.sort(sortfunction)
    • sortfunction若省略,默认为从按照ASII字符顺序进行升序排列
    • sortfunction必须返回:正值、零、负值三者之一。赋值表示第一个值大于第二个值,负值反之,零则相等。
    // var fruit=new Array('5个香蕉','2个苹果','3个橘子');
    // document.write(fruit.sort()+'<br>');
    var arr=[31,45,52,12,4]
    document.write(arr.sort(sortFun));
    function sortFun(a,b) {
        if (a>b) {
            return 1;
        }else if (a<b) {
            return-1;
        }else {
            return 0;
        }
    }
    
  • 扩充数组 concat:将多个数组的元素合并为一个新的数组。var arr=arr1.concat(arr2);也可以写多个元素

  • splice方法:删除、替换、插入元素(返回值是切取得元素)

    • 会更改原数组
    • 第一参数为起始位置索引
    • 第二参数为切取元素个数
    • 第三个参数为插入元素,可选项
  • 切取数组的一段元素 slice:

    • 切取部分作为新数组返回,不会对原数组改变。
    • 第一参数为起始位置索引
    • 第二参数为结束位置索引,注意区分splice
    • 若省略第二个参数则直接切取到结尾
    var arr=new Array('元素0','元素1','元素2','元素3','元素4','元素5','元素6');
    document.write(arr+'</br>')
    var arr1=arr.splice(1,4)
    document.write(arr+'</br>')
    document.write(arr1+'</br></br>')


    var arr=new Array('元素0','元素1','元素2','元素3','元素4','元素5','元素6');
    document.write(arr+'</br>')
    var arr1=arr.slice(1,4)
    document.write(arr+'</br>')
    document.write(arr1+'</br>')

in 运算符和 for in循环语句

  1. in 运算符用来检测对象中是否具有某一特定属性,通常用于遍历集合中的所有元素。
  • 通常我们使用for/in 语句循环遍历对象的属性,在数组中可以遍历数组中的所有元素。
阶乘
function test(n) {
    if (n==1) {
        return 1;
    }else {
        return n*test(n-1);
    }
}
document.write(test(5));
输出1000--9999直接的所有回文
var arr=new Array();
function test() {
    for (var i = 1000; i < 9999; i++) {
        var gw=i%10;
        var sw=Math.floor(i/10)%10;
        var bw=Math.floor(i/100)%10;
        var qw=Math.floor(i/1000)%10;
        if (gw==qw&&sw==bw) {
            arr.push(i);
        }
    }
}
test();
document.write(arr);

日期

创建Date对象四种方法:

  1. var date= new Date();
  • 无参数的情况下返回值为当前时间。
  • 不同浏览器显示的时间格式会有细微差异
  • var date = new Date(milliseconds);
  • var date = new Date(dateString);
  • var date = new Date(year, month, day, hours, minutes, seconds, milliseconds);

时间相关的两个方法(这两种方法了解一下就可以了):

  1. Date.parse()返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
  • Date.parse()参数支持的时间格式如下:

    • 1/24/2016;
    • January 24,2016;
    • Sun Jan 24 2016 10:10:10 GMT+0800
    • 格式不正确会返回NaN
  • Date.UTC()根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。

  • Date.UTC()参数支持的时间格式如下:

    • 2016,1(前两个参数是必须的);
    • 2016,1,24,10,10,10
    • 数值含义为年/月/日/时/分/秒;格式不正确会返回NaN
    • 月份和日期是从0开始
    • 注意UTC时间和时区的换算,如东八区和标准时间是八小时时差
    var date = new Date();
    // var date = new Date(1435929394854);
    // var date = new Date('2016,12,13');
    // var date = new Date(2012,12,13,16,10,10);
    document.write(Date.parse('1/11/2011')+'<br>');
    

Date实例相关的字符串表示方法(了解即可):

  1. toSting()获取Date实例的字符串表示
  • toDateSting()获取Dater的日期部分字符串表示
  • toTimeSting()获取Dater的时间部分字符串表示
  • toLocaleString() 据本地时间格式,把 Date 对象转换为字符串。
  • toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。
  • toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。
  • valueOf():转换为毫秒数
var date = new Date();
document.write(date.toDateString());

Date 对象方法

通过使用针对日期对象的方法,我们可以很容易地对日期进行操作。

  1. getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
  • getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。
  • getFullYear() 从 Date 对象以四位数字返回年份。
  • getHours() 返回 Date 对象的小时 (0 ~ 23)。
  • getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。
  • getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。
  • getMonth() 从 Date 对象返回月份 (0 ~ 11)。
  • getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。
  • getTime() 返回 1970 年 1 月 1 日至今的毫秒数。
  • getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差
  • getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。
  • getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。
  • getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份。
  • getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)。
  • getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)。
  • getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)。
  • getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)。
  • getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。
  • parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
  • setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。
  • setFullYear() 设置 Date 对象中的年份(四位数字)。
  • setHours() 设置 Date 对象中的小时 (0 ~ 23)。
  • setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)。
  • setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。
  • setMonth() 设置 Date 对象中月份 (0 ~ 11)。
  • setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。
  • setTime() setTime() 方法以毫秒设置 Date 对象。
  • setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。
  • setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)。
  • setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)。
  • setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。
  • setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。
  • setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)。
  • setUTCSeconds() setUTCSeconds() 方法用于根据世界时 (UTC) 设置指定时间的秒字段。
  • toDateString() 把 Date 对象的日期部分转换为字符串。
  • toGMTString() 已废弃。请使用 toUTCString() 方法代替。
  • toISOString() 使用 ISO 标准返回字符串的日期格式。
  • toJSON() 以 JSON 数据格式返回日期字符串。
  • toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。
  • toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。
  • toLocaleString() 据本地时间格式,把 Date 对象转换为字符串。
  • toString() 把 Date 对象转换为字符串。
  • toTimeString() 把 Date 对象的时间部分转换为字符串。
  • toUTCString() 根据世界时,把 Date 对象转换为字符串。
  • UTC() 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。
  • valueOf() 返回 Date 对象的原始值。
var date = new Date();
date.setFullYear(2000);
document.write(date.getDate()+'<br>');
document.write(date.getFullYear()+'<br>');
document.write();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,219评论 0 4
  • php usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解包。 uni...
    思梦PHP阅读 1,983评论 1 24
  • PHP常用函数大全 usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解...
    上街买菜丶迷倒老太阅读 1,360评论 0 20
  • 曾经熟悉的面孔如今已经变得越来越模糊,可是与你在一起的感动却永远无法随时间而磨灭。曾经以为时间可以带走一切,抚平心...
    z馨阅读 446评论 6 3
  • 在这样一个看脸的社会,长得好看有着巨大的优势。但现在,帅哥美女显然已经不是长相的问题,而演变成了性别问题。在这样的...
    pena_shan阅读 557评论 0 1