当前位置: 首页 > news >正文

【JS011】ES6的学习笔记之原始数据类型Symbol

日期:2021年8月23日
作者:Commas
注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^
(ง •_•)ง 积跬步以致千里,ES6的学习笔记
1.01365 = 37.7834;0.99365 = 0.0255
1.02365 = 1377.4083;0.98365 = 0.0006


文章目录

  • 一、Symbol的介绍与创建
  • 二、Symbol的特点
  • 三、浅谈7种原始数据类型


一、Symbol的介绍与创建

说明:Symbol是ES6引入的一种新的原始数据类型,主要是用来表示独一无二的值。它是JavaScript语言的第七种数据类型,有点类似于字符串的数据类型。
PS:Symbol函数栈不能用new命令,因为Symbol原始数据类型,不是对象

  • 语法一let symbolValue = Symbol(variable)
//(1)创建没有【标识】的Symbol
let s1 = Symbol();
console.log(s1);
//控制台输出:Symbol()//(2)创建有【标识】的Symbol,标识为“张三”
let s2 = Symbol("张三");
console.log(s2);
//控制台输出:Symbol(张三)
  • 语法二let symbolValue = Symbol.for(variable)
//(1)创建没有【标识】的Symbol
let s1 = Symbol.for();
console.log(s1);
//控制台输出:Symbol(undefined)let s3 = Symbol.for("");
console.log(s3);
//控制台输出:Symbol(undefined)//(2)创建有【标识】的Symbol,标识为“张三”
let s2 = Symbol.for("张三");
console.log(s2);
//控制台输出:Symbol(张三)

二、Symbol的特点

  1. Symbol的值是唯一的,可以用来解决命名冲突的问题;
//(1)创建没有【标识】的Symbol
//(1-1)创建Symbol
let s1 = Symbol();
console.log(s1);
//控制台输出:Symbol()//(1-2)相同Symbol
let s1_same = s1;
console.log(s1_same,s1===s1_same);
//控制台输出:Symbol() true//(1-3)不同Symbol
let s1_other = Symbol();
console.log(s1_other,s1===s1_other);
//控制台输出:Symbol() false//(2)创建有【标识】的Symbol,标识为“张三”
//(2-1)创建Symbol
let s2 = Symbol("张三");
console.log(s2);
//控制台输出:Symbol(张三)//(2-2)相同Symbol
let s2_same = s2;
console.log(s2_same,s2===s2_same);
//控制台输出:Symbol(张三) true//(2-3)不同Symbol
let s2_other = Symbol("张三");
console.log(s2_other,s2===s2_other);
//控制台输出:Symbol(张三) false

小结:Symbol("张三")!==Symbol("张三"),我们不深入讨论,仅仅从表现来看,虽然等号前后都是“张三”,但是Symbol的“张三”的值不一样,由此可以用来解决命名冲突的问题;

  1. Symbol的值不能与其他数据进行运算;
//(1)创建没有【标识】的Symbol
let s1 = Symbol();
// console.log(s1+'199');
//控制台输出:
//Uncaught TypeError: Cannot convert a Symbol value to a string//(2)创建有【标识】的Symbol,标识为“张三”
let s2 = Symbol("张三");
console.log(s2+'007');
//控制台输出:
//Uncaught TypeError: Cannot convert a Symbol value to a string
  1. Symbol定义的对象属性不能使用for...in...循环遍历,但是可以使用Reflect.ownkeys来获取对象的所有键名
const obj1 = {[Symbol("p1")]: "张三",p1: "p1",p2: 18,[Symbol("p2")]: function(s){console.log(s);},[Symbol("p2")]: function(s2){console.log(s2);}
};
console.log(Reflect.ownKeys(object1));
//控制台输出:
//(5) ["p1", "p2", Symbol(p1), Symbol(p2), Symbol(p2)]

可以借助另外一个对象来存储Symbol值,这样方便调用这个对象的属性方法,如下所示:

const oM={"name":Symbol("p1"),"s":Symbol("p2"),"s2":Symbol("p2"),
}const obj1 = {[oM.name]: "张三",p1: "p1",p2: 18,[oM.s]: function(s){console.log(s);},[oM.s2]: function(s2){console.log(s2);}
};
console.log(Reflect.ownKeys(obj1));
//控制台输出:(4) ["p1", "p2", Symbol(p1), Symbol(p2)]
console.log(obj1[oM.name],obj1.p2);
//控制台输出:张三 18

三、浅谈7种原始数据类型

