ES6新数据类型 Symbol

从零开始:如何用Python手绘波特图并分析电路稳定性 本文详细介绍了如何使用Python绘制波特图并分析电路稳定性,涵盖从基础理论到实际应用的完整流程。通过NumPy和Matplotlib实现频域分析,包括RC低通滤波器和RLC带通滤波器的案例,以及相位裕度计算等高级技巧,为电子工程师提供了一套高效的电路分析解决方案。 阅读详情

ES6的出现,我个人认为,对js的发展会起到很大的作用。对前端的一些功能实现也起到了很大帮助。

我们都知道es5 为我们提供了六种数据类型。分别是: 对象(Object)、数字类型(Number) 、布尔类型(Boolean)、字符串类型(String)、空类型(Null)、未定义类型(Undefind)
E6又为我们增加了一种类型 symbol 类型,他表示独一无二的值。这样下来js 就有七种数据类型了。

一、symbol 用法

1.symbol 的用法很简单:

 let a = Symbol();       
 console.log(a); // symbol()
 console.log(typeof a) // 它的类型就是 symbol

 // 我们也可以为symbol 类型加一些参数(做一些标记号) 用来区分
let b = Symbol("b")
console.log(b)  // symbol(b)

因为symbol类型 表示的是独一无二的值,所以
即便变量都是symbol类型,那么也不相等。

 var a = Symbol();
 var b = Symbol();  
 console.log(a == b)   // fales

2.symbol数据注意点

① symbol 数据类型不能够转换为数值类型,否则会报错
② symbol 数据类型不能用new 操作符去声明,因为它本身是一个原始值,而不是对象
③ symbol 数据类型不能够和字符串进行拼接,否则会报错
④ symbol 数据类型可以转化为布尔类型

二、Symbol 的用途

ES6 新增一个这个数据类型有什么用处呢。首先我们它解决了我们在定义一个对象时,不小心把键改写或覆盖的问题。

1.作为属性名

var obj = {
      username:"jhon",
      age:23,
      sex:"man",
      username:"king"
  }
  console.log(obj.name) // king

上边 由于name 又一次出行将之前的name 值给覆盖了,你可能认为这种错误基本不能出现,但是如果但你处理的数据比较多时,这种错误出现的概率还是很大的。
我们这样写:

var username = Symbol();
var obj = {
     [username]: 'Jhone',
     age:23,
     sex:"man",
 }

 console.log(obj[username]) // hello

上边需要注意的是:
①usename 定义为symbol 类型后,如果在出现 username 的键 将会报错。
② 因为username 是变量,变量作为属性要用[] 中括号,如果使用. 默认会将属性变为字符串。
重点内容
③ 上边的 username 如果变成 name = Symbol() 将会报错Cannot convert a Symbol value to a string 不能将一个符号值转换为字符串 ,这里报这个错误我不是很明白,name 应该不会是关键词。如果有知道的,欢迎留言。

给对象填属相我们还可以用defineProperty()

var obj={};
Object.defineProperty(obj,username,{value:"Jhone"});

2.消除魔术变量
魔术字符串指的是,在代码之中多次出现、与代码形成强耦合的某一个具体的字符串或者数值。风格良好的代码,我们应该尽量消除魔术字符串。(这里我引用的是阮一峰的例子)

function getArea(shape, options) {
  var area = 0;

  switch (shape) {
    case 'Triangle': // 魔术字符串
      console.log(1);
      break;
    /* ... more code ... */
  }

  return area;
}

getArea('Triangle', { width: 100, height: 100 }); // 魔术字符串

上面的代码,字符串triangle 就是一个魔术字符串,它多次出现,与代码形成“强耦合”,不利于将来的修改和维护。

常用的消除魔术字符串的方法,就是把它写成一个变量:

var shapeType = {
  triangle: 'Triangle'
};

function getArea(shape, options) {
  var area = 0;
  switch (shape) {
    case shapeType.triangle:
      console.log(1);
      break;
  }
  return area;
}

getArea(shapeType.triangle, { width: 100, height: 100 });

上面代码中,我们把Triangle写成shapeType对象的triangle属性,这样就消除了强耦合。
如果仔细分析,可以发现shapeType.triangle等于哪个值并不重要,只要确保不会跟其他shapeType属性的值冲突即可。因此,这里就很适合改用 Symbol 值。

const shapeType = {
  triangle: Symbol()
};

上面代码中,除了将shapeType.triangle的值设为一个Symbol,其他地方都不用修改。

三、symbol 的一些方法

1.当symbol 作为属性名时,改属性不会被for....in、 for...of 遍历, 也不会被Object.keys()、 Object.getOwnPropertyNmaes()、JSON.stringify() 返回

但是它也不是一个私有属性,它有以下方法:
① Object.getOwnPropertySymbols() 方法返回一个数组,成员是当前对象的所有用作属性名的Symbol 值。

 var a = Symbol("a");
   var b = Symbol("b");
 var c = Symbol("c");
   obj = {
     [a]:"a",
     [b]:'b',
     [c]:'c'
   }

 console.log( Object.getOwnPropertySymbols(obj)) //[Symbol(a), Symbol(b), Symbol(c)]

② Symbol.for() 方法

有时候,我们希望重新使用同一个Symbol 值。而symbol.for 方法可以做到。
具体实现:它接收一个字符串作为参数,然后搜索有没有以该参数作为名称的symbol 值,如果有,返回这个值,否则就新建并返回一个以该字符串为名称 的Symbol 值。

var a = Symbol.for('one');
var b = Symbol.for('one');
console.log(a === b)  // true

③ Symbol.keyFor() 方法

返回一个已登记的Symbol 类型的key值
例如:

var a = Symbol.for('one');
var c = Symbol("two");

console.log(Symbol.keyFor(a));  // one
console.log(Symbol.keyFor(c));  // underfined

通过上面的例子可以看出,Symbol.keyFor() 方法返回一个登记的Symbol 类型值得 key,而直接声明的 Symbol() 没有。如果你Symbol.keyFor() 没有参数,那么也不会有key值

更多知识点,请看http://es6.ruanyifeng.com/#docs/symbol

jre9下载 jdk9 (Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】 立即下载

相关推荐

brpc组件bvar源码解析(一)简介、使用和类的关系

bvar是brpc中的一个重要组件,brpc内部有很多builtin监控都是bvar实现的。 brpc文档介绍bvar“几乎不会给程序增加性能开销,也快于竞争频繁的原子操作”。它的原理是:多线程累加一个计数器时,每个线程只累加私有的变量而不参与全局竞争,因此写时没有锁的竞争;在读取时累加所有线程的私有变量。虽然读比之前慢多了,但写就快多了,因此它使用写多读少的场景,例如统计、监控场景。 1.使用 // bvar::Adder<T>用于累加,下面定义了一个统计read error总数的Adder。

华秋实的专栏 1852

【解决】IE浏览器提示SCRIPT5009 “Symbol”未定义

说在前面 今天处理浏览器兼容性的时候,Edge浏览器运行良好的情况下,IE浏览器报错SCRIPT5009: “Symbol”未定义,经过了很长时间的搜索,从webpack官网得到了解决方案,这里分享给大家。 啰嗦两句 IE作为著名的拦路虎,对于ES6的支持可以说是一塌糊度,所以我们开发的系统如果想兼容IE,比如箭头函数等ES6的特性是需要进行转码处理的。 babel是我们熟知的转码软件,它可以帮我们处理大多数的转码问题,但是我配置之后仍然会提示我SCRIPT5009: “Symbol”未定义,可能这部分内容

Run_youngman的博客 6712

LabVIEW Modbus TCP通信避坑指南:解决连接中断、服务器异常与自动重连问题

本文详细解析了LabVIEW环境下Modbus TCP通信的常见问题,包括连接中断、服务器异常等,并提供了自动重连机制的实现方案。通过优化错误处理、超时参数和资源管理,帮助开发者构建更稳定的工业级Modbus TCP客户端,显著提升通信可靠性。

weixin_42525211的博客 425

js数据类型------symbol数据类型

js数据类型有以下几种,null,undefined,number,string,boolean,object,symbol null:空值 undefined:未定义 number:数字类型 string:字符串类型,加引号的都是字符串 boolean:只有两个值,true和false object:对象类型 symbol:唯一的值,不能和其他数据类型进行运算 用法:声明一个变量=Symbol(值),例如: varsym=Symbol(666) // 或者写成let sym=Sym...

OvO的博客 269

Ubuntu 24.04 高效部署Slurm集群:从零到生产环境实战

本文提供了一份在Ubuntu 24.04 LTS系统上从零开始部署生产级Slurm高性能计算集群的完整实战指南。内容涵盖网络配置、Munge安全认证、Slurm核心组件安装与配置,并深入讲解了cgroups资源隔离、NFS共享存储、配置无感知模式等生产环境优化技巧,最后通过实例演示如何提交与管理Slurm作业,帮助用户构建高效、稳定的计算平台。

weixin_29213655的博客 565

Pixel 6 Pro升级Android 13变砖急救指南:Fastboot全分区修复实战

本文提供Pixel 6 Pro升级Android 13变砖后的Fastboot全分区修复实战指南,详细解析变砖原因、必备工具准备、Fastboot模式解锁、全分区擦除操作及手动刷入官方ROM的完整流程,帮助用户高效解决设备变砖问题。

weixin_28693447的博客 485

JS(6).Symbol详细介绍

Symbol详细介绍

wsz123456wsz的博客 5449

Datawhale~数据挖掘实践之序列问题处理~天池·资金流入流出预测-挑战Baseline~Day01~数据探索与分析

写在前面✍ 本系列笔记基于天池平台上“资金流入流出预测-挑战Baseline”学习赛,记录如何完整的打一次数据挖掘类比赛。同时,该比赛属于序列建模问题,希望学习完成这个任务,可以对序列问题的处理有一定的独立思考能力和实践操作能力,可以将所学理论,用编码的形式和实际的问题得到深入。 第一篇,EDA Content: 初步了解赛题及数据 1.1 任务 1.2 用户基本信息数据 1.3 用户申购赎回数据 1.4 收益率表 1.5 银行间拆借利率表 1.6 提交格式 1.7 评分指标 EDA 1 初.

小卜妞的博客 2358

JS中Symbol的介绍

symbol是一种原始数据类型其余原始类型: 未定义(undefined) 、 空值(null)、布尔值(boolean)、字符串(string)、数值(number)、对象(object)symbol表示独一无二的值symbol类型的"真实值"无法获取,也就是说Symbol类型没有对应的字面量symbol类型的意义在于区分彼此和不重复,不在于真实值。

gghhb12的博客 5991

人工智能在软件测试中的广泛应用领域

人工智能在软件测试中的应用领域涵盖了自动化测试、缺陷预测和缺陷检测、智能化测试报告生成等方面。以上提供的示例代码只是其中的一小部分,实际上,人工智能在软件测试中还有许多其他的应用。通过结合人工智能和软件测试,可以提高测试效率和质量,减少测试工作的人力成本,并帮助开发人员更好地理解和改进软件产品。人工智能(Artificial Intelligence,简称AI)在软件测试领域的应用越来越广泛。下面将介绍几个人工智能在软件测试中的主要应用领域,并提供一些相关的源代码示例。

FycPerformance的博客 463

SAP 批量修改 工艺路线 和 BOM

1、在运维的过程中经常会遇到用户需要批量更改组件,或者是批量更改数量,还是组件里面的一些标识,当处理这些批量数据处理的业务时,BOM的批量更改一个想到的就是CS20,但是CS20当BOM需要替换的时候就不是很适用。当前工作区域:选择 SAP_ITEM 对BOM行项目进行变更,工艺路线也是可以批量更改的,根据实际的业务进行选择,我这里选择的就是BOM的组件变更。5、本博客将使用新的一种方式进行BOM的批量变更,标准的事务代码:CEWB对BOM进行批量更改。3、使用LSMW的方式进行BOM的批量更改。

我小时候很黑的博客 4098

js symbol类型详解以及symbol的三大应用场景

8.symbol 1.什么是symbol 什么Symbol? Symbol是ES6中新增的一种数据类型, 被划分到了基本数据类型中 基本数据类型: 字符串、数值、布尔、undefined、null、Symbol 引用数据类型: Object Symbol的作用 用来表示一个独一无二的值 格式 let xxx=Symbol(‘标识字符串’); 为什么需要Symbol? 为了避免第三方框架的同名属性被覆盖 在企业开发中如果需要对一些第三方的插件、框架进行自定义的时候 可能会因为添加了同名的属性

darabiuz的博客 2万+

FPGA原型验证(七):如何选择、搭建原型验证平台?

本篇概要::讨论了在项目初期选择目标FPGA平台的重要性,包括自制板卡与购买现成板卡之间的决策。主要是为那些希望建立基于FPGA的原型平台的工程师和设计师提供了深入的技术细节和决策指导,无论是选择自制还是购买现成的解决方案。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 945

es6新数据类型Symbol

Symbol es6之后的第7种数据类型 当通过Sympol()创建的值得时候,无论内部值是什么,都是不相等的 consts=Symbol('123'); constb=Symbol('123'); console.log(s===b);//false consta=Symbol.for('123'); constc=Symbol.for('123'...

sinat_18474835的博客 1146

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

ES6新数据类型:Symbol

Symbol是JavaScript的第七种数据类型,是原始数据类型,表示独一无二的值。它是ES6新引入的数据类型,引入的原因在于:ES5 的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin 模式),新方法的名字就有可能与现有方法产生冲突。如果有一种机制,保证每个属性的名字都是独一无二的就好了,这样就从根本上防止属性名的冲突。 ...

qq_44169219的博客 330

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

ES6 新数据类型 symbol

预热 javascript有 6种 数据类型 undefined null 布尔值(Boolean) 字符串(String) 数值(Number) 对象(Object) 而 symbol 为ES6新增的数据类型。表示独一无二的值,使用Symbol()定义(S大写!) 理解symbol 那么这个symbol到底是个什么东西,我们看下面例子: const a = Symbol() cons...

weixin_33682719的博客 114

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

ES6语法中的Symbol(新数据类型)、Set、Map

一、Symbol数据类型(ES6新数据类型):声明一个独一无二的值 //注意:S大写 var str1 = Symbol("jhh"); var str2 = Symbol("jhh"); console.log(str1 === str2); //false 二、Set:类似数组,成员唯一 //创建Set(注意:S大写) var arr = new Set([1,2,3,3,5]); cons...

weixin_45616246的博客 321

理解ES6的新数据类型:Symbol

ES6之前的数组类型 在ES6之前JS只有6种数据类型,分别是:Undefined、Null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。 ES6引入了一种新的 原始数据类型 Symbol,表示独一无二的值,至此JS有了 7 种数据类型。 随着JS的版本更新,未来可能会出现其他新的数据类型。 Symbol 是什么 Symbol值通过Symbol函数...

weixin_30347009的博客 112

js ES6新数据类型 Symbol - Kaiqisan

js ES6新数据类型 Symbol ヤッハロー、Kaiqisanすうう、一つふつうの学生プログラマである,这一篇文章又是全新的内容,咱来聊聊ES6的新数据类型Symbol 这个是es6推出的继 undefined null boolean number string object后推出的新的数据类型 在输入数据的时候,尤其是学生或者用户管理的时候,我们不可避免会遇到同名的情况,如果按照以前的写法的话,后面的重名参数会覆盖前面的重名参数,会造成不必要的麻烦。 const list [ 'kaiqisa

Kaiqisan的博客 240

ES6新数据类型Symbol

Symbol  今年最火的莫过于 ES6 + Babel 了。ES6 引入了一些很实用很强大的特性和一些语法。今天说的 Symbol 就是其中一个。 对于这个新特性,很多人估计很少使用它,尤其是可见性封装特别好的时候。但它也有很应用场景的。 那Symbol 到底是个什么东西呢? 数据类型 首先它是 ES6 引入的一个 JS 数据类型。熟悉 JavaScript 的都知道,JavaScri

hustzw07的博客 1209

ES6语法之新数据类型Symbol

1.Symbol:新的数据类型,表示一个不会重复的值 //1.Symbol:新的数据类型,表示一个不会重复的值 //不是函数,不可以new let sym = Symbol('33'); console.log(typeof sym);//symbol //Symbol返回的值不会相同 let sym2 = Symbol('aa');

醉月听风的博客 243

ES6新数据类型symbol介绍

symbol是ES6中新增的原始数据类型,表示独一无二的值。经常被用于对象的唯一属性名。 具体使用方式如下: useEffect(() => { console.log(type, '------------------3-----'); fn() }, []) const fn = () => { // 方法1 let s1 = Symbol('key1') let obj = {

weixin_48996679的博客 570

ES6中的新数据类型——Symbol

今天小编和大家来聊一聊es6中新增的一个原始数据类型Symbol。在es5中原始数据类型(基本数据类型)有以下六种:Undefind、Null、Bool、String、Number、Object。今天结合实例和大家一起探讨一下这个神奇的Symbol。大家还可以关注我的wei in x 一、基本声明方式 1、方式一 ...

q709971076的博客 224

如何使用es6里面的symbol新数据类型

symbol是新增的数据类型,表示印记符号,是一个独一无二的值,常用于对象的属性不重复 let aq=Symbol(“qw”); let user={ admin:“123”, pass:“qwe”, u:[{b:1,c:2}], [aq]:“asq” } 也可以用Object.defineproperty(object,aq,{value:“asq”}) 然后通过forin遍历你会发现symbo...

AI模型自研小参数,智能体开发,langchain,langgraph,垂直类模型开发,魔搭社区模型微调,人工智能软件全周期落地,从0到1开发小模型,多模态,多模型,多智能体,然后数据中台,模型中台,集群部署算力调度,并发优化模型 221

对于ES6新数据类型Symbol()的理解和学习

## 什么是Symbol()类型的数据? Symbol()是ECMAScript2015(ECMA6)中新推出的一种基本的数据类型.MDN上介绍到: Symbol 是一种特殊的、不可变的数据类型,可以作为对象属性的标识符使用。Symbol 对象是一个 symbol primitive data type 的隐式对象包装器。symbol 数据类型是一个 primitive data type.

王宜明的个人博客 1247

es6学习笔记--新数据类型Symbol

学习了es6语法的symbol类型,整理笔记,闲时复习。 Symbol 是es6新增的第七种原始数据类型(null,string,number,undefined,boolean,object),是为...

qq_45670012的博客 308
上一篇: PHP 中对MySql 数据库的增删改查
下一篇: js 实现页面的复制功能 clipboard.js
webxiaoma
博客等级 码龄10年 65粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值