javascript——对象字面量、函数、枚举

67 篇文章 0 订阅
49 篇文章 0 订阅

对象字面量

使用对象字面量,可以在构建对象时,直接指定对象的属性;

语法:{属性名:属性值;属性名:属性值;…}

属性名与属性值是以键值对的方式存在的;属性名与属性值之间用:连接,属性之间用逗号隔开

var obj = {
            name: "张三",
            age: 28,
    //最后一个属性后面没有属性了,就不用加逗号了,不然报错很难找
            sex: "男"
};
console.log(obj);

对象字面量的属性名可以加引号也可以不加,建议不加;如果要使用一些特殊的名字,则必须加引号

函数

函数也是一个对象,函数可以保存一些代码在需要的时候可以直接调用

创建一个函数对象

// 创建一个函数对象
        // 可以将要执行的代码以字符串的形式传递给构造函数
        var fn = new Function("console.log('hello,hi');");
        /* 
            封装到函数中的代码不会立即执行;函数中的代码会在函数调用的时候执行;
            调用函数的语法:函数对象()
            在调用函数时,函数中封装的代码会按照顺序执行
        */

使用函数声明来创建一个函数

语法:function fn() {}

<script>
        // 括号里面的a,b可写可不写
        function fn(a, b) {
            console.log('hello');
            console.log(a);
            console.log(b);
        }
//调用
        fn(4, 5);
    </script>

使用函数表达式来创建一个作对象

var 函数名=function([参数1,参数2,参3]){执行}

参数列表中的参数可以省略不写,

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 定义一个用来求两个数之和的函数
        // 在括号中指定一个或多个形参(形式参数),多个形式参数之间用逗号隔开
        // 声明形参就是在函数内部声明了对应的变量
        function getsun(a, b) {
            var num = a + b;
            console.log(num);
        };
        // 在调用函数时,可以在()中指定实参(实际参数),实参将会赋值给函数中对应的形参,函数的实参可以是任意的数据类型
        // 调用函数时,解析器不会解析实参的类型
        // 注意:是否有可能会接受到非法的参数,如果有可能则需要对参数进行类型的检查,
        // 在调用函数时,解析器不会检查实参的数量,多余实参不会被赋值,
        // 如果实参的数量少于形参的数量,则没有对应的形参将是undefined
//实参可以是对象,也可以是一个函数
        getsun(4, 5);
    </script>
</head>

<body>

</body>

</html>

函数的返回值

语法:return 值(可以使任意类型的值)

return 后的值将会作为函数的执行结果返回,可以定义一个变量来接收该结果,return之后就直接结束此次函数的执行,return之后的语句都不会执行

返回值可以是任意类型,可以是一个对象也可以是一个函数

如果return后面没有值就相当于返回一个undefined,如果函数中不写return,则也会返回undefined

<script>
        function sum(a, b, c) {
            var d = a + b + c;
            return d;
        }
        var res = sum(a, b, c);
        alert(res);
    </script>
// 定义一个函数,判断一个数字是否是偶数,如果是返回true,否则返回false
        /* function isOu(num) {
            if (num % 2 == 0) {
                return true
            } else {
                return false
            }
        } */
        function isOu(num) {
            return num % 2 == 0;
        }
        var res = isOu(10);
        alert(res);
<script>
        // 定义一个函数,可以根据半径计算一个圆的面积,并返回计算结果
        function fn(r) {
            var num = 3.14 * r * r;
            return num;
        }
        var res = fn(6);
        alert(res);
    </script>

当参数过多时,可以将参数封装到一个对象中,然后通过对象传递

<script>
        // 创建一个函数,可以在控制台中输出一个人的信息:名字,年龄,性别,来自哪里
        /* function sayHi(name, age, gender, from) {
            var str = "我叫" + name + ",我今年" + age + "岁了,我是一个" + gender + "生,我来自" + from;
            return str;
        }
        var res = sayHi('zs', 24, '男', '中国'); */
        var obj = {
            name: 'zs',
            age: 24,
            gender: '男',
            from: '中国'
        }

        function sayHi(obj) {
            var str = "我叫" + obj.name + ",我今年" + obj.age + "岁了,我是一个" + obj.gender + "生,我来自" + obj.from;
            return str;
        }
        var res = sayHi(obj);

        function fun(a) {
            console.log(a);
        };
        // fun(sayHi);
        fun(sayHi(obj));
        /* 
        fun(sayHi):括号里的sayHi没有被调用,所以fun的参数是使用sayHi函数对象,而不是返回值
        fun(sayHi(obj)):括号里面的sayHi后面加了括号有了参数,说明已经被调用了。所以fun函数的参数是使用sayHi的返回值
        */
        alert(res);
    </script>
<script>
        function fun() {
            alert("函数开始执行了");
            for (let i = 0; i < 5; i++) {
                if (i == 2) {
                    // 退出当前循环
                    // break; //只输出0,1,
                    // 跳过本次循环,继续下个循环
                    // continue; //输出0,1,3,4,
                    // return直接结束整个函数
                    return; //后面的alert执行不了了
                }
                console.log(i);
            }
            alert("函数结束执行了");
        }
        fun();

        function fun1() {
            function fun2() {
                alert('我是函数fun1里面的fun2函数');
            }
            // fun2();
            return fun2;
        }
        fun1()();
    </script>

立即执行函数

<script>
        // 函数对象()
        // 立即执行函数:该函数定义完之后,。立即被执行的函数;立即执行函数只会执行一次。
        (function() {
            alert("我是一个立即执行的匿名函数")
        })();
        // 传参
        (function(a, b) {
            console.log(a);
            console.log(b);
        })(123, 456);
    </script>
函数和方法
<script>
        // 创建对象
        var obj = new Object();
        // 向对象添加属性
        obj.name = 'zs';
        obj.age = 22;
        // 对象的属性值可以是任何的数据类型,也可以是个函数
        // 如果一个函数作为一个对象的属性保存,那么我们可以称这个函数是这个对象的方法
        // 调用函数就是调用对象的方法(method)
        obj.sayHi = function() {
            console.log('我叫' + obj.name);
        }

        function fn() {
            console.log(obj.name);
        }
        // 调用方法
        obj.sayHi();
        // 调用函数
        fn();
        // 只是名称上有区别,其他没有区别
    </script>

枚举属性(for…in…)

<script>
        var obj = {
            name: 'zs',
            age: 22,
            gender: '男',
            address: '中国'
        };
        // 枚举对象中的属性
        // for...in 语句
        /* 
        语法:
        for(var n in obj){

        }
        in后面的对象有多少个属性,就会循环多少次;每次执行一次,就会将对象中的一个属性名赋值给变量
        */
        for (const i in obj) {
            console.log("属性名" + i); //name\age\gender\address
            //获取obj中的属性值,[]中可以放变量
            console.log(obj[n]);
        }
    </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值