序号数据类型typeof描述
1Number"number"数值
2Stringstring字符串
3Boolean"boolean"布尔类型,truefalse
4Object"object"对象(typeof:对象、数组或 null 返回 object
5null"object"null是 “nothing”,看做不存在的事物
6undefined"undefined"未定义,空值与undefined不是一回事
7Symbol"symbol"独立无二的“字符串”
let a = 1,b = "123",c = true,d = new Object(),e = [],f = null,g = undefined,h = Symbol(),i = function(a){}console.log(a,typeof(a));//1 "number"console.log(b,typeof(b));//123 stringconsole.log(c,typeof(c));//true "boolean"console.log(d,typeof(d));//{} "object"console.log(e,typeof(e));//[] "object"console.log(f,typeof(f));//null "object"console.log(g,typeof(g));//undefined "undefined"console.log(h,typeof(h));//Symbol() "symbol"console.log(i,typeof(i));//ƒ (a){} "function"

版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/119866942

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-35484.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

Redis集群的搭建和Redis的使用

Redis集群的搭建和Redis的使用 一.Redis的简介和用途 简介 Redis是一个高性能的key-value数据库。 Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行…...

51单片机入门之按键

对于单片机,单片机上电后默认为高电平,所以对于按键,按下去之后变为低电平(因为按键接地了),未按下去则为高电平,而因为单片机不仅可以改变引脚电平,也可以读取引脚电平,…...

刚换了Mac本这些快捷键你知道吗?

Mac中主要有四个修饰键,分别是Command,Control,Option和Shift。 这四个键分别有自己的图案,他们经常出现在Mac应用程序中的菜单栏里,方便你随时学习新的快捷键。 MAC 键盘快捷键符号图例 keyboard-shortcuts-symbol-l…...

秃头程序员必备Java面试手册!带你跳槽涨薪走上人生巅峰,迎娶白富美

都说程序员工资高、待遇好,改变无数程序员职业生涯的金九银十快来了,你的小目标是什么 30K、40K,还是 16 新的 20K?作为一名 Java 开发工程师,当能力可以满足公司业务需求时,拿到超预期的奖励 Offer 并不算…...

Coin Change(C++零钱兑换)

&#xff08;1&#xff09;dp&#xff0c;完全平方数类似 class Solution { public:int coinChange(vector<int>& coins, int amount) {int maxsamount1;int ncoins.size();vector<int> v(amount1,maxs);v[0]0;for(int i1;i<amount1;i) {for(int j0;j<n…...

国基北盛—云计算私有云iaas(2.4)平台搭建

1.基本环境配置详情&#xff1a; 2.虚拟机配置&#xff1a; Controller&#xff1a; 内存 6G 处理器4个 硬盘&#xff08;sda&#xff09;100G 网卡1&#xff08;仅主机192.168.100.10&#xff09; 网卡2&#xff08;NAT 192.168.200.10&#xff09; Compute&#xff1a; 内…...

pydub 安装 win10

在 anaconda 环境下&#xff0c;pip install pydub&#xff0c;检测是否安装成功出现错误&#xff1a; RuntimeWarning: Couldnt find ffmpeg or avconv - defaulting to ffmpeg, but may not work warn("Couldnt find ffmpeg or avconv - defaulting to ffmpeg, but m…...

rsync+sersync实现两台web服务器的实时同步

rsyncsersync实现两台web服务器的实时同步一.环境准备主服务器:从服务器:二.分别安装配置rsync,并测试手动免密备份这里大概讲一下rsync的工作方式和原理从服务器(备份端):主服务器(数据端)三.sersync的安装和配置主web端(数据端)从web服务器(备份端)附件--编辑监控脚本主服务器…...

C++中指针前还加是什么意思

C中指针前还加&是什么意思 区分使用位置&#xff0c;有两种可能&#xff1a; 1 在定义时使用&#xff0c;如 int *a; int * &p a; 这种是C中的引用&#xff0c;p本身不占用内存空间&#xff0c;只是a的一个别名&#xff0c;对p的访问完全等同于对a的访问。 2 在非定义…...

Android FileProvider 应用间共享媒体资源

先参考以下两个文档&#xff1a; 官网介绍&#xff1a;https://developer.android.google.cn/training/data-storage/use-cases TX 介绍&#xff1a;https://developers.weixin.qq.com/community/develop/doc/0004886026c1a8402d2a040ee5b401 然后基于以上的文档做一个例子介…...

CSS 基础教程:CSS 语法

CSS 语法 CSS 规则集&#xff08;rule-set&#xff09;由选择器和声明块组成&#xff1a; 选择器指向您需要设置样式的 HTML 元素。声明块包含一条或多条用分号分隔的声明。每条声明都包含一个 CSS 属性名称和一个值&#xff0c;以冒号分隔。多条 CSS 声明用分号分隔&#xff0…...

如何快速搭建自己的人脸识别系统

文章目录前言一、原理介绍1.mtcnnP-Net(Proposal Network)R-Net&#xff08;Refine Network&#xff09;O-Net (Output Network)2. facenetSVM(Support Vector Machine)二、人脸识别实现1.准备工作引入mtcnn下载facenet的权重文件&#xff1a;安装skleran2.训练和预测数据准备训…...

2021年5月程序员工资统计,属实惨不忍睹…你拖后腿了吗?

2021年5月全国招收程序员429056人。2021年5月全国程序员平均工资14926元&#xff0c;工资中位数13000元&#xff0c;其中96%的人的工资介于1750元到75000元。 城市 南京的工资已经连续两个月超过广州了&#xff0c;苏州也快赶上来了。 推荐算法工程师才是最赚钱的&#xff0c;…...

手写一个Vue Loading通过自定义api控制显示与关闭 记录

实现目标调用方法&#xff08;类似element的loading&#xff09;&#xff1a; this.$loading.show() 显示 this.$loading.hide()关闭 应用vue知识点&#xff1a;extend函数&#xff0c;use函数 简单分析&#xff0c;this.loading的实现通过use使用插件方式把loading的实现通…...

webpack学习2-常用loader

1. style-loader 作用&#xff1a;使得css样式写入html的head中 &#xff0c;缺点是js打包很大&#xff0c;常和css-loader配合使用 用法&#xff1a; {test: /\.css$/,use: [style-loader, css-loader]}2. css-loader 作用&#xff1a;css-loader会处理import / require&am…...

Python基础知识(四)

Python函数 01、创建函数 # 创建函数语法 def funaction_name(parameters):"""docstring"""statements(s)02、调用函数 name "Tom" #定义函数 def greet(name):"""This function greets tothe person passed in as…...

目前最简多模态transformer:ViLT

facebook的文章&#xff0c;一句话概括&#xff1a;图像patch和文本embedding concat在一起过transformer&#xff0c;做图像-文本匹配任务 相比之前的多模态transformer&#xff0c;创新点在用Vit的patch方案作为visual embedding而不是先过CNN提取特征&#xff0c;或者更繁琐…...

Java入门视频教程!BAT大厂Java面试真题锦集干货整理

一面 一面就做了一道算法题&#xff0c;要求两小时内完成&#xff0c;给了长度为N的有重复元素的数组&#xff0c;要求输出第10大的数。典型的TopK问题&#xff0c;快排算法搞定。 算法题要注意的是合法性校验、边界条件以及异常的处理。另外&#xff0c;如果要写测试用例&am…...

疯狂涨知识!作为一名程序员我不忘初心

性能优化专栏 1.Tomcat性能优化整理 2.JVM性能优化专题 3.Mysql性能优化整理 微服务架构面试专栏 1.SpringCloud面试整理 2.SpringBoot面试整理 3.Dubbo面试整理 并发编程高级面试专栏 开源框架面试题专栏 1.Spring面试整理 2.SpringMVC面试整理 3.MyBatis面试整理 分布式面…...

2021-08-24

#抖音云游戏&#xff0c;多品类注册 今年2月份&#xff0c;字节跳动游戏官网现正式上线&#xff0c;品牌名称为 “朝夕光年”&#xff0c;英文名为 NVERSEGAME。——嘉莱皓知识产权...

VMware 仅主机模式虚拟机无法 ping 通物理机的问题

前言 最近做了另外一个项目&#xff0c;用的数据库软件版本比较新&#xff0c;我本机装的旧的&#xff0c;因版本原因无法还原数据库&#xff0c;考虑到以最快速度部署开发环境&#xff0c;决定在虚拟机里安装新版数据库软件&#xff0c;使用 VMware 网络类型的仅主机模式&…...

Seurat学习:如何将自定义的聚类标签添加到Seurat对象当中

假如要添加k-means聚类标签&#xff1a; objectmeta.data$k.means.clusters <- k.means.result 绘制自定义标签的UMAP图&#xff1a; DimPlot(object , reduction‘umap’,group.by “k.means.clusters”) 同时显示自定义标签和UMAP图和Seurat中louvain聚类的UMAP图 plot…...

Spring框架的入门知识点

一、概念 1.一款轻量级的JAVAEE解决方案&#xff0c;众多优秀设计模式的组合&#xff1b; 2.作用&#xff08;目的&#xff09;&#xff1a;解耦合&#xff0c;目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。 3. Spring 的核心思想是&#xff1a; IOC:控制…...

【数据库系统概论(王珊)】第4章——数据库安全性

1、安全性级别 TCSEC将系统划分为四组&#xff08;ABCD&#xff09;七个等级&#xff0c;依次是D、C1、C2、B1、B2、B3、A1。 D级&#xff1a;是最低级别。将一切不符合更高标准的系统均归于D组。如DOS实操作系统中安全标准为D级的典型例子。 C1级&#xff1a;非…...

一句话让spring-boot帮我开启浏览器参数内容协商策略

一句话&#xff1a; 背后的原理&#xff1a; 当我们开启参数协商以后在RequestResponseBodyMethodProcessor里 有个方法 有个writeWithMessageConverter 这里包含消息的读和写操作 进入查看发现&#xff1a; 里面有个获取request的可以接受的类型 继续进入 调用了一个内容协…...

html标签字符,在thymeleaf中非转义显示

html标签字符&#xff0c;在thymeleaf中非转义显示 对于“非转义文本”使用 th:utext th:utext"${lastAnnouncement.content}"th:text和 th:utext效果对比&#xff1a; <p><strong>This is my textarea to be replaced with CKEditor 4.</strong&g…...

djanog导出csv文件

def xlsx_response(x_io):res HttpResponse()res["Content-Type"] "text/csv"res["Content-Disposition"] filename"aa.xlsx"res.write(x_io.getvalue())return resif query_params.get(export):values_list_order queryset.valu...

ubuntu系统中git多账户配置

目的 为了在同一台电脑上同时管理多个git账户且不产生冲突&#xff0c;需要进行如下配置。 配置过程 生成多个账号的私匙公匙 运行指令ssh-keygen -t rsa -C email&#xff0c;创建sshkey&#xff0c;email为自己的邮箱&#xff0c; 命名为id_rsa_1&#xff0c;密码设置为1…...

Docker容器出现exited(0)状态解决办法

Docker容器出现exited&#xff08;0&#xff09;状态解决办法一、情况1&#xff1a;docker run时出现二、情况2&#xff1a;重启服务器后出现1.具体实例2.永久解决3.注意事项一、情况1&#xff1a;docker run时出现 步骤一、docker rm 容器id 将容器删除 步骤二、docker rmi 镜…...

android - FlutterActivity MethodChannel和FlutterView

android - FlutterActivity MethodChannel和FlutterView 因此&#xff0c;大约4个月前&#xff0c;我编写了Flutter应用程序。现在&#xff0c;我想做一个小小的更改&#xff0c;但是我不能再编译应用程序了&#xff0c;因为GeneratedPluginRegistrant.registerWith(this)不再…...

dbc2000 注册机|dbc2000 注册码注册机下载

点击下载来源&#xff1a;dbc2000 注册机 dbc2000 注册机是同名源程序软件的注册机软件&#xff0c;该源程序软件是一款应用于数据库搭建以及数据写入的数据库架设工具&#xff0c;它拥有强大的数据写入功能&#xff0c;在作为应用程序使用时&#xff0c;它不仅可以充当数据属性…...

秋招面经第八弹:网易二面-数据开发工程师

秋招第八弹&#xff1a;网易二面-数据开发工程师 写在最前&#xff1a;秋招以来一直在冲&#xff0c;因为事情比较多&#xff0c;对于笔试面试一直没有复盘&#xff0c;现在靠仅存的记忆把面试的一些问题记录下来&#xff0c;尽可能记录出能回忆到的问题&#xff0c;但可能记的…...

安卓课程格子APP

https://download.csdn.net/download/weixin_57836618/73810452 功能演示&#xff1a; 查看所有课程 点击主页面空白处即可添加课程 添加课程之后查看课程 查看双周课程 查看单周课程 6.查看课程详情...

强化学习——格子世界

强化学习——格子世界 项目源码地址&#xff1a;https://gitee.com/infiniteStars/machine-learning-experiment 1. 实验内容 2. 实验代码 import numpy as np import matplotlib.pyplot as plt from matplotlib.table import Table from xml.dom.minidom import Document #手…...

华为机试 - 跳格子游戏

目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 地上共有N个格子&#xff0c;你需要跳完地上所有的格子&#xff0c;但是格子间是有强依赖关系的&#xff0c;跳完前一个格子后&#xff0c;后续的格子才会被开启&#xff0c;格子间的依赖关系由多组st…...

php 爬课程表信息,Ruby爬取教务系统生成课程表

我为什么要虐自己最近觉得课程格子广告越来越多&#xff0c;乱七八糟的东西越来越多&#xff0c;完全失去了一开始的存在价值&#xff0c;并且没有电脑端app&#xff0c;想查看课程必须拿出手机&#xff0c;而我使用电脑频率要比手机高&#xff0c;所以才有了折腾的动力。于是我…...

android 课程表 ui,UICollectionViewLayout实现课程表布局

因为项目中有课程表的相关模块&#xff0c;第一时间想到用UICollectionView。然而后期的需求越来越复杂&#xff0c;每个格子需要展示的内容越来越多&#xff0c;所以不得不寻找合适的解决方案。最后发现自定义UICollectionViewLayout可以实现我的需求。先放效果图&#xff1a;…...

Android自定义View课程表,Android 自定义View课程表表格

自己闲下来时间写的一个课表控件使用的自定义LinearLayout 里面View都是用代码实现的 最终效果如下图 写的可能有问题希望多多指点创建一个自定义LinearLayout 控件用来装载课程的信息和课程的周数 和节数大概的布局三这样的根据上面的看来觉得总体布局我分了两个 上面的星期是…...

java课程设计设计_java课程设计

1. 团队课程设计博客链接https://www.cnblogs.com/choco1ate/p/12172223.html2.本组课题及本人任务本组课题&#xff1a;泡泡堂(炸弹人)游戏本人任务&#xff1a;Box类(游戏地图中的每个方格)Bomb类(游戏过程中的)游戏玩家输赢信息的文件储存3.需求分析Box类&#xff1a;该类为…...

《课程格子》的一个笔试题目

题目如下&#xff0c;感觉很适合喜欢琢磨的程序员&#xff0c;也是考验你编码风格的时候。 Lets make a tower defense game&#xff08;塔防游戏):1. You have 1 tower, with H health and D dps(damage per second).2. There are n attackers, each with h_i health and d_i …...

Android仿照超级课程表 or 课程格子 一键提取课表功能(方正系统)

参考文章http://blog.csdn.net/sbsujjbcy ,本文仿照‘ 安卓弟 提供的android 项目实战——打造超级课程表一键提取课表功能文章&#xff0c;对他的代码进行了修改和补充&#xff0c;为什么要修改呢&#xff1f;原因是安卓弟的那个源码版本过于老旧&#xff0c;很多方法已经过…...

常用三极管引脚定义

给大家总结了常用封装的三极管的引脚定义 配套的视频讲解 常用三极管引脚定义...

三极管PNP和NPN对应引脚图及封装

...

识别三极管和场效应管引脚

同样按照上图方向摆正&#xff0c;中间一脚为C&#xff0c;左边为B&#xff0c;右边为E。 下图是场效应管...

NPN三极管和N沟道MOS管引脚定义

三极管&#xff08;NPN&#xff09;&#xff1a; SOT-23封装&#xff08;如下图&#xff09;&#xff0c;引脚定义1为基极(B) 2为发射极&#xff08;E&#xff09; 3为集电极(C) TO-92封装如下图&#xff09;&#xff0c;引脚定义1为 E极&#xff08;发射极&#xff09;&…...

三极管对应引脚图

一、三极管原理图&#xff1a; 二、插件三极管 三、贴片三极管...

【教学视频】数字万用表判断三极管管脚/极性

三极管按照极性分可以分成NPN型和PNP型&#xff0c;三极管有3个管脚&#xff0c;那么如何分辨它的极性和管脚&#xff1f; 本期视频跟着贝贝一起开启“数字万用表判断三极管的管脚和极性”之旅。 【教学视频】数字万用表判断三极管管脚/极性_哔哩哔哩_bilibili 【教学视频】数字…...

小型功率三极管S9013

S9013简介 S9013三极管是一种NPN型三极管&#xff0c;以硅为主要材料&#xff0c;属于小型的功率三极管&#xff0c;这种三极管很常见&#xff0c;有插件TO-92、贴片SOT-23两种封装&#xff0c;它有三个引脚&#xff0c;分别是基极b&#xff0c;集电极C&#xff0c;发射极e&…...

模电——三极管各个引脚之间的电压关系

NPN型与PNP型三极管对比与联系NPN型与PNP型三极管模型图NPN型三极管电压关系PNP型三极管电压关系应用NPN型与PNP型三极管模型图 当我们在电路中看到某个三极管时&#xff0c;我们首先要知道它是NPN型还是PNP型的三极管。从下图我们可以看到中间横线是基极B&#xff0c;另一斜线…...

三极管的基础知识(上)

一、半导体三极管 1.作用 主要用于放大电路、开关电路。 2.三极管的结构与类型 &#xff08;1&#xff09;结构&#xff1a;三极管有两个PN结&#xff08;集电结、发射结&#xff09;、三个区&#xff08;集电区、基区、发射区&#xff09;、三个电极&#xff08;集电极、基…...