ECMA2015(ES6)简单入门-2-参数默认-...-解构参数-__proto__

JavaScript:从浏览器脚本到全栈生态核心的演进与实战解析 编程语言作为软件开发的基石,其设计哲学与运行时特性决定了应用边界。以解释执行、动态类型为核心的高级语言,通过原型继承和函数式特性支持多范式开发,在事件循环与非阻塞I/O模型加持下,能高效处理并发任务,技术价值在于实现高响应性的用户体验与服务器端高性能。这一特性使其从最初的网页交互脚本,逐步拓展至构建单页面应用、服务器端API及跨平台桌面软件等全栈场景。以JavaScript为例,其基于V8引擎的Node.js运行时将语言能力延伸至后端,结合React等框架形成完整生态,并通过ECMAScript标准持续演进 阅读详情

默认参数设置
//es6里可以给定义的函数接受的参数设置默认的值;
//如果不去指定函数参数的值 那函数调用的时候
就使用默认的值

function  breakfast_1(dessert="apple",drink="tea"){//指定默认值 直接在形参的后面赋值
    return `${dessert}+and+${drink}`;
}
console.log(
    breakfast_1()
);
console.log("......现在设置他们的值后......")
console.log(
    breakfast_1("X倒日本","R倒棒子")
);

 …es6中心添加的操作符号 可以叫做spread或者rest

let fruit=["apple","banana"],
    foods=["姑娘","小伙","法海",...fruit];//fruit展开放入到foods中
//展开
 console.log(fruit);//输出的是数组
console.log(...fruit);//单独输出的是数组里的每一个值 相当于把数组展开了
console.log(foods);
//...rest 剩余操作符 一般用在函数的参数里面
function  breakfast_2(dessert,drink,...food){
    //让函数支持更多的参数
    console.log(dessert,drink,food);//其余的参数放在了一个叫food的数组里
    console.log("--------下面的是展开的---------");
    console.log(dessert,drink,...food);
}
breakfast_2("apple","tea","tea1","tea2","tea3");
解构参数
function  breakfast_3(man,woman,{location,restaurant}={}){
    console.log(man+"和"+woman+"在"+location+restaurant+"洗澡");
}
breakfast_3("乔瑞","漂亮姑娘",{location:"上海",restaurant:"必胜客"});
function  breakfast_4(man,woman,{location,restaurant}={}){
    //es6给函数添加了个name属性 能得到函数的名字
}
console.log(
    breakfast_4.name
);
//如果是匿名函数 函数名字就是定义的变量
// 如果是定义变量的有名字函数 那么打印出来的还是函数的名字而不是定义的变量
let breakfast= function  breakfast_5(man,woman,{location,restaurant}={}){
    //es6给函数添加了个name属性 能得到函数的名字
};
console.log(
    breakfast.name//因为breakfast_5它的优先级更高
);
箭头函数  使用箭头定义函数的方式
let  breakfast_6 = dessert => dessert;
//let定义变量  变量名 =函数开始接受的参数 => 函数返回的值
//普通的写法
var breakfast_7 =function breakfast_7(dessert) {
    return dessert
};
// 如果有多个参数
let  breakfast_8 = (dessert,drink) => dessert + drink;

// 如果无参数
let  breakfast_9 = () => console.log("this 里面没参数");
     breakfast_9();
//let 变量=变量值
let dessert="cake",drink="coco";

    foods={//dessert属性:dessert属性值
// 在对象里面添加跟变量名一样的属性的话,并且属性的值就是变量表示的值;可以直接把:以后都去掉
        dessert,
        drink,
        breackfast_old:function(){alert("old")},// 以前的写法
        breackfast_now(){alert("now")}//        现在的写法
	};
foods.breackfast_old();
foods.breackfast_now();
对象属性名
let man={},drinks="name little";
    man.name="make";
    //属性名中间不能有空格man.name little="daead"
// 如果有空格可以用方括号+""
man["name little"]="daead";
man[drinks]="daead";//这和上行的代码是一样的意思
//判断两个东西是不是同一东西nan=nan,+0!=-0
console.log(
    Object.is([],Array)
);

 Object.assign()把对象的值赋值到另一个对象里

let breakfast_10 = {};
//Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到//目标对象。它将返回目标对象。
Object.assign(
    breakfast_10,//接受者
    {drink:"beer"}//复制来源
)
console.log(breakfast_10);

Object.is() 方法判断两个值是否是相同的值。

Object.is(value1, value2);
参数
value1第一个需要比较的值。
value2第二个需要比较的值。
返回值表示两个参数是否相同的布尔值 。

Object.is() 判断两个值是否相同。如果下列任何一项成立,则两个值相同:

