js数据类型 判断

1. js数据类型(两种数据类型)

  • 基本数据类型:null undefined number boolean symbol string
  • 引用数据类型: array object

null: 空对象

document.getElementById('')
//娶不到的时候返回 null

undefined: 未定义

//1. 定义一个对象 但是没有赋值
//2.访问数组不存的下标(数组越界)
//3.访问对象不存在的属性
//4.一个没有返回值的函数 默认返回 undefined

2.判断数据类型

typeof 

typeof 'q'
"string"
typeof 123
"number"
typeof true
"boolean"
typeof null
"object"
typeof undefined
"undefined"
typeof function() {}
"function"
typeof [1,2]
"object"
typeof {a:'1'}
"object"

判断不了数组和对象

// 方案一
[].constructor === Array
// true
a = {a:'1'}
{a: "1"}
a.constructor === Object
// true

 

//方案二
arr instanceof Array
//判断arr是否是Array实例化对象
//方案三  有兼容性问题 ie8以上
Array.isArray(arr)

对象

var obj = {
name: '',
function = function(){}
}

 

//类 就是具有相同属性和方法的对象集合

function Person(name) {
        this.name = name
        this.eat = function() {} //一般方法不写在这里
                                          //因为每次实例化一个对象
                                         //等于新new Function一个函数
    }                                

定义一个类 属性写在构造函数中 方法写在原型上

因为:构造函数为私有变量和函数 会重新声明  要是我们需要公共函数(执行相同效果的函数)

原型上的变量和函数 为共有 且不能传参制作私有变量。引用类型变化会显示在所有实例 

对象是属于存在堆内存中

堆内存 栈内存

基本数据类型存在栈内存

引用数据类型存在堆内存

//所以引用类型的变量 声明的时候 其实是指向堆内存中的一个地址

所以传参的时候,引用类型的任何一个地方的改变会影响全局 

继承

posted @ 2020-02-26 14:41  容忍君  阅读(332)  评论(0)    收藏  举报