JavaScript高级篇之数据类型及判断

156 阅读2分钟

JS学习第n天,简单学习一下(本文是通过在某站上的相应资料学习后结合结合自身不足做出的简单总结)

一、分类及判断方式

1、js的数据类型分类

  • 基本(值)类型
String: 任意字符串
Number: 任意的数字
boolean: true/false
undefined: undefined
null: null
  • 对象(引用)类型
Object: 任意对象
Function: 一种特别的对象(可以执行)
Array: 一种特别的对象(数值下标, 内部数据是有序的)

2、js数据类型的判断方式

  • typeof:
    • 可以判断: undefined/ 数值 / 字符串 / 布尔值 / function
    • 不能判断: null与object object与array
  • instanceof ---- A instanceof B(A是否是B的实例):
    • 判断对象的具体类型
  • ===
    • 可以判断: undefined, null

3、各种判断例子,大家可以自行操作,自行判断

<script type="text/javascript">
        //1. 基本(值)类型
        // typeof返回数据类型的字符串表达
        var a
        console.log(a, typeof a, typeof a === 'undefined', a === undefined) // undefined 'undefined' true true
        console.log(undefined === 'undefined')
        a = 4
        console.log(typeof a === 'number')
        a = 'atguigu'
        console.log(typeof a === 'string')
        a = true
        console.log(typeof a === 'boolean')
        a = null
        console.log(typeof a, a === null) // 'object'

        console.log('-----------------')
       
        //2. 对象(引用)类型
        var b1 = {
            b2: [1, 'abc', console.log],
            b3: function() {
                console.log('b3')
                return function() {
                    return 'xfzhang'
                }
            }
        }

        console.log(b1 instanceof Object, b1 instanceof Array) // true  false
        console.log(b1.b2 instanceof Array, b1.b2 instanceof Object) // true true
        console.log(b1.b3 instanceof Function, b1.b3 instanceof Object) // true true

        console.log(typeof b1.b2, '-------') // 'object'

        console.log(typeof b1.b3 === 'function') // true

        console.log(typeof b1.b2[2] === 'function')
        b1.b2[2](4)
        console.log(b1.b3()())
</script>

二、面试时可能会出现一个的小问题----undefined与null的区别?

1、区别及例子

  • undefined代表定义未赋值
  • nulll定义并赋值了, 只是值为null
        var a
        console.log(a) // undefined
        a = null
        console.log(a) // null

2、什么时候给变量赋值为null呢?

  • 初始赋值, 表明将要赋值为对象
  • 结束前, 让对象成为垃圾对象(被垃圾回收器回收)
        //起始
        var b = null // 初始赋值为null, 表明将要赋值为对象
        //确定对象就赋值
        b = ['atguigu', 12]
        //最后
        b = null // 让b指向的对象成为垃圾对象(被垃圾回收器回收)

3、严格区别变量类型与数据类型?(其实现在大家一般是不怎么区分,了解即可)

  • 数据的类型
    • 基本类型
    • 对象类型
  • 变量的类型(变量内存值的类型)
    • 基本类型: 保存就是基本类型的数据
    • 引用类型: 保存的是地址值

本文也算是我这个即将毕业的软工菜狗潦草完成的第一篇,关于前端学习路上的技术文章。本人才疏学浅,文笔拙劣,如有不足之处,还请大家指正。

感谢点赞收藏