两个值都是 undefined
两个值都是 null
两个值都是 true 或者都是 false
两个值是由相同个数的字符按照相同的顺序组成的字符串
两个值指向同一个对象
两个值都是数字并且
都是正零 +0
都是负零 -0
都是 NaN
都是除零和 NaN 外的其它同一个数字
这种相等性判断逻辑和传统的 == 运算不同,== 运算符会对它两边的操作数做隐式类型转换(如果它们类型不同),然后才进行相等性比较,(所以才会有类似 "" == false 等于 true 的现象),但 Object.is 不会做这种类型转换。

这与 === 运算符的判定方式也不一样。=== 运算符(和== 运算符)将数字值 -0 和 +0 视为相等,并认为 Number.NaN 不等于 NaN。

   使用__proto__设置继承别的对象里的方法

let breakfast_11 = {
    getDrink () {
        return "coffee"
    }
};
let dinner = {
    getDrink(){
        return "beer";
    }
};
let sunday={
    __proto__:breakfast_11,//这个sunday就拥有了breakfast_11下的getDrink的方法
//如果想在sunday里面重新定义getDrink方法 覆盖掉breakfast_11对象里的getDrink方法
//并且想在这个sunday的getDrink方法里得到breakfast_11的getDrink方法返回来的值
// super+方法名字 得到方法返回来的东西
    getDrink(){
    return super.getDrink()+"wahahahahahh";
    //执行breakfast_11对象里面的getDrink方法去得到返回来的值
}
};
console.log(sunday.getDrink());
console.log(Object.getPrototypeOf(sunday) === breakfast_11);
ALSA音频开发实战:如何用snd_pcm_avail避免缓冲区溢出(附完整代码) 本文深入探讨了在ALSA音频开发中,如何利用`snd_pcm_avail`函数有效管理环形缓冲区,从而避免音频数据溢出或下溢。通过实战代码示例,详细解析了该函数在播放场景下的核心作用,即实时查询可写入的帧数,并构建了自适应写入循环以实现稳健的流量控制,确保音频流的平滑与稳定。 阅读详情

相关推荐

AP发票批量付款程序(WEB ADI)

