简单对象 数据类型 内存结构图 函数方式创建简单对象 及案例

本文介绍了JavaScript中的简单对象,包括数据类型、内存结构图和两种创建对象的方式:字面量和构造函数。深入讲解了基本数据类型与复杂数据类型的存储区别,并通过实例展示了如何创建和访问对象的属性与方法。同时,提供了两个案例,分别是用字面量方式创建学生对象和判断水仙花数的逻辑。

简单对象

       理解: 1.  现实生活

              对象

                => 具体一个事物

                      张三        李四

                      x100手机   pm001手机

                     区别:

                       行为  特征

        2.   软件世界

              => 创建一个对象

                   特征: 属性

                   行为: 方法

         

           

             

        3.    创建一个对象

            var obj = {

                属性名1:属性值1,

                属性名2:属性值2,

                  ...

                方法名1:function(){

                },

                方法名2:function(){

                }

            }

        4. 示例: 创建一个姓名为张三,年龄是20岁,能说话的人对象.

        5. 访问对象的属性和方法

             点语句访问

             对象名.属性名

             对象名.方法名()

/*
          对象: 
            属性和方法
              属性存在形式:
               => 属性名:属性值 多个属性之间用逗分割
              方法存在
                =>方法名:function(){}
       */
        /*    
            创建一个姓名为张三,年龄是20岁,能说话的人对象.
              属性:  姓名 name  年龄 age
              方法:   说话 say
        */
        var obj = {
            name: '张三',
            age: 20,
            say: function () {
                console.log('人能说话');
                console.log('哈哈');
            }
        }
        // var name = obj.name 
        console.log('name: ',obj.name) 
        console.log('age: ',obj.age) 

        obj.say()

 

简单对象的数据类型

数据类型

           两大类:

             基本数据类型

                 number  string    boolean  undefined  null    

                  100     'hello'   true

             复杂数据类型(对象类型|引用类型)

                 Object              Array  ...

                 简单对象类型          数组

                 

                 {name:'小明'}

 var obj = {} //空对象

        //字面量方式创建简单对象
        var obj = {
            name: '小明',
            age: 23,
            say: function () {
                //封装任意代码
                console.log('说话')
            }
        }

        //obj称为对象名或者称为引用变量
        // obj数据类型 复杂数据类型Object 

 内存结构图

           基本数据类型变量 内存存储形式

                电脑: 内存

                     => 程序加载到内存中执行

           1. 内存两个区域

                => 栈区域

                => 堆区域

               

           2. - 基本数据类型变量存储在栈区域

              - 引用变量存储在栈区域

              - 对象存储在堆区域  

 var obj = {
            name:'小明',
            age: 22
        }

        console.log('姓名: '+obj.name, ' 年龄:'+obj.age)
        // 改变对象属性值小明为大明
        obj.name = '大明'
        console.log('改变值之后 姓名: '+obj.name, ' 年龄:'+obj.age)

构造函数方式创建简单对象

语法:  

           var obj = {} //字面量方式

           var obj = new Object() // 通过new语句调用构造函数方式创建对象

           obj.name = '小明'

           obj.age = 22

           obj.say = function(){

               //代码

           }

 

// var obj = {
        //     name: '小明',
        //     age: 22,
        //     say: function () {
        //         console.log('说话')
        //     }
        // }

        var obj = new Object()
        obj.name = '小明' //将小明赋值给对象obj的name属性; 
        obj.age = 22
        obj.say = function () {
            console.log('说话')
        }

        console.log(obj)
        obj.say()

案例一

创建一个名为student的学生对象,有属性学号num,性别sex,班级grade, 成绩score, 姓名name

        分别用字面量方式创建.

        要求打印显示学生信息到页面

// 创建简单对象的方式: 字面量方式创建对象
        var student = {
            num: 2102039120,
            sex: '男',
            grade: 'h52112班',
            score: 98,
            name: '小明',
        }
        // 访问属性
        document.write('姓名: ' + student.name)
        document.write("<br>")
        document.write('学号:' + student.num)
        document.write("<br>")
        document.write('性别 :' + student.sex)
        document.write("<br>")
        document.write('班级 : ' + student.grade)
        document.write("<br>")
        document.write('成绩 :', student.score)

        document.write('姓名: ' + student.name + '成绩 :', student.score)

        document.write(student) // [object object]
        console.log(student)

案例二

水仙花数:  三位数并且个、十、百位数立方和等于它本身

            比如: 371 = 3*3*3+ 7*7*7 + 1*1*1

                  371/100 = 3

                  371%100 == 71

                  71/10

            思路: 判断321是否是水仙花数?

            分析

            水仙花数

            => 三位数

                100 - 999

            => 个十百位立方和等它自身

function test() {
            var num = 273
            var b = parseInt(num / 100) //百位
            var s = parseInt(num % 100 / 10) //十位
            var g = num % 10
            console.log('b ', b, ' s', s, ' g ', g);


        }

        function test1(){
            var b = 3 
            var s = 7 
            var g = 1 
            var num = String(b) + String(s) + String(g)
            console.log('num ',num)
        }
        // test1()
        /*
         *  水仙花数:  三位数并且个、十、百位数立方和等于它本身
         */
        function flow() {
            for (var num = 100; num <= 999; num++) {
                var b = parseInt(num / 100) //百位
                var s = parseInt(num % 100 / 10) //十位
                var g = num % 10

                if (b * b * b + s * s * s + g * g * g == num) {
                    console.log(num)
                }
            }
        }
        // flow()
        // 100  900
        function flow1() {
            for (var b = 1; b <= 9; b++) {
                for (var s = 0; s <= 9; s++) {
                    for (var g = 0; g <= 9; g++) {
                        // var num = b * 100 + s * 10 + g
                        
                        var num = String(b) + String(s) + String(g)

                        if (b * b * b + s * s * s + g * g * g == num) {
                            console.log(num)
                        }
                    }
                }
            }
        }

        flow1()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值