美文网首页
Symbol 强制类型转换

Symbol 强制类型转换

作者: 弹指一挥间_e5a3 | 来源:发表于2020-12-29 09:51 被阅读0次

'类型转换'是'JS'语言重要的一部分,能够非常灵活地将一种'数据类型'转换为另一种。然而'Symbol类型'在进行转换时非常不灵活,因为其他类型缺乏与 Symbol 值的合理等价,尤其是 Symbol 无法被转换为字符串值或数值'。

String()转换

虽然说上面说不可以转换,其实只能转换成 Symbol(uid) 这种形式,想取到'描述内容'需要手动截取'描述内容'

let uid = Symbol.for("uid"), // 创建全局私有属性
    test = Symbol('呵呵哒'), // 创建局部私有属性
    desc = String(uid), // 转换成字符串
    testString = String(test) // 转换成字符串


console.log(desc)    // "Symbol(uid)"
console.log(testString)    // "Symbol(呵呵哒)"

强制类型转换

uid 与空字符串相连接,会首先要求把 uid 转换为一个字符串,而这会引发错误,从而阻止了转换行为。

let uid = Symbol.for("uid"),
    desc = uid + ""; // 引发错误!

相似地,你不能将 Symbol 转换为数值,对 Symbol 使用所有数学运算符都会引发错误,例如:

let uid = Symbol.for("uid"),
    sum = uid / 1; // 引发错误!

此例试图把 Symbol 除以 1 ,同样引发了错误。无论对 Symbol 使用哪种数学运算符都会导致错误,但使用

逻辑运算符则不会,因为 Symbol逻辑运算中会被认为等价于 true(就像 JS 中其他的非空值那样)。

相关文章

  • Symbol 强制类型转换

    '类型转换'是'JS'语言重要的一部分,能够非常灵活地将一种'数据类型'转换为另一种。然而'Symbol类型'在进...

  • 第三章 JavaScript中的数据间类型的转换

    数据的类型转换分为强制类型转换和非强制类型转换,强制类型转换也可以称为显示转换,非强制类型转换也可以称为隐式转换。...

  • js 实用小套路,你需要的开发小技巧

    强制类型转换 强制转换为Boolean 用 !! 强制转换为Number 用 + 强制转换为String 用 ""...

  • 前端知识点(10)

    强制类型转换 强制类型转换 - 指将一个数据类型强制转换为其他的数据类型 - 类型转换主要指,将其他的数据类型,转...

  • 十一、类型转换

    1、强制类型转换 C方式的强制类型转换 C方式强制类型转换存在的问题 过于粗暴:任意类型之间都可以进行转换,编译器...

  • 引用类型转换

    向上类型转换(自动类型转换),是小类型到大类型的转换向下类型转换(强制类型装换),是大类型到小类型的转换在强制类型...

  • 前端基础js篇

    1.强制类型转换和隐式类型转换 强制转换:parseInt()、parseFolat()、Number()、Str...

  • JavaScript的强制类型转换

    强制类型转换 将javascript的值从一种类型转换为另一种类型的值——>类型转换隐式类型转换——>强制类型转换...

  • 2-7 Go --- 类型转换

    Go 语言没有隐式类型转换,类型转换都是显示的强制转换。明明白白写清楚需要转换的类型。 强制类型转换只能在两个类型...

  • JavaScript类型转换

    在js中数据类型转换一般分为两种,即强制类型转换和隐式类型转换(利用js弱变量类型转换)。 强制类型转换 即通过使...

网友评论

      本文标题:Symbol 强制类型转换

      本文链接:https://www.haomeiwen.com/subject/atcfoktx.html