珠峰高级Web课程1(typeof检测及类型转换)

目录

课程主讲:

一、数据类型分类:

二、typeof数据类型检测的底层机制

三、Sybol 各种类型举例:

 四、typeof特点

五、类型转换

六、装箱和拆箱


课程主讲:

  • ECMA262数据类型的详细剖析:

    • 数据类型的标准定义

    • Symbol和BigInt的实践运用

    • typeof检测的底层机制

  • 数据类型间相互转换的权威解读:

    • Number/parseInt底层处理机制

    • “相等”比较中的类型转换

    • JS中的装箱和拆箱操作

  • 几道互联网大厂的经典面试题

一、数据类型分类:

  • 原始值类型「值类型/基本数据类型」

    • number 数字

    • string 字符串

    • boolean 布尔

    • null 空对象指针

    • undefined 未定义

    • symbol 唯一值

    • bigint 大数

  • 对象类型「引用数据类型」

    • 标准普通对象 object

    • 标准特殊对象 Array、RegExp、Date、Math、Error……

    • 非标准特殊对象 Number、String、Boolean……

    • 可调用/执行对象「函数」function

new Number 叫做 非标准特殊对象 !

二、typeof数据类型检测的底层机制

 Symbol 创建一个唯一值    不能被new

 使用场景:
   + 给对象设置“唯一值”的属性名
     + 字符串
     + Symbol类型
     + Map新的数据结构:可以允许属性名是对象(各种类型)
   + Symbol.asyncIterator/iterator/hasInstance/toPrimitive/toStringTag...是某些JS知识底层实现的机制
   + 在派发行为标识统一进行管理的时候,可以基于symbol类型的值,保证行为标识的唯一性
   + ...
 */
let a1 = Symbol('AA');
let a2 = Symbol('AA');
let a3 = a1;
console.log(a1 === a2); // false
console.log(a1 === a3); // true

三、Sybol 各种类型举例:

/* let key = Symbol('BB');
let obj = {
    n: 10,
    10: 100,
    true: 200,
    [Symbol('AA')]: 300,
    [Symbol('AA')]: 600,
    [key]: 400
};
console.log(obj[Symbol('AA')]); // undefined
console.log(obj[key]); // 400 */

/*


 BigInt 大数类型 
    Number.MAX_SAFE_INTEGER  9007199254740991 JS中的最大安全数
    Number.MIN_SAFE_INTEGER  -9007199254740991 最小安全数
    超过安全数后,进行运算或者访问,结果会不准确!!!

 解决方案:
   1. 服务器返回给客户端的大数,按照“字符串”格式返回!
   2. 客户端把其变为 BigInt ,然后按照BigInt进行运算
   3. 最后把运算后的BigInt转换为字符串,在传

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值