A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小鲁哥哥 于 2017-8-2 14:24 编辑

【黑马程序员济南】 前端与移动开发就业班笔记JS进阶:Day03

传智播客温馨提示:上一节我们学习了JS中数组的使用及应用,本节我们学习JS中函数和对象的基本感念及使用,好,下面我们开始本节的学习内容。

函数的声明:
[JavaScript] 纯文本查看 复制代码
    /**
     * @author 传智播客
     */
    function 函数名 () {
        //函数体
    }
函数的调用:
[JavaScript] 纯文本查看 复制代码
    /**
     * @author 传智播客
     */
    function heima () {
        //函数体
    }
    heima();
函数的参数
有参数的函数的声明(声明中的参数只是一个占位符,没有实际的值,是形式参数,即形参)
[JavaScript] 纯文本查看 复制代码
    /**
     * @author 传智播客
     */
    function heima (arg0,arg1,arg2...) {
        //函数体
    }
有参数的函数的调用(调用时传入的参数才是有真正数值的参数,是实际参数,即实参)
[JavaScript] 纯文本查看 复制代码
    /**
     * @author 传智播客
     */
    function heima (arg0,arg1,arg2...) {
        //函数体
    }
    heima(arg0,arg1,arg2...);
函数的返回值
在函数中通过return关键字将要返回值返回
return 要返回的值;
[JavaScript] 纯文本查看 复制代码
    /**
     * @author 传智播客
     */
    /*求n,m的乘积*/
    function getCJ(n, m) {
        return n*m;//把求出来的值 返回给调用者 让他随便处理
    }
    var cj = getCJ(1, 5);
    console.log(getCJ(1,5));//函数的返回值是什么 调用这个函数就相当于调用了什么
函数高级概念
在JS中实参的个数和形参的个数可以不一致
函数的返回值是什么,调用这个函数就相当于调用什么,如果没有返回值则为undefined
函数在执行完成return语句后便会退出函数,后面的代码不会执行
在JavaScript中不允许出现同名的函数,否则后面的会把前面的覆盖
两种定义方式
函数声明
[JavaScript] 纯文本查看 复制代码
    /**[/align]     * @author 传智播客
     */
    function fn1() {
        //函数体
    }
函数表达式
[JavaScript] 纯文本查看 复制代码
    /**
     * @author 传智播客
     */
    var fn2 = function () {
        //函数体
    };
匿名函数(没有名字的函数)
[JavaScript] 纯文本查看 复制代码
    /**
     * @author 传智播客
     */
    变量 = function () {
        //函数体
    }
自调用函数(定义后自己调用自己,只执行一次)
目前无法展示应用场景,知道概念和格式即可
[JavaScript] 纯文本查看 复制代码
    /**
     * @author 传智播客
     */
    (function() {
        //函数体
    })();
递归调用
程序调用自身的编程技巧称为递归,递归还必须要有结束条件,否则就是形成死递归。
[JavaScript] 纯文本查看 复制代码
    /**
     * @author 传智播客
     */
    //从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事,故事是:
    var i = 0;
    function story() {
        console.log("从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事,故事是:");
        i++;
        if (i < 10) {
            story();
        }
    }
    story();
回调函数
函数也是一种普通的数据类型
因此函数也可以被当作参数传递
被当作参数传递的函数叫做回调函数
[JavaScript] 纯文本查看 复制代码
    /**
     * @author 传智播客
     */
    function fn1(fn) {
        fn();
    }

    function callback() {
        console.log("用来被别人调用");
    }
    fn1(callback);
对象
初期我们甚至可以把他简单地理解为一个工具箱
键值对
键值对就是一种对应关系,通过键能够方便地找到值
键:值    key:value   k:v

对象的声明:
通过构造函数声明(更加通用)
var obj= new Object();
通过字面量声明(更加简便)
var obj= {};

对象具有属性和方法
属性 用来描述对象的特征 一般是名词 对应变量
方法 用来描述对象的行为 一般是动词 对应函数
属性
属性的定义:
对象.属性名 = 值
对象[属性名]=值
属性的调用:
对象.属性名
对象[属性名]
方法
方法的定义:
对象.方法名 = function(){ //函数体 }
方法的调用:
对象.方法名()
下面我们通过一个实例来让大家感受一下对象的写法
[JavaScript] 纯文本查看 复制代码
    /**
     * @author 传智播客
     */
    //学生对象 姓名 年龄 性别 分数 会打招呼
    var student = new Object();
    //属性
    student.name = "zs";
    student.age = 18;
    student.sex = 1;
    student.score = 100;
    //方法
    student.sayHi = function () {
        console.log("大家好,我是" + this.name);
    }

    console.log(student.name);//属性调用
    student.sayHi();//方法调用

对象字面量
[JavaScript] 纯文本查看 复制代码
    /**
     * @author 传智播客
     */
    var o = {
        name : "zs",
        age : 18,
        sayHi : function() {
            console.log(this.name);
        }
    };
遍历对象的两种方式
通过for可以对集合进行有序的遍历
通过forin可以对集合进行有序的遍历
for(var k in json) { 语句 }
k变量代表的是json中的各个属性(key)和 var i = 0中的i是一个意思 名字不同而已
具体应用:
[JavaScript] 纯文本查看 复制代码
    /**
     * @author 传智播客
     */
    var arr = [1, 2, 3];
    arr[0] = 20;//索引号就是键
    var obj = {};
    obj.age = 18;
    obj["name"] = "zs";
    for (var i = 1; i <= 10; i++) {
        obj["n" + i] = i;
    }
    for (var k in obj) {
        console.log(k);
        console.log(obj[k]);
    }
今天的讲解到此结束,如果小伙伴们还有什么不懂的可以在下方留言,或者去黑马程序员官网下载最新资料进行学习。http://www.itheima.com/


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马