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


            目录
            相关文章
            |
            23天前
            |
            JavaScript 前端开发
            JavaScript遍历数组和对象常用方法总结
            以上代码展示了数组和对象的多种遍历方法。对于数组,使用了传统的 `for` 循环、`for...in` 和 ES6 的 `for...of` 进行遍历;对于对象,则通过 `for...in`、`Object.keys()`、`Object.values()` 和 `Object.entries()` 来获取键值对。`for...of` 循环适用于遍历具有迭代协议的数据结构,如数组、字符串等,而对象遍历则更多地依赖于 `Object` 方法来获取其属性集合。
            JavaScript遍历数组和对象常用方法总结
            |
            16天前
            |
            JavaScript
            ES6学习(9)js中的new实现
            ES6学习(9)js中的new实现
            |
            1月前
            |
            JavaScript 前端开发 索引
            JS遍历数组里数组下的对象,根据数组中对象的某些值,组合成新的数组对象
            这篇文章介绍了如何在JavaScript中遍历数组里数组下的对象,并根据对象的某些属性值组合成一个新的数组对象。主要内容包括使用ES6的`for...of`循环来遍历数组对象,然后根据需要提取对象中的属性值,并将它们放入新的对象中,最终形成一个新的对象数组以供使用。
            |
            1月前
            |
            JSON JavaScript 前端开发
            JavaScript实现字符串转json对象的方法
            JavaScript实现字符串转json对象的方法
            |
            18天前
            |
            JavaScript 前端开发
            JavaScript基础知识-枚举对象中的属性
            关于JavaScript基础知识中如何枚举对象属性的介绍。
            24 1
            JavaScript基础知识-枚举对象中的属性
            |
            9天前
            |
            JavaScript 前端开发
            JavaScript Boolean(布尔) 对象
            Boolean(布尔)对象用于将非布尔值转换为布尔值(true 或者 false)。
            26 8
            |
            24天前
            |
            JSON 前端开发 JavaScript
            |
            8天前
            |
            存储 JSON JavaScript
            学习node.js十三,文件的上传于下载
            学习node.js十三,文件的上传于下载
            |
            18天前
            |
            JavaScript 前端开发
            JavaScript基础知识-对象的基本操作
            关于JavaScript对象基本操作的基础知识文章。
            27 2
            |
            18天前
            |
            JavaScript 前端开发
            JavaScript基础知识-对象字面量
            文章介绍了JavaScript中对象字面量的创建和使用,包括基本语法、属性赋值以及如何在控制台输出对象属性。
            25 0
            JavaScript基础知识-对象字面量