JavaScript学习-对象

简介: 对象基础

对象

对象:一组无序的相关属性(名词)和方法(动词)的集合。

创建对象的三种方式

(1)利用字面量创建对象(只能创建一个对象)

    • 创建一个空的对象。
    var obj={};

    image.gif

      • 创建一个有内容的对象。例如:
      var obj={
       uname:'guidm',
       age:20,
       sex:'女', 
       helloWorld:function(){
       console.log('hello');
       }
      }

      image.gif

      (1)属性或方法采取键值对的形式

      (2)多个属性或者方法中间用逗号隔开

      (3)方法冒号后面跟的是一个匿名函数

        • 使用对象:

        (1)对象名.属性名

        console.log(obj.uname);

        image.gif

        (2)对象名['属性名']

        console.log(obj['age']);

        image.gif

          • 调用对象的方法:

          对象.方法名()

          obj.helloWorld( );

          image.gif

          变量和属性的相同点:都是用来存储数据的。

          变量和属性的不同点:变量单独声明并赋值,使用的时候直接写变量名,单独存在。

                                             属性在对象里面的不需要声明,使用时必须是对象.属性。

          函数和方法的相同点:都实现某种功能。

          函数和方法的不同点:函数是单独声明并且调用的函数名(),单独存在的。

                                             方法在对象里面调用的时候是:对象.方法。

          (2)利用new object创建对象(只能创建一个对象)

          var obj=new Object();
          obj.uname='guidm';
          obj.age='18';
          obj.sex='女';
          obj.sayHi=function(){
           console.log('hi');
          }

          image.gif

          (3)利用构造函数创建对象

          构造函数:利用函数的方法重复这些相同的代码,里面封装的不是普通代码而是对象。

          构造函数主要用来初始化对象,与new运算符一起使用,可以把一些公共的属性和方法抽取出来封装到这个函数里。

          function 构造函数名(){
           this.属性=值;
           this.方法=function(){ }
          }
           new 构造函数名(

          image.gif

          1、构造函数的名字首字母大写

          2、构造函数不需要return

          3、调用构造函数必须使用new

          例如:

          function Person(uname,age,sex){
           this.name=uname;
           this.age=age;
           this.sex=sex;
          }
           var people=new Person('gui',18,'女');

          image.gif

          new执行过程

            1. new构造函数可以在内存中创建一个空的对象。
            2. this会指向创建的空对象。
            3. 执行构造函数里面的代码,给这个空对象添加属性和方法。
            4. 返回这个对象。

            遍历对象(for…in)

            for(变量 in 对象){ }

            image.gif

            for example:

            var obj={
             name='guidm',
             age='18',
             sex='woman'
             }
             for(var k in obj){
             console.log(k);
            }

            image.gif

            使用for in里的变量常用k或key。

            JS内置对象

            JS的对象分为:自定义对象、内置对象、浏览器对象。

            内置对象:JS自带的一些对象,提供了一些常用的或者是最基本而必要的功能。

            常见的内置对象:Math、Date、Array、String

            Math对象

            不是一个构造函数,不需要用new来调用,直接使用里面的属性和方法。

            如:
            console.log(Math.PI);

            image.gif

            (1)Math.abs( ) 绝对值

            console.log(Math.abs(1));//1
            console.log(Math.abs(-1));//1
            console.log(Math.abs('-1'));//1 隐式转换,会把字符型转换为数字型

            image.gif

            (2)Math.floor( )向下取整 (不会四舍五入,小数点后面的直接不要)

            console.log(Math.floor(1.1));//1
            console.log(Math.floor(1.9));//1

            image.gif

            (3)Math.ceil( )向上取整 (有小数点的直接在个位+1,小数点后面不要)

            console.log(Math.ceil(1.1));//2
            console.log(Math.ceil(1.5));//2
            console.log(Math.ceil(1.9));//2

            image.gif

            (4)Math.round( )四舍五入(其他数字都四舍五入除了 .5比较特殊,他往大了取)

            console.log(Math.round(1.1));//1
            console.log(Math.round(1.5));//2
            console.log(Math.round(1.9));//2
            console.log(Math.round(-1.9));//-1
            console.log(Math.round(-1.5));//-1

            image.gif

            (5)随机函数random( )

            random( )返回一个随机的小数0=<x<1

            这个方法里面不跟参数。

            console.log(Math.random());

            image.gif


            案例时间:

            猜数字

            想要得到两个数之间的随机整数并包含这两个数:

            Math.floor(Math.random()*(max-min+1))+min

            function getRandom(min,max){
             return Math.floor(Math.random()*(max-min+1))+min;
            }
             var random=getRandom(1,10);
             while(true){
              var num=prompt('输入一个1~10之间的数');
              if(num>random){
                 alert('猜大了');
               }else if (num<random) {
                 alert('猜小了');
               }else {
                alert('猜对了');
                break;
              }
            }

            image.gif


            目录
            相关文章
            |
            3天前
            |
            Web App开发 JavaScript 前端开发
            如何确保 Math 对象的方法在不同的 JavaScript 环境中具有一致的精度?
            【10月更文挑战第29天】通过遵循标准和最佳实践、采用固定精度计算、进行全面的测试与验证、避免隐式类型转换以及持续关注和更新等方法,可以在很大程度上确保Math对象的方法在不同的JavaScript环境中具有一致的精度,从而提高代码的可靠性和可移植性。
            |
            3天前
            |
            JavaScript 前端开发 图形学
            JavaScript 中 Math 对象常用方法
            【10月更文挑战第29天】JavaScript中的Math对象提供了丰富多样的数学方法,涵盖了基本数学运算、幂运算、开方、随机数生成、极值获取以及三角函数等多个方面,为各种数学相关的计算和处理提供了强大的支持,是JavaScript编程中不可或缺的一部分。
            |
            27天前
            |
            JavaScript
            js学习--制作猜数字
            js学习--制作猜数字
            35 4
            js学习--制作猜数字
            |
            27天前
            |
            JavaScript
            webpack学习五:webpack的配置文件webpack.config.js分离,分离成开发环境配置文件和生产环境配置文件
            这篇文章介绍了如何将webpack的配置文件分离成开发环境和生产环境的配置文件,以提高打包效率。
            42 1
            webpack学习五:webpack的配置文件webpack.config.js分离,分离成开发环境配置文件和生产环境配置文件
            |
            27天前
            |
            JavaScript
            js学习--制作选项卡
            js学习--制作选项卡
            35 4
            |
            27天前
            |
            存储 JavaScript 前端开发
            JavaScript 对象的概念
            JavaScript 对象的概念
            34 4
            |
            26天前
            |
            缓存 JavaScript 前端开发
            JavaScript中数组、对象等循环遍历的常用方法介绍(二)
            JavaScript中数组、对象等循环遍历的常用方法介绍(二)
            27 1
            |
            26天前
            |
            存储 JavaScript 前端开发
            js中函数、方法、对象的区别
            js中函数、方法、对象的区别
            15 2
            |
            26天前
            |
            JavaScript
            js学习--商品列表商品详情
            js学习--商品列表商品详情
            15 2
            |
            26天前
            |
            JavaScript
            js学习--九宫格抽奖
            js学习--九宫格抽奖
            15 2