CREATE OR REPLACE PACKAGE MEW_AP_BATCH_PAYMENTS_PKG IS   PROCEDURE MAIN(P_BATCH_ID          NUMBER                 ,P_ORG_ID            NUMBER                 ,P_BANK_ACCOUNT_NAME VARCHAR2

储藏室 5050

js 参数解构_Javascript6/ES2015中的解构详解

Javascript6/ES2015中的解构详解ECMAScript 2015引入了许多语法糖帮助你编写更精确代码,解构(destructuring)是最引人注目之一。首先我们看看什么是解构?解构是用来分配表达式充实到复杂对象或数组等数据结构中,你可以通过文字符号来发现是否使用了解构,比如对于对象使用了一对括号{};而对于数组使用[],这些符号中的分配值都是从左到右。//注意下面等号之间的方括号 ...

weixin_39872395的博客 597

小白学电路之cadance搭建buffer电路

Buffer(缓冲器)是一种放大器或驱动电路,主要用于隔离输入和输出,以防止负载对前级电路造成干扰或影响。本文作者在电路方面是小白水平,目前正在学习,有不足之处欢迎指正。3.创建新的cellview,对此buffer进行仿真验证。2.创建buffer的symbol。电路中的V2的详细参数。

weixin_58051657的博客 1982

ECMAScript 2015

文章目录ES 6 (ECMAScript 2015)let 与块级作用域const数组的解构对象的解构模板字符串字面量模板字符串串标签函数字符串的扩展方法参数默认值剩余参数展开数组箭头函数箭头函数与this对象字面量增强对象扩展方法class类静态成员类的继承Set 数据结构Map 数据结构Symbolfor…of 循环ES 2015 其他内容 ES 6 (ECMAScript 2015) 通常将 ECMAScript 看作是 JavaScript 的标准规范 实际上JavaScript 是 ECMAScr

weixin_42306249的博客 1280

康耐视CogPMAlignTool模板匹配详解

康耐视CogPMAlignTool是一款基于边缘特征的模板匹配工具,适用于工业视觉检测。该工具提供PatMax、PatQuick、PatFlex等不同算法,分别对应高精度、快速匹配和柔性表面等应用场景。关键参数包括特征粒度(粗糙/精细)、边缘阈值、弹性范围等,支持旋转缩放匹配和极性忽略功能。工具操作流程包括图像采集、参数设置、模板训练和运行检测,通过调整查找概数、接收阈值等参数可优化识别效果。配套的卡尺工具(CogCaliperTool)通过一维投影和边缘筛选实现精准定位,适用于高精度尺寸测量场景。

2502_92473474的博客 1317

CST入门——0. 安装CST Studio Suite 2022

安装CST Studio Suite 2022详细操作步骤

plmxu34的博客 6万+

ECMA2015 - ECMA2021新增特性(es6)

es6相关特性

letianxf的博客 1370

LEfSe分析避坑指南:如何解决R语言中的常见错误与优化结果可视化

本文提供了R语言中进行LEfSe(线性判别分析)微生物组差异分析的全流程避坑指南。详细解析了从数据格式准备、参数调优(如显著性水平与LDA阈值)、结果可靠性验证到使用ggplot2进行高级可视化的实战技巧,帮助用户规避常见错误,获得更稳健、美观的分析结果。

weixin_29098391的博客 361

04-ES6(ES2015)[严格模式、模板字符串、展开运算符、参数默认值、解构赋值、set 、map]

ES6【ES2015】 ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。 JavaScript是对这个标准的实现和扩展 一、严格模式 注意事项: "use strict" 指令只允许出现在脚本或函数的开头 严格模式下不能使用未声明的变量,不论是全局还是局部 如果写在全局,则全局都是严格模式,如果写在函数内,则函

sayyesb的博客 294

YOLOv11改进 | 引入SFSConv空间频率选择卷积(含SFSC3k2二次创新),空间频率特征协同作用,检测性能全面提升

本文提出在YOLOv11中引入SFSConv空间频率选择卷积模块,通过显式分离和动态融合空间域与频率域特征,解决传统卷积对多尺度目标检测的局限性。SFSConv包含空间频率分离、动态权重融合和协同特征重建三个核心机制,并进一步创新提出SFSC3k2结构,通过双路频率分支增强特征协同作用。该改进显著提升了YOLOv11在遥感、医学等多尺度复杂场景下的检测性能,实验显示在微小目标检测任务中mAP提升5%-10%。代码实现展示了SFSConv模块的核心逻辑及其在PyTorch中的高效实现。

走向CTO的路上... 767

在Android Jetpack Compose中实现夜间模式

Android基于Compose的深色主题实现

虎哥LoveDroid 1234

ES2015中的解构赋值

ES2015中允许按照一定的模式,从数组和对象中提取值,对变量进行赋值,被称为”解构(Destructering)“。 以前,为变量赋值,只能指定值。 1 /** 2 * 以前,为变量赋值,只能直接指定值 3 * **/ 4 let a = 1;//第一种:变量赋值 5 let b = 2; 6 let c = 3;...

weixin_30470857的博客 204

性能测试能力提升-线程、并发、吞吐量、TPS、QPS、响应时间

接着上一篇的知识:性能测试能力提升-关于性能测试,本篇文章,我们将主要介绍以下几方面的知识: 线程数&并发用户数 相对并发&绝对并发 吞吐量 TPS&QPS 响应时间

程序员小杨哥的博客 4589

ECMA2015(ES6)简单入门-5-class的继承

class可以通过extend关键字实现继承,Es5是通过原型链继承。 class Point{ } class ColorPoint extends Point{ } 上述代码定义一个ColorPoint类,该类通过extend关键字,继承了Point类的所有属性和方法。但是由于没有部署代码。两个类完全一样,等于是复制了一个Point类 ,下面加入代码 class ColorPoint exte...

知其白,守其黑;和其光,同其尘。 253

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

es6

ECMAScript 6简介 ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 EMCA6新增两个关键字 let const let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块({ })内有效...

weixin_46380554的博客 326

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

1w5000字概括ES6全部特性

前言第三次阅读阮一峰老师的《ECMAScript 6 入门》了,以前阅读时不细心,很多地方都是一目十行。最近这次阅读都是逐个逐个字来读,发现很多以前都没有注意到的知识点,为了方便记忆和预...

frontend_frank的博客 194

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

《JavaScript》重学JS-细聊一下prototype、__proto__与constructor(超详解版)

我们知道不管是TypeScript还是JavaScript的class,归根结底都是基于prototype实现的,因此才将class称作语法糖,本文以我之重学视角,结合图解、示例、ECMAScript原文以及prototype、__proto__与constructor的历史,换个角度学习一下三者并记录分享;

Oliver尹的博客 2536

JavaScript从入门到精通:核心概念、运行原理与全栈应用实战

JavaScript作为一门解释型、即时编译的编程语言,其核心在于通过ECMAScript标准定义语法,结合文档对象模型和浏览器对象模型实现与网页的交互。理解其单线程事件循环机制是掌握异步编程的关键,这构成了现代Web应用高并发处理的基础。从变量作用域、闭包到原型链,这些独特的设计模式赋予了JavaScript强大的灵活性和表现力。随着Node.js的出现,JavaScript突破了浏览器的限制,实现了全栈开发,其应用场景已从前端动态交互扩展到服务器端编程、跨平台桌面应用构建以及移动端开发。本文将通过解析J

weixin_34275734的博客 330

继承与原型链

继承与原型链 JavaScript 是动态的,并且本身不提供一个 class 实现。(在 ES2015/ES6 中引入了 class 关键字,但那只是语法糖,JavaScript 仍然是基于原型的)。 只有对象类型才有继承与原型概念 不断向上追溯的原型共同组成了原型链 每个实例对象( object )都有一个私有属性(称之为 proto )指向它的构造函数的原型对象(prototype )。 该原型对象也有一个自己的原型对象( proto ) ,层层向上直到一个对象的原型对象为 null。 根据定义,

BReezeFK的博客 227

JavaScript类型本质:值的语义系统与运行时契约

在编程语言中,‘类型’并非变量的标签,而是为内存中的原始比特赋予可计算意义的语义系统。它决定了值如何被解释、转换与操作,是连接人类逻辑与机器执行的核心桥梁。JavaScript作为动态类型语言,其类型绑定于值而非变量,依赖运行时的隐式转换与契约式行为,这既带来灵活性,也引入不确定性。理解IEEE 754浮点数、UTF-16字符串、原型链对象等底层映射机制,是规避`0.1 + 0.2 !== 0.3`、`typeof null === 'object'`等经典陷阱的前提。本文深入剖析JS九种语言类型、三大检测

xiang_fu的博客 503

ECMAScript 2015(ES6)

ECMAScript 6 也称为 ES6 和 ECMAScript 2015。 本文介绍 ES6 中的一些新特性。

PSG_li的博客 2232

increment ({ commit }) { commit(‘increment‘) }, ES2015 的 参数解构

在vuex教程中,有这样一段描述: 实践中,我们会经常用到 ES2015 的 参数解构 来简化代码(特别是我们需要调用 commit 很多次的时候): actions: { increment ({ commit }) { commit('increment') } } 看到这里,需要了解action API actions 类型: { [type: string]: Function } 在 store 上注册 action。处理函数总是接受 context 作为第一个参数, pa

imkaifan的博客 757

es6(es2015)解构赋值

​es6新增结构赋值,结构赋值分为两种 数组解构赋值,对象解构赋值。 数组解构赋值: 分别按顺序给数组中的每一项赋值。 如上所示如果c未给赋值,c为undefind。 a1,b2 那么3并没有被保存到变量中,这时如果想要将剩余值进行保存,可以只用“…” …c 这样的形式,可以将剩余值以数组的形式将其保存到变量c中。 另外…可用于复制数组 实际项目中有时候我们需要将函数中的实际参数放到一个数组中, ...

weixin_39633318的博客 238

ECMAScript 2015官方文档翻译(三)

前言:本章讲编译方面的知识,读起来可能会很艰难,文中提到的格式问题(比如斜体,等宽字体等)以官方文档为标准,本译文由于排版问题可能会有不符合的地方。 5符号公约     5.1句法和词汇语法      5.1.1上下文无关文法   上下文无关文法由多个产生式组成。每个产生式都有一个抽象符号(称为非终结符)作为其左侧,一个、零个或多个非终止符号和终端符号序列作为其右侧。对于每个语法,终结符从指

理想三旬 890

前端知识点——ES6(ECMA 2015)

写在前面 笔记内容大多出自于拉勾教育大前端高薪训练营的教程,因此也许会和其他文章雷同较多,请担待。 let const 没有变量提升 const常量,readonly,索引不变的前提下可以修改内部值 for(let i = 0; i < 3; i++) { for(let i = 0; i < 3; i++) { //这里虽然有两次定义i,但是因为是i,所以作用域不同,不冲突。 console.log(i) // 0 1 2 0 1 2 0 1 2 } } 解构

AeoRus的博客 309

ECMAScript2015+-------简介篇

定义 ECMAScript是欧洲计算机制造商协会,以JavaScript为基础制定的一种脚本语言标准。 优势 1.语法糖 比如箭头函数,解决了this的指向问题 2.工程优势 2.1 模块化 引入了import和export 暴露出单个变量 a.js export let a = "js" b.js import { a } from "./a.js" console.log(a) ...

weixin_45686022的博客 415
上一篇: ECMA2015(ES6)简单入门-3-迭代器-生成器-定义类-__静态方法__继承
下一篇: let块-恒量const-解构-字符串模板-ECMA2015(ES6)简单入门
devincob
博客等级 码龄10年 72粉丝 126原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值