IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 走进前端——JavaScript(2)_类型检测 -> 正文阅读

[JavaScript知识库]走进前端——JavaScript(2)_类型检测

前言

作者:迷途の羊 
在这里分享学习自己的经历,希望可以帮助到初学前端的旁友
成为一个更好的前端开发者
大学在读前端菜鸡  若文中有误,感谢指正

DAY6 JavaScript测定数据类型、操作符*

JavaScript测定数据类型

首先,我们介绍一下JavaScript的数据类型:JavaScript的数据类型分为两种,一种是基本数据类型,一种是引用数据类型
基本数据类型有:number,string,null,undefined,boolean,symbol;他们的值都是存放在中,因为他们大小是固定的,而且是经常都会被使用到的,创建方法一般来说为let x = ‘迷途の羊’,直接赋值即可,所以存放在栈中更容易的对他们进行存取操作。
引用数据类型有:object,math,function,string,number,regexp,date,array等均为引用数据类型,引用数据类型的大小是不固定的,创建方法一般来说为let x = new Object()//或其他,引用数据类型均存放在中,因为他们大小不固定,而且大多为持久化数据,它们的值都是对象
我们会发现,在基本数据类型和引用数据类型中均有string,number,由此可以探讨一下,引用数据类型和基本数据类型到底如何区分呢?下面介绍几个关键字:

  1. typeof
    typeof可以清晰的判别基本数据类型,示例如下:
        let a = 1,
            b = 'zy',
            c = true,
            d = undefined,
            e = null,
            f;
        console.log(typeof a)
        console.log(typeof b)
        console.log(typeof c)
        console.log(typeof d)
        console.log(typeof e)
        console.log(typeof f)

在这里插入图片描述由此可见,typeof可以判断基本数据类型,注意:null的typeof为object。还可以看出,当使用var或let但未赋值时,默认值为undefined

    let g = new Number(2)
    console.log(typeof g)

在这里插入图片描述可见,即便是给g赋值一个Number对象,也只能判断出它为object!

  1. instanceof

instanceof可以清楚的判断引用数据类型,示例如下:

        let a = new Object(),
            b = new String('zy'),
            c = new RegExp(/[0-9]/),
            d = new Number(1),
            e = new Date(),
            f = {};
        console.log(a instanceof Object)


        console.log(b instanceof Object)
        console.log(b instanceof String)

        console.log(c instanceof Object)
        console.log(c instanceof RegExp)

        console.log(d instanceof Object)
        console.log(d instanceof Number)

        console.log(e instanceof Object)
        console.log(e instanceof Date)

        console.log(f instanceof Object)

在这里插入图片描述
我们这个时候可以发现一些细节 : Number、String等判断它是否属于Object时均是true,可以发现,他们均是从Object继承下来的(其实instanceof是判断某个对象的原型链上是否有instanceof右边的对象名)。
然而,他无法确定基本数据类型,示例如下:

        let a = 1,
            b = 'zy'

        console.log(a instanceof Object)
        console.log(a instanceof Number)

        console.log(b instanceof Object)
        console.log(b instanceof String)

在这里插入图片描述可见,即便是检测对应的对象也无法检测出正确的数据类型。
综合可述,在检测基本数据类型和引用数据类型要区分使用不同的方法

  1. Object.prototype.toString.call()
    该方法可以精确判断出数据类型
        var toString = Object.prototype.toString;
        console.log(toString.call(1));                 
        console.log(toString.call(true));              
        console.log(toString.call('zy'));              
        console.log(toString.call([]));                
        console.log(toString.call({}));                
        console.log(toString.call(function () { }));   
        console.log(toString.call(undefined));         
        console.log(toString.call(null));   

在这里插入图片描述

JavaScript操作符

js的操作符和c语言等其他语言大同小异,有一元操作符,位操作符,布尔操作符,指数操作符,相等操作符等。
关于相等操作符的区别是最大的,在这里细讲一下相等操作符:
相等操作符有这几种(大致来说分为相等和全等):

    console.log(1 == '1')
    console.log(1 != '1')
    console.log(1 === '1')
    console.log(1 !== '1')           
    console.log(null == undefined)
    console.log(null === undefined)

在此大家可以停一下,思考一下上方代码的运行结果
.
.
.
分割处
.
.
.
结果如下
在这里插入图片描述

现在疑问就来了:
为什么1 == '1'结果会是true呢,因为在JavaScript中的 '=='会自动进行类型转换,也就是说他们在比较时进行类型转换
最后发现1 == 1,所以结果为true。
再次注意:null == undefined为true!

下期内容

JavaScript上下文作用域和垃圾回收

**章末语**
前端容易入门,但是需要持续不断的学习,更新自己的知识
千里之行,始于足下
喜欢文章的话可以动动小手点个赞和关注呀~~
长期更新......
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-14 01:52:39  更:2022-01-14 01:53:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 13:08:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码