• javascript之一切都是对象


    在学习的过程中,我们常常能听到这样一句话:一切皆是对象。那么这句话该如何理解呢?
    首先,我们要明确对象的概念。要明白除了基本数据类型都是对象。

    typeof操作符是大家经常使用的,我们常用它来检测给定变量的数据类型。

     1 var a;
     2 console.log(typeof a); //undefined
     3 console.log(typeof true); //boolean
     4 console.log(typeof 'abc'); //string
     5 console.log(typeof 12); //number
     6 console.log(typeof null); //object,null被认为是一个空的对象引用
     7  
     8 function fn (){
     9   var a = 10;
    10 }
    11 console.log(typeof fn); //function
    12 console.log(typeof [1, 'aaa', false]); //object
    13 console.log(typeof {name: 'lisi',age: 18}); //object

    js中分两种数据类型
    基本数据类型:Null, Boolean, Number, String, Undefined, Symbol(ES6)
    引用数据类型:Object (在js中,除了基本数据类型都是对象,函数是对象,正则表达式也是对象)
    函数在js中是对象,不是一种数据类型。但是函数有一些特殊的属性,所以通过typeof来区分函数和其他对象是有必要的。

    判断一个变量是不是对象很简单,基本数据类型的判断用typeof, 引用数据类型的判断用instanceof.

    var b = 123;
    if (typeof b == 'number') {
        console.log("number类型");
    }
    var person = {
        name: 'zhangsan',
        age: 12
    };
    if(person instanceof Object){
        console.log('Object类型的对象');
    }

    对象是属性的集合,属性可以包括基本值,对象或者函数。

     1 //早期人们这样创建对象
     2 var person = new Object();
     3 person.name = 'lisi';
     4 person.age = 12;
     5 person.sayName = function (){
     6     alert(this.name);
     7 };
     8 //现在常用字面量语法
     9 var  person = {
    10     name: 'lisi',
    11     age: 12,
    12     sayName: function (){
    13         alert(this.name);
    14     }
    15 };

    在上例中,创建了一个名为person的对象,并为它添加了两个属性(name,age)和一个方法属性( sayName() )。由此可见,对象是属性的集合。
    还有一个问题,既然函数是对象,那么函数该怎样添加属性呢?

    //函数添加属性
    function fn (){
        var a = 10;
    }
    fn.a = '123';
    fn.b = function (){
        alert('bbb');
    }

    总之,要理解一切都是对象,要明确两个概念。第一,除了基本数据类型都是对象;第二,对象是属性的集合,属性包括基本值、对象和函数。

  • 相关阅读:
    mac os 基本命令
    一个程序员的郁闷吐槽
    域名那些事儿
    EventEmitter事件派发器
    Array类型的操作方法
    居中与垂直居中
    Web Storage —— 登录时记住密码
    字符串字符统计
    颜色字符串转换(正则)
    将字符串转换为驼峰格式
  • 原文地址:https://www.cnblogs.com/ly2019/p/10963121.html
Copyright © 2020-2023  润新知