javaScript基础总结---数据类型相关知识点

目录

一、数据类型相关知识点

1、基本(值)问题

2、对象(引用)类型

3、判断方法

4、相关问题引出 

5、补充知识点

一、数据类型相关知识点

1、基本(值)问题

  1. String: 任意字符串
  2. Number: 任意的数字
  3. boolean: true/false
  4. undefined: undefined
  5. null: null -->使用typeof时返回object
  6. symbol (ECMAScript 2016新增)。 -->Symbol 是 基本数据类型 的一种,Symbol 对象是 Symbol原始值的封装 (en-US) 。
  7. bigint, -->BigInt 是一种数字类型的数据,它可以表示任意精度格式的整数。

加上下方的[对象]类型,目前 javaScript 有八种数据类型

2、对象(引用)类型

  1. Object: 任意对象
  2. Function: 一种特别的对象(可以执行) --内部包含可运行的代码
  3. Array: 一种特别的对象(key为数值下标属性, 内部数据是有序的)

 3、判断方法

 ①*typeof*

typeof 操作符返回一个字符串,表示未经计算的操作数的类型。

  • 可以判断: undefined/ 数值 / 字符串 / 布尔值 / function

  • 不能判断: null与object object与array

  • 注意: 运行console.log(typeof undefined)时,得到的的也是一个字符串,同时为小写!!--> 'undefined'

  • 代码示例

     // typeof返回数据类型的字符串表达
      var a
      
      //注意:typeof返回的是字符串
      console.log(a, typeof a, typeof a==='undefined',a===undefined )  // undefined 'undefined' true true
      console.log(undefined === 'undefined') //false
      a = 4
      console.log(typeof a==='number') //true
      a = 'hongjilin'
      console.log(typeof a==='string') //true
      console.log(typeof a==='String') //false  -->注意,返回的类型为小写
      a = true
      console.log(typeof a==='boolean') //true
      a = null
      console.log(typeof a, a===null) // 'object'  true
     let b={}
      console.log(typeof b,typeof null, '-------') // 'object' 'object'  -->所以Typeof不能判断null与object

②*instanceof*(判断实例方法)

  • 专门判断对象的具体类型

  • instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。

  • 代码示例:

      var b1 = {
        b2: [1, 'abc', console.log],
     //可以简化成 b3:()=>()=> 'hongjilin'  -->高阶函数相关知识
        b3: function () {
          return  () =>{  return   'hongjilin'}
        }
      }
     /**使用instanceof进行对象判断*/
      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
    
      /**使用typeof进行对象中某属性的判断*/
     console.log(typeof b1.b2, typeof null) // 'object' 'object'  
      console.log(typeof b1.b3==='function') // true
      console.log(typeof b1.b2[2]==='function') //true
    
      /**调用对象与数组中某函数示例*/
      b1.b2[2]('调用console.log打印hongjilin')    //调用console.log打印hongjilin
      console.log(b1.b3()()) // hongjilin

③*===*

具体可以看 MDN的JavaScript中的相等性判断

可以判断: undefined, null

简而言之,在比较两件事情时,双等号将执行类型转换; 三等号将进行相同的比较,而不进行类型转换 (如果类型不同, 只是总会返回 false )

4、相关问题引出 

① undefined与null的区别?

  • undefined代表定义未赋值

  • null定义并赋值了, 只是值为null

  • 代码示例

      var a
      console.log(a)  // undefined
      a = null
      console.log(a) // null

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

  • 初始赋值, 表明将要赋值为对象,可以用做约定俗成的占位符

  • 结束前, 让对象成为垃圾对象(被垃圾回收器回收)

  • 代码示例

      //起始,可以用做约定俗成的占位符
      var b = null  // 初始赋值为null, 表明将要赋值为对象
      //确定对象就赋值
      b = ['atguigu', 12]
      //最后在不使用的时候,将其引用置空,就可以释放b这个对象占用的内存      ---当没有引用指向它的对象称为垃圾对象
      b = null // 让b指向的对象成为垃圾对象(被垃圾回收器回收)

③ 严格区别变量类型与数据类型?

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

5、补充知识点

 ①符串对比*><以及charCodeAt()*方法

  1. Javascript字符串在进行大于(小于)比较时,会根据第一个不同的字符的ascii值码进行比较,当数字(number)与字符串(string)进行比较大小时,会强制的将数字(number)转换成字符串(string)然后再进行比较
    (function(){
        console.log('13'>'3'); // 输出:false
        console.log(5>'6');  // 输出: false
        console.log('d'>'ABDC') // 输出: true
        console.log(19>'ssf') // 输出 false
        console.log('A'>'abcdef') // 输出 false
    })()
  2. 手动转换为ascii后相减,用正负数表示大小
    sorter={(a:string,b:string)=> a.charCodeAt()-b.charCodeAt()}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值