首页 > 编程语言 >javascript中的symbol

javascript中的symbol

时间:2024-07-28 23:51:18浏览次数:13  
标签:obj log symbol javascript console Symbol const

symbol的使用

功能

类似于一种标志唯一性的ID

理解唯一性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>


</head>
<body>
<script>

    let s1=Symbol()
    let s2=Symbol("hello world")
    let s3=Symbol("hello world")
    console.log(s1==s2)//false
    console.log(s2==s3)//false
</script>
</body>
</html>

用symbol作为对象的属性名(相当于私有化)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>


</head>
<body>
<script>

    const NAME = Symbol()
    const AGE = Symbol()
    let obj = {
        [NAME]: "PeiEn", //NAME:"PeiEn"是错误形式
        hobby: "basketball"
    }
    obj[AGE] = 18
    console.log(obj)

    //取值

    console.log(Object.keys(obj)) //枚举不到symbol  [hobby]

    for (let o in obj) {
        console.log(o)  //枚举不到symbol
    }
    console.log(Object.getOwnPropertyNames(obj))//枚举不到symbol

    console.log(JSON.stringify(obj));//枚举不到symbol

//-------------------------------------------------------------------
    //只能取到私有的
    console.log(Object.getOwnPropertySymbols(obj))

    //可以取到全部
    console.log(Reflect.ownKeys(obj))


</script>
</body>
</html>

用symbol代替一些常量

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>


</head>
<body>
<script>

   //如果定义一些枚举性的常量
   //尽量去使用一些symbol,可以更安全,也能更美观
   const s1=Symbol()
   const s2=Symbol()
   const s3=Symbol()
   
</script>
</body>
</html>

标签:obj,log,symbol,javascript,console,Symbol,const
From: https://www.cnblogs.com/breeze666/p/18329170

相关文章

  • javascript(一)
    一、基本语法1.位置(1)JavaScript脚本必须位于<script>与</script>之间(2)<script>标签可以位于<body>或者<head>部分中2.输出语句(1)window.alter()弹出警告框(2)document.write()可以将内容在网页中打印出来,同时也会将原有的内容覆盖(3)console.log()可以将内容在......
  • JavaScript图片轮播
    代码在文章最后面(含图片URL)实现功能按向左按钮图片显示上一张按向右按钮图片显示下一张每隔2000毫秒显示下一张图底部三个圆点显示当前的图片的编号实现流程初始化图片数组创建一个包含图片URL的数组,轮播时会通过这个数组来切换图片。创建当前索引变量 这个变量用来追踪......
  • django学习入门系列之第五点《javascript的条件语句和函数》
    文章目录5.6条件语句5.7函数往期回顾5.6条件语句if(){}elseif(){}5.7函数#python中函数定义的格式deffunc{函数的内容}#使用函数func()//javascript函数中的内容functionfunc(){函数的内容}//使用函数func()往......
  • 简单聊聊JavaScript 中的原型链、null 和 undefined 的区别
    1.原型链个人观点:原型链和逻辑判断里三段论有些类似,一个大前提、一个小前提、一个结论。比如,动物会吃肉,狗是动物,所以狗会吃肉。这也是继承的思想原型和构造函数JavaScript是基于原型的面向对象编程语言,每个对象都有一个内部链接到另一个对象(即原型)。这个机制被称为原型链。原......
  • 探索 IPython 中的 %%javascript 魔法命令:运行 JavaScript 代码的秘籍
    引言IPython是一个强大的交互式计算环境,它不仅支持Python语言,还通过各种魔法命令扩展了其功能。其中,%%javascript魔法命令是IPython扩展中一个非常有趣的特性,它允许用户在IPython环境中直接运行JavaScript代码。这对于需要在数据科学和科学计算中使用JavaScript......
  • 当我尝试使用 HTMLSession 渲染 JavaScript 时,出现错误
    我尝试使用HTMLSession渲染JavaScript,但是当我尝试时它给了我一个错误。>>>r.html.render()Futureexceptionwasneverretrievedfuture:<Futurefinishedexception=NetworkError('ProtocolerrorTarget.detachFromTarget:Targetclosed.')>pyppeteer.error......
  • vscode-react-javascript-snippets
    SnippetsSnippetsinfoEveryspaceinside {} and () meansthatthisispushedintonextline:) $ representeachstepafter tab.TypeScript hasowncomponentsandownsnippets.Usesearchorjusttype ts beforeeverycomponentsnippet.I.E. t......
  • JavaScript 运算符表格
    JavaScript算数运算符算数运算符用于对数字执行算数运算:运算符描述+加法-减法*乘法/除法%取模(余数)++递加--递减JavaScript赋值运算符赋值运算符向JavaScript变量赋值。运算符例子等同于=x=yx=y+=x+=yx=x+......
  • 深入理解 JavaScript 单例模式及其应用
    引言在JavaScript开发中,设计模式是解决特定问题的有效手段。单例模式(SingletonPattern)是其中一种常见且有用的模式。尽管网上有许多关于单例模式的解释和实现,本篇将从实际工作中的需求出发,探讨如何更好地理解和应用单例模式,以编写更复用、更高效的代码。什么是单例模式?单例模......
  • 3.5 JavaScript——常用库
    jQuery更加方便控制前端组件和属性使用方式在<head>元素中添加:<scriptsrc="https://cdn.acwing.com/static/jquery/js/jquery-3.3.1.min.js"></script>按jQuery官网提示下载选择器$(selector)类似于CSS选择器。例如:let$div=$('div');//通过jQuery获取div,$符号用......