JS数据类型的分类

140 阅读3分钟

思维导图在第一章,有需要的小伙伴可以去看下。有任何疑问也可以随时练习我。

对象

对象:(是一个具体的事物)

对象是由属性和方法组成的。

属性:事物的特征, 在对象中用属性来表示(常用名词)

方法:事物的行为,在对象中用方法来表示(常用动词)

对象和数组的异同点

  • 相同点:都可以存储多个数据

  • 不同点: 存储相同的类型数据

    数组: 有序存储,下标从考试递增

    对象:无需存储, 属相名和属性值一一对应(键值对)

对象声明:

  1. 利用*字面量*****创建对象

         var obj = {
                     uname: '张三疯',
                     age: 18,
                     sex: '男',
                     sayHi: function () {
                         console.log('hi~');
                     }
                     }
    
  2. 利用new object创建对象

         var obj = new Object(); //创建了一个空的对象
             obj.uname = '张三疯';
             obj.age = 18;
             obj.sex = '男';
             obj.sayHi = function () {
                 console.log('hi~');
             }
    
  3. 利用构造函数创建对象

         function Wzry(name, type, blood) {
                 this.name = name;
                 this.type = type;
                 this.blood = blood;
                 this.attack = function (Att) {
                     console.log(Att);
                 }
             }
             var lp = new Wzry('廉颇', '力量型', '500血量');
             console.log(lp);
             lp.attack('攻击:近战');
             var hy = new Wzry('后裔', '射手型', '100血量');
             console.log(hy);
             hy.attack('攻击:远程');
    

对象查询

  1. 查对象属性特点:

    • 属性名 存在 则显示获取属性值
    • 属性名 不存在 则获取的是undefined
  2. 对象取值有两种语法:

    • 点语法 对象名.属性名(obj.name)
    • [ ]语法 对象名['属性名'] 对象名[变量名]

修改对象属性

     let obj = {
             name: '王五',
             age: 10,
             sex: '男'
         }
     obj.name = '张三' //修改对象属性
  • 对象名.属性名 = 值
  • 对象名['属性名'] = 值

新增属性(和改是一样的语法

(1)如果已经存在的属性赋值,则是修改

(2)如果不存在的属性赋值,则是新增

删除对象属性

delete 对象性.属性名

     let obj = {
             name: '王五',
             age: 10,
             sex: '男'
         }
 ​
        delete obj.name  //删除name属性

案例:

     let obj = {
             name: '王五',
             age: 10,
             sex: '男'
         }
 ​
         obj.names = '张三' //新增names属性
         delete obj.name //删除name属性
         obj.sex = '女' //修改对象里面的sex属性值
         console.log(obj)

遍历对象(查询对象所有属性)

     let obj = {
       name: '王五',
       age: 10,
       sex: '男'
     }
     for (let key in obj) {      //循环--遍历obj对象
       console.log(obj[key])
     }

内置对象

对象

对象分为3种:自定义对象、内置对象、浏览器对象

内置对象

内置对象:是指js种自带的一些对象,并提供了一些常用的最基本的必要的功能(属性和方法)

优点:帮助我们快速开发。

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

数据类型分类

  1. 值类型(简单的数据类型String、boolean、 number、undefined、null)栈中存储数据,赋值拷贝的是数据,修改拷贝后对原数据没有什么影响
  1. 引用类型(复杂数据类型array、function、object)栈中存储地址,堆里面存放数据,赋值拷贝的是地址,修改拷贝后的数据对原数据有影响

数组转换为字符串

方法名说明返回值
toString()把数组转换成字符串,逗号分隔每一项返回一个字符串
join('分隔符')方法用于把数组中的所有元素转换为一个字符串返回一个字符串
 // 数组转换为字符串
         // 1.将toStrong()将为我们的数组转换为字符串
         var arr = [1 , 2 ,3];
         console.log(arr.toString());    // 1,2,3
         // 2.join(分隔符)
         var arr1 = ['green' , 'blue' , 'pink'];
         console.log(arr1.join());    //green,blue,pink
         console.log(arr1.join('-'));    //green-blue-pink
         console.log(arr1.join('&'));    //green&blue&pink

根据位置返回字符

方法名说明使用
charAt(index)返回指定位置的字符(index 字符串的索引号)str.charAt(0)
charCodeAt(index)获取指定位置处字符的ASCI码(index索引号)str.charCodeAt(0)
str[index]获取指定位置处字符HTML5,IE8支持和charAt()等效