JS数据类型检查、原型链、class类、一切即对象

53 阅读1分钟

数据类型检查

  检查数据类型

             基本数据类型  typeof

             复杂数据类型  instanceof

                语法:  

                      实例对象  instanceof 类型  

                       arr  instanceof Array  

                          =>返回 true | false

                特殊:           

                   Array  Date  ->  Object

                   继承



        数组类型

            Array.isArray(obj) 

                -> true | false 

image.png

原型链

 1. 显示原型和隐式原型

            prototype是构造函数都有的属性,称为显示原型。

            ___proto__是每个对象都有的属性,又称为隐式原型。



            但是,___proto__不是一个规范属性,只是部分浏览器实现了此属性,对应的标准属性是[[Prototype]]



           * 每个对象都有一个__proto__属性指向它的原型 * 

              原型对象也是一个对象, 原型对象也有__proto__指向它的原型

image.png \

image.png

一切即对象

   一切即对象

           javascript内置对象

               Array Object Date ....

           基本数据类型

              string -> String

              number ->  Number

              boolean -> Boolean



          函数也是对象

              数据类型 Function



             let f = new Function('console.log("hello")')

             f()

image.png

Es6新特性class类

  class类

           ES6新增的面向对象语法

           解决: 使用构造函数和原型定义对象属性方法问题更加简易

           语法:

              class 类名{

                  // 构造器 -> 私有

                  constructor(name,age){

                      //属性和方法

                      this.name = name

                      this.age = age

                  }

                  // 方法 -> 原型->公共

                  say(){

                      

                  }

              }



              let p = new 类名(name,age)

            

                

              ES6面向对象 class语法 

                更符合面向对象思维



                创建对象之前, 一般先定义对象的类型, 在类型中定义属性和方法

                   先类型再有对象



                 人类

                    name

                    age

                    say()

                 class 人类{

                     construtor(){

                         name

                        age

                     }

                     say(){



                     }

                 }



                 new 人类('张三')

                 new 人类('李四')



                 张三

                 李四



                 手机

                    华为h002手机

                    苹果x001手机

                    type

                    color

                    send()

                    call()



                class 手机类{

                    constructor(){

                         type

                         color

                    }

                    send()

                    call()

                }



                new 手机(华为h002手机)

                new 手机(苹果x001手机)



            java 面向对象编程语言

              class

image.png \

image.png