ES6的语法糖

ES6类:语法糖还是真正的进步? 本文深入探讨了ES6中引入的类(class)语法及其在JavaScript中的应用,分析了它作为设计模式的优势与局限性。文章通过对比传统类语言的复制行为与JavaScript的委托链接,以及对ES6类语法的语法糖性质的讨论,揭示了类在JavaScript中的实际表现与其对开发者认知的影响。 阅读详情

语法糖目录,点击跳转:
…[1, 2, 3]
解构
??
?.
?:
!+name



第一个:...主要有三个出现情形

  • function(a, b, ...params){//代码块}
    这个会将调用函数的前两个参数分别映射给a和b,后面的参数映射为一个数组给params。
  • 在函数调用的时候,如
way1: let len = getLen("hello world!", ...[1, 2, 3]);
way2: let len = getLen("hello world!", [1, 2, 3]);

这两个的区别在于way1将分解 第二个参数...[1, 2, 3]为多个参数;而way2则把[1, 2, 3]当作是一个数组参数,就是常理解的方法。

function getLen(string, params){
	console.log(params);
}
getLen("hello", ...[1,2,3]);
getLen("hello", [1,2,3]);

//1
//[ 1, 2, 3 ]
  • 对象解构特性,es7支持,数组同理
    如:
let dicA = {
	name: "gpw",
	age: "18"
};

let dicB = {
	...dicA,
	local: "yz"
}

//这个dicB等同于

let dicB = {
	name: "gpw",
	age: "18",
	local: "yz"
}

第二个 继前文所述的对象解构特性

...可以将数组和字典解构后赋值或直接传递给新的对象,利用这种思路可以稍微拓展下,这有点类似于在jsx中结构模块的例子:

const {account, password} = req.body

[s1, s2, s3] = lines.split("/n");

//还可以与nodejs的jQuery统一
let {divv, spann} = $("#app").children();

第三个: ??是空值合并操作符,按照第一个取值,如果第一个是空的,就取第二个。

注意:只对null和undefined敏感。如下:

const def = null ?? 111;
console.log(def); // 111

const def = 0 ?? 111;
console.log(def); // 0

第四个:?.是可选链操作符,功能等同于.但是不会在引用为null或undefined时报错。

这个语法糖在实际开发过程中很实用,但是在babel的7.13版本前都是不起作用的!

var obj = {
  name: "ycc",
  age: "25"
};
cosnole.log(obj.info.major);

// 在可编译版本后结果为

"use strict";
var obj = {
  name: "ycc",
  age: "25"
};
cosnole.log(obj.info.major);

这时候程序会因无法识别undefined的对象而抛出异常

7.13版本后使用语法糖识别为

var obj = {
  name: "ycc",
  age: "25"
};
cosnole.log(obj.info?.major);

// 在可编译版本后结果为

"use strict";
var _obj$info;
var obj = {
  name: "ycc",
  age: "25"
};
cosnole.log((_obj$info = obj.info) === null || _obj$info === void 0 ? void 0 : _obj$info.major);

可以在babel官网上测试下:Babel 中文网


第五个:?:同上,在字典重定义时使用

let newAccount = {
	...lastUser,
	isSignedIn?: boolean
}

第六个:!+name是判断name是否为空的,空为true。具体理解是这样的:

!是逻辑非运算,+前面没有值或者前面的值是空对象且后面有值的时候,它是一个一元运算符,作用是将它后面的操作数转换成数字。
所以后面的对象为“0”或者null、undefined甚至是“”的时候,前置一个+就被转转为0,再加上一个逻辑非则转0为true。






end!
参考来源在这里。


持续更新中。。。

JS—ES6 class语法糖 JS—ES6 class语法糖: javescript语言中,生成实例对象的传统方式是通过构造函数,ES6为我们提供了更接近传统企业级语言的写 法。 首先我们先用构造函数的方式生成实例对象: 通过构造函数生成实例对象的特点:首字母大写,new运算符调用。同时私有的属性放在函数对象中,方法放在实例对象的原型下。 ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类: Constructor 方法是构造方法,this关键字指向实例对象,对应传统的构造函数写法。 代码中定义了一个show方法,定义类的方法时,不需要添加f 立即下载

相关推荐

深入解析MATLAB四旋翼仿真案例asbQuadcopter的核心模块与优化技巧

本文深入解析了MATLAB/Simulink中的四旋翼无人机官方案例asbQuadcopter,详细拆解了其指令、传感器、控制器、本体与环境等核心模块的工作原理。重点探讨了经典的PID双环控制结构、传感器噪声模拟、模型替换方法以及系统化的PID参数调优技巧,旨在帮助用户从“开箱即用”过渡到深度定制与优化,构建更精准的仿真模型。

weixin_29171087的博客 361

ES6常见语法糖总结

语法糖:是指编程语言中可以更容易的表达一个操作的语法,它可以使程序员更加容易去使用这门语言,操作可以变得更加清晰、方便,或者更加符合程序员的编程习惯。 1. 速写属性 var name = '米斯特肖', age = '18'; var person1 = { name:name, age:age } // 下面语法糖写法等价上面 var person2 = { name, age } console.log(person1,person2) 2.

xkqbaiyuan的博客 1727

告别IIS折腾!用.NET8+Kestrel在Windows上5分钟搞定Web API部署

本文介绍了如何使用.NET8和Kestrel在Windows上快速部署Web API,告别繁琐的IIS配置。通过5分钟实战教程,开发者可以轻松实现高性能、跨平台的API服务部署,显著提升开发效率和系统性能。

weixin_42528780的博客 246

ES6的新语法(语法糖)

ES6引入了许多新的语法用过很多了,但是总没有区分开,哪些是es6新加的,最近面试有问到,所以这里整理一下,算是比较全的,这里只涉及到了语法相关的。

jt15881622410的博客 2510

可信数据空间:可信空间、区域功能节点、业务功能节点、连接器的关联关系

可信数据空间通过分层架构实现安全数据共享:可信空间作为顶层制定全局规则;区域功能节点协调辖区内功能节点协作;功能节点提供具体数据服务;连接器作为唯一通信通道确保安全交互。系统采用"规则自上而下约束,数据自下而上流动"机制,通过分层治理和标准化连接,在保证数据主权的同时实现跨域协作,具有策略分级执行、去中心化治理等特性,支持灵活扩展业务场景。

友莘居士的博客 1686

Android PackageManagerService 总结(一)应用市场下载安装apk流程

前言: 本篇文章是对系统包安装流程的总结,基于Android12 上 com.android.packageinstaller 源码的分析,第三方应用商城(华为商城,小米商城,应用宝,豌豆荚,酷安等)下载安装应 用,在普通安装和静默安装app两种方式下,对代码流程的梳理和讲解。 触发安装: 当你在商城界面中点击安装按钮,应用会自动下载,下载完成后就会调起系统安装应用的界面,此种触发方式一般是通过Intent 隐式调用的,我们先阅读如下代码: ......

u012514113的专栏 1万+

ES6语法糖

这是之前学ES6做的学习笔记中的一部分,还请辩证看待。想了解更多关于ES6的,感觉阮一峰老师写的《ES6入门》挺详细,还有 ES6语法糖 什么是语法糖? 刚开始听到这个名字的时候,原谅我孤陋寡闻,只知道简写之类的,专业名词真的不懂。然后百度了一下,名字还是蛮新奇的‘^o^’`。 语法糖:也译为糖衣语法,是由语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼...

Ultraman_and_monster的博客 2955

【chips】个人笔记系列-SystemVerilog

个人整理的Systemverilog笔记。

Hide_in_Code 2059

Vue学习日志之语法糖

语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。-百度百科 Syntactic sugar 名字很甜,让人用的也很开心,毕竟是简化语言。 使用语法糖...

前端啤酒屋 1667

在昇腾910B上,用kubeadm快速拉起一个双节点K8s集群(保姆级避坑指南)

本文详细介绍了在昇腾910B服务器上使用kubeadm快速搭建双节点Kubernetes集群的完整流程,包括环境准备、容器运行时配置、kubeadm初始化、节点加入与网络插件部署等关键步骤,特别针对ARM架构和昇腾芯片提供了优化配置和避坑指南。

weixin_29204749的博客 246

Google Play上架:谷歌2024年5月份审核政策改动,审核强度逐步提升

Google Play上架:谷歌2024年5月份审核政策改动,审核强度逐步提升

专业解决各种上架过包问题,专业团队专业处理 3187

语法糖是什么?(ES6的一些小笔记)

专业的解释 通俗的解释 JavaScript的语法糖

Limonor的博客 8616

OpenClaw 预置技能完全指南

OpenClaw 技能(Skills)是扩展 AI 助手能力的插件系统。🔐 管理密码和敏感信息(1Password)📝 操作 Apple Notes 和 Reminders🔍 实时搜索互联网(Brave Search)🎨 生成和编辑图片(Nano Banana Pro)📧 收发邮件(Himalaya)🏠 控制智能家居(OpenHue、Eight Sleep)💬 发送消息(iMessage、WhatsApp、Slack)🎵 控制音乐播放(Spotify、Sonos)

Maynor的博客 1703

ES6 语法糖

语法糖(Syntactic sugar) 语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。 Symbol ES6引入了一种新的原始数据类型Symbol...

weixin_33860722的博客 359

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ES6:什么是语法糖

语法糖的解释,并附有举例

LovelyHeart的博客 413

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

ES6 语法糖:让 JavaScript 代码甜到心坎里

刚开始用 ES6 时,我以为这些语法糖只是 “让代码好看点”,但用得越久越发现:它们其实在 “强制” 我们写更规范的代码。比如箭头函数减少了this的混乱,解构赋值让数据提取更明确,默认参数避免了参数检查的冗余。现在我的项目里,ES6 语法覆盖率已经超过 95%,代码量比以前减少了近 30%,同事们 review 代码时也能更快看懂逻辑。如果你还在犹豫要不要用 ES6,听我的:从今天开始,试着把function换成箭头函数,把拼接换成模板字符串 —— 相信我,你会爱上这种 “甜” 的。👋。

m0_73812383的博客 1201

Camera2Demo

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

ES6 class类——语法糖

ES6 class类——语法糖 定义: class (类)作为对象的模板被引入,可以通过 class 关键字定义类。它的本质是函数(function),可以看作一个语法糖,让对象原型的写法更加清晰、更像面向对象编程的语法。 基本用法: 1.匿名类表达式 <script> class { constructor(name) { this.name = name; } } <

weixin_45662100的博客 1655

ES6中对象简写属性名的语法糖

首先让我们看一段代码let demo1 = {}; // 属性操作的get方法 function get(key){ return demo1[key] ? demo1.key : null; } //属性操作的 set方法 function set(key,value){ demo1.key = value; } //将对象还原成一个空对象的方法 function clear(){

qs8lk88的博客 6811

es6新语法糖

编程语言JavaScript是ECMAScript的实现和扩展。ECMAScript是由ECMA(一个类似W3C的标准组织)参与进行标准化的语法规范。– 语法解析规则、关键字、语句、声明、运算符等。– 布尔型、数字、字符串、对象等。内建对象和函数的等。ECMAScript标准不定义HTML或CSS的相关功能,也不定义类似DOM(文档对象模型)的,这些都在独立的标准中进行定义。ECMAScript涵盖了各种环境中JS的使用场景,无论是浏览器环境还是类似的非浏览器环境。

m0_55471400的博客 725

ES6 语法糖(一)

一、为什么要学习ES6? ES6是JavaScript的下一代标准,解决了es5中存在的问题。 二、语法 1、let const let 1、只在所处的块级有效,而var 不具有块级作用域,防止循环变量变成全局变量, 2、不存在变量提升,只能先声明再使用 3、具有暂时性死区,不会在上一级中查找 const 作用:用于声明变量,就是内存(地址)不变的量 具有块级作用域 使用时必...

lucky_ferry的博客 646

php 静态类语法糖,es6中class的语法糖

什么是语法糖?语法糖(syntactic sugar)是指编程语言中可以更容易的表达一个操作的语法,它可以使程序员更加容易去使用这门语言,操作可以变得更加清晰、方便,或者更加符合程序员的编程习惯。用比较通俗易懂的方式去理解就是,在之前的某个语法的基础上改变了一种写法,实现的功能相同,但是写法不同了,主要是为了让开发人员在使用过程中更方便易懂。es6中的语法糖有哪些?这个话题其实很大,es6中的语法...

weixin_42298507的博客 250

为什么说ES6的class是语法糖?

一、前言 为什么说ES6的class是语法糖? class是原型的语法糖吗? 那又是如何使用原型来实现class这一语法糖的呢? 二、基于Prototype的OOP(面向对象) 先来看个例子: function Person (name, sex) { this.name = name this.sex = sex } function Man (name) { this.name = name } Man.prototype = new Person('', 'male') let

XinKun的博客 512

不使用ES6 语法糖

ES6中增加了Class、module等概念。 其本质是语法糖。 用BABEL可将符合ES6语法的代码转换为ES5代码。 ES6的Class中,并没有Public,Private等面向对象语言需要的语法。 这种“半调子”状态不利于编程。 JS面向对象的“原型继承”和其他纯粹面型对象的“类继承”从根本上就是不同的理念。 ES6中不完全地引入Class语法,更容易造成混乱。

tiangej的专栏 1260

鸿蒙中使用es6语法糖

es6语法糖再鸿蒙中同样也能使用

zhizun95tianzi的博客 602
上一篇: MarkDown编写笔记
下一篇: nodejs从ftp获取文件内容(非文件管道)
巨蟹贼香
博客等级 码龄9年 76粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值