JavaScript-6

JavaScript、ECMAScript、ES6的区别 1、什么是JS(JavaScript) JS(JavaScript) 是由 ES(ECMAScript)、DOM(浏览器文档对象)、BOM(浏览器对象模型) 组成。 2、ECMAScript和JavaScript的关系     1996年11月,JavaScript的创造者Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这种语言能够成为国际标准。     次年,ECMA发布262号标准文件(EC 阅读详情

正则表达式

基础部分

    <script>
        const str = '我们一起学习吧,学习使你强大'
        
        // 1.定义规则
        const reg = /学习/

        // 2.判断是否匹配,返回 true or false(掌握)
        console.log(reg.test(str));

        // 3.如果exec()匹配成功,就返回数组,如果匹配失败则返回null(了解)
        console.log(reg.exec(str));
    </script>

案例演示

<body>
    <input type="text">
    <span></span>

    <script>
        // 定义规则
        const reg = /^[a-zA-Z0-9_]{6,16}$/
        // 获取对象
        const input = document.querySelector('input')
        // 事件监听
        input.addEventListener('blur', function () {
            if (reg.test(this.value)) {
                this.nextElementSibling.innerHTML = '输入正确'
                this.nextElementSibling.style.color = 'green'
            } else {
                this.nextElementSibling.innerHTML = '请输入6~16位的英文数字下划线'
                this.nextElementSibling.style.color = 'red'
            }
        })
    </script>
</body>

修饰符

介绍:
	修饰符约束正则执行的某些细节行为,如:是否区分大小写,是否支持多行匹配

语法:
	/表达式/修饰符

i是单词ignore的缩写,正则匹配时,字母不区分大小写
g是单词global的缩写,匹配所有满足正则表达式的结果
    <script>
        console.log(/H/i.test('hello world'));  // true
    </script>

替换

语法:
	字符串.replace(/正则表达式/, '替换的文本')
    <script>
        const str = 'XX表达式'
        const replace = str.replace(/xx/ig, '正则')
        console.log(replace);
    </script>

函数进阶

动态参数

动态参数 arguments只能在函数中使用

动态参数 arguments 是函数内部内置的伪数组变量,它包含了调用函数时传入的所有实参
    <script>
        // 声明函数
        function sum() {
            let total = 0;
            for (let i = 0; i < arguments.length; i++) {
                total += arguments[i]
            }
            return total
        }

        // 调用函数
        console.log(sum(1, 2, 3, 4, 5));	// 15
        console.log(sum(9, 9, 9));			// 27
    </script>

剩余参数

剩余参数 ...arr 不仅能在函数中使用,还能在其他地方使用

剩余参数的语法格式:
	...arr

arr并不是一定得叫这个名字,但是它是一个真数组!
    <script>
        // 声明函数
        function getSum(a, b, ...arr) {
            total = a * b
            if (!arr) return total
            for (let i = 0; i < arr.length; i++) {
                total += arr[i]
            }
            return total
        }

        // 调用函数
        console.log(getSum(1, 2, 8, 5, 5));     // 20
        console.log(getSum(9, 9, 9));           // 90
    </script>

展开运算符

基本内容

    <script>
        // 定义并初始化一个数组
        const arr = [9, 1, 5, 4]
        
        // 展开数组,并输出其内容
        console.log(...arr)     // 9, 1, 5, 4
    </script>

案例演示

案例一:求数组最大值

    <script>
    	// 定义并初始化一个数组
        const arr = [9, 1, 5, 4]
        
        // Math.max()无法处理数组,只能处理Math.max(5,6,1)之类的
        // 所以我们需要 "展开数组" ———— "...arr"
        const maxValue = Math.max(...arr)
        console.log(maxValue)	// 9
    </script>

案例二:合并数组

    <script>
        const arr1 = [1, 2, 3]
        const arr2 = [4, 5, 6]
        const arr = [...arr1, ...arr2]
        console.log(arr);   // [1, 2, 3, 4, 5, 6]
    </script>

箭头函数(重要)

基本认识

    <script>
        // 匿名函数
        const fn1 = function (name) {
            console.log(`你好,${name}!`);
        }

        // 箭头函数(对比上面)
        const fn2 = (name) => {
            console.log(`Hello, ${name}!`);
        }

        // 调用函数
        fn1('世界')
        fn2('World')
    </script>

常见写法

  • 基本原则
	1.只有一个参数的时候,可以省略参数的小括号
	2.只有一行代码的时候,可以省略大括号
	3.只有一行代码的时候,只需要写返回值,而不需要写 return
  • 一行代码,声明函数
	<script>
        // 声明函数
        const fn = age => document.body.innerHTML = `年龄:${age}`
        
        // 调用函数
        fn(30)
    </script>
  • 一行代码,返回"函数结果"
    <script>
        const fn1 = num => {
            return ++num
        }
        // 上面的代码,等价于下面的代码
        const fn2 = num => ++num
    </script>
  • 一行代码,返回一个对象
    <script>
        const fn1 = (uname) => {
            return { name: uname }
        }
        // 上面的代码,等价于下面的代码
        const fn2 = (uname) => ({ name: uname })
    </script>

箭头函数的参数

1."普通函数"有动态参数arguments
2."箭头函数"没有动态参数arguments,但是有"剩余参数...arr"

解构赋值

数组解构

基本内容

  • 数组解构是将数组的单元值快速批量赋值给一系列变量的简洁语法
    <script>
        const arr = [1, 2, 3]
        const [max, aver, min] = arr
        
        console.log(max);
        console.log(aver);
        console.log(min);
    </script>
  • 基本应用:交换两个变量的值
    <script>
        let a = 1
        let b = 2;  // 注意:此处必须要加上";" 因为括号形式的数组[...],默认把它当作上一行的继续,而无法自动识别为新的一行
        [b, a] = [a, b]
        console.log(a, b);
    </script>

其他内容

    <script>
        const [a = '安卓', b = '苹果'] = ['鸿蒙']
        console.log(a);     // 鸿蒙
        console.log(b);     // 苹果
    </script>
    <script>
        const [a, b, ...c] = [10, 20, 30, 40]
        console.log(a);     // 10
        console.log(b);     // 20
        console.log(...c);  // 30, 40
    </script>
    <script>
        const [a, b, , d] = [100, 200, 300, 400]
        console.log(a);     // 100
        console.log(b);     // 200
        console.log(d);     // 400
    </script>
    <script>
        const [a, b] = [10, [100, 200]]
        console.log(a);         // 10
        console.log(b[0]);      // 100
        console.log(b[1]);      // 200
    </script>

对象解构

基本认识

    <script>
        const obj = {
            name: 'Jack',
            age: 30
        }
        const name = obj.name
        const age = obj.age

        // 等价于下面的代码
        const { uname, uage } = { uname: 'Jack', uage: 30 }     // 注意:这里的变量名和属性名必须一致
    </script>

重新赋值

    <script>
        // 已经使用过变量名 name 的情况下
        const name = 'Peter'

        // 下面的代码会报错
        // const { name, age } = { name: 'Jack', age: 30 }

        // 这时候就需要重新赋值
        const { name: username, age } = { name: 'Jack', age: 30 }
    </script>

解构数组对象

    <script>
        // 数组对象
        const pig = [
            {
                name: '佩奇',
                age: 6
            },
            {
                uname: '猪猪侠',
                uage: 8
            }
        ]
        // 解析数组对象
        const [{ name, age }, { uname, uage }] = pig
        // 输出
        console.log(name);
        console.log(uname);
    </script>

多级对象解构

    <script>
        const person = [
            {
                name: '佩奇',
                family: {
                    mother: '猪妈妈',
                    father: '猪爸爸',
                    sister: '乔治'
                },
                age: 6
            }
        ]
        // 可以选择性获取内容
        const [{ family: { mother, father, sister }, age }] = person
        // 输出
        console.log(age);
        console.log(mother);
        console.log(father);
        console.log(sister);
    </script>
    <script>
        const msg = {
            "code": 200,
            "msg": "获取新闻列表成功",
            "data": [
                {
                    "id": 1,
                    "title": "4G手机转让平台",
                    "count": 254
                },
                {
                    "id": 2,
                    "title": "5G手机转让平台",
                    "count": 759
                },
                {
                    "id": 3,
                    "title": "6G手机转让平台",
                    "count": 1668
                }
            ]
        }

        // 方式一
        // function render(msg) {
        //     const { data } = msg
        //     console.log(data);
        // }

        // 方式二
        // function render({ data }) {
        //     console.log(data);
        // }

        // 方式三(与方式二没有本质上区别,只是改个变量名)
        function render({ data: myData }) {
            console.log(myData);
        }

        // 调用函数
        render(msg)
    </script>
Qt6.8.2中JavaScript调用WebAssembly的js文件<2> 开发环境:win11 + Qt 6.8.2。 阅读详情

相关推荐

Qt6 QML与JavaScript实战:JS控制台创建教程

QML中,信号(Signal)是对象发出的事件通知,可以通过连接(connect)机制与槽函数(处理函数)关联。定义与连接信号示例:Item {")逐行分析::定义一个名为mySignal的信号,携带一个字符串参数。:组件初始化完成后触发,调用mySignal发出信号。onMySignal:信号的响应函数,接收并打印消息。流程图:信号连接机制(mermaid)graph LRA[定义信号] --> B[触发信号]B --> C[连接信号处理函数]

weixin_29476595的博客 394

ES6与JavaScript之间的关系

js与node.js JS是由ES(ECMAScript)、DOM(浏览器文档对象)、BOM(浏览器对象模型)组成。 其中Node.Js就只有ES,目前浏览器比较流行的版本就是ES6(ES2015),老浏览器的版本基本上都是ES5。所以alert和document不能在Node运行(因为Node没有dom和bom)。 ECMAScript 6简介 ECMAScript 6.0(以下简称ES6)是J...

qq_43542074的博客 5601

Verilog除法器(32位无符号+带符号)

32位无符号除法器设计 恢复余数法: 恢复余数除法的基本思路是从“部分余数”中减去除数,如果结果为负(不够减),则恢复原来的部分余数,商0. 寄存器使用: reg_r 存放被除数a reg_b 存放除数b reg_r 存放余数(初始清零) 具体做法: 做减法时,减数是reg_b中的除数,被减数是reg_r中的余数左移一位,最低位由reg_q(被除数)的最高位补充。为了能够判断相减结果的正...

qq_38600065的博客 1万+

Flare-JS:基于Canvas的JavaScript ES6运行时

Flare-JS:基于Canvas的JavaScript ES6运行时 项目介绍 Flare-JS 是一个基于JavaScript ES6的运行时库,专注于使用Canvas进行图形渲染。它提供了两种渲染方式:一种是使用CanvasKit(通过WebAssembly实现的Skia库),另一种是使用标准的CanvasRenderingContext2D。目前,CanvasKit渲染方式是主分支,而co...

gitblog_00574的博客 911

不用公网IP,如何在内网高效搭建RustDesk远程控制服务器?基于Windows Server 2019的完整实践

本文详细介绍了在Windows Server 2019上部署RustDesk远程控制服务器的完整实践方案,无需公网IP即可实现内网高效远程控制。从环境准备、基础服务安装到网络与安全配置,提供了零成本的私有化部署指南,适用于企业、校园等内网环境。

weixin_28737073的博客 455

SAP ERP销售应收&成本科目确定

ERP作为业财一体软件,其中最核心的就是业务与财务模块的自动集成,无需财务进行手工做账,提高工作效率的同时降低人工操作产生的误差。今天浅浅的分享一下SD模块生成会计凭证时,借贷项确定的系统配置。一般项目上借贷项、科目都有FICO提供,但是具体的集成配置是在SD这边。

weixin_43657667的博客 1568

Javascript》》JS》》ES6》》总结

回调地狱问题 Fetch API 浅拷贝 深拷贝 事件循环机制、宏任务、微任务 Import 执行的时机 对象、数组简写方式 var 、let、Const object.create 、 object.defineProperty 组合模式 观察模式 模拟接口 注释描述接口 属性检测接口 鸭式辩型接口 继承模式 函数聚合的三种实现方式 模块、闭包 对象 的属性名 在何时使用obj[‘属性名‘] 计算属性名 创建 ’类‘ 、实例 、原型对象关系,以及 构造函数 new 和不new spread展开运算符 re

Kaizen的博客 367

树莓派4B:控制步进电机

文章目录准备阶段接线阶段树莓派程序 准备阶段 准备以下物品,淘宝都可以买到: 57步进电机 电源开关(220v转24v,3A,72W) 步进电机驱动器 电源线 电线 杜邦线 树莓派4B一套 具体型号如下: 接线阶段 整体:接线效果如下图 电源开关起220v转24v作用,很好接线,输出24v接入步进电机驱动器 步进电机驱动器的 A+ A- B+ B- 按提示接步进电机四线,步进电机上就会有说...

学习路上的鸭子的博客 1万+

QT 6.7允许WebView执行JavaScript/JS

【代码】QT 6.7允许WebView执行JavaScript/JS。

柳鲲鹏 301

从PWM到精准电流:双光耦与LM317构建的4-20mA隔离输出方案

本文详细介绍了基于双光耦与LM317的4-20mA隔离输出方案,适用于工业自动化中的PWM信号转换。该方案通过电气隔离和精准电流调节,显著提升抗干扰能力和信号传输精度,同时降低成本60%。文章还分享了电路设计、参数计算及调试经验,为工程师提供实用参考。

weixin_32006655的博客 281

小论文/大论文必备 | RT-DETR目标检测、数据集增强 | 引入多种数据集增强方法,支持图像和标签同步扩充增强,助力小论文和大论文实验涨点策略,平均提升模型mAP约1-2个百分点

RT-DETR目标检测数据增强策略研究 ,本文针对RT-DETR目标检测模型提出9种数据增强方法,包括几何变换(水平/垂直翻转、中心裁剪)、光照调整(亮度、对比度)和噪声添加(高斯/椒盐噪声)等。所有增强操作均保持图像与标签同步变换,确保训练数据的准确性。实验表明,该策略可提升模型mAP 1-2个百分点,对小目标检测效果尤为显著。文中提供了完整的Python实现代码,支持批量处理图像和标签文件,并详细说明了各增强方法的功能特点。该方法通过提升数据多样性,有效增强了模型在复杂场景下的鲁棒性和泛化能力。

Ai缝合怪、助力小伙伴高效发论文 460

ie6 javascript js 缺少标识符总结

<br />ie6 javascript js 缺少标识符总结<br /><br /><br />1. ie6下,javascript代码中,不能出现保留字符。解决办法就是避免直接使用JS的保留字符。<br /><br /><br />2. <br />IE和Firefox不兼容的地方.属性之间是要用","分隔的,但最后一个属性的后面在IE中是不能有的,firefox可有可无.<br />至于最后的";"是另外一回事了.这是Javascript的语法问题.如果后面没有其它js语句时";"可以省略.<

qingyundys的专栏 2902

ENVI无法打开Landsat8的头文件问题和解决

再次将txt文件拖入ENVI中,就会得到7个波段组合后的真彩色图像,而且辐射定标所需的参数信息都已经定义好了。按住CTRL+F,查找GROUP = LEVEL1_PROCESSING_RECORD。第一行GROUP = LANDSAT_METADATA_FILE。会查到两个包含的句子,把这两个中间的部分全部删掉。双击打开该xxx_MTL.txt的头文件。删除空行后,应该为如下图的样子。把LANDSAT改为L1。

所有专家都曾始于新手 9697

javaScript-ES6

1-ECMAScript6 基本概念 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。 它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言 ECMAScript6 和 JavaScript关系 1996 年 11 月,JavaScript 的创造者 Netscape 公司,决定将 JavaScript 提交给标准化组织 ECMA,希望这种语言能够成为国际标准。 ECMA 发布

hxy1625309592的博客 825

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

推荐6个最好的 JavaScript 和 Node.js 自动化网络爬虫工具!

在这篇文章中,我们将深入探讨6个最好的JavaScript和Node.js网络爬虫库,分析它们的功能、优点和缺点。无论你是初学者还是高级用户,这篇指南都将为你选择合适的网络爬虫解决方案提供宝贵的知识和见解。

software_test010的博客 2270

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

JavaScript 与 ES5 与 ES6 与 Node.js 之间的关系

参考自:https://es6.ruanyifeng.com/#docs/intro JavaScript 由Netscape 公司创造,1996 年 11 月,决定将 JavaScript 提交给标准化组织 ECMA,希望这种语言能够成为国际标准。之后,由ECMA发布的JavaScript就叫做ECMAScript了,简称ES。 1、ECMAScript 和 JavaScript 的关系 ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现。 2、ES.

青蛙king的博客 1089

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

blueprint-js: 基于JavaScript ES6的室内设计工具开发库

blueprint-js: 基于JavaScript ES6的室内设计工具开发库 项目介绍 blueprint-js 是一个基于ES6的JavaScript库,它是furnishup/blueprint3d的现代重制版,专为创建交互式的室内设计方案而生。该库采用MVC架构,优化了性能,并迁移到了最新版本的Three.js(至记录时的1.148.0),同时引入PixiJS替换Canvas以增强2D视...

gitblog_00001的博客 585

javascript 语言标准 es6简介

目录 1.ES6是什么鬼? 2.ECMAScript 和 JavaScript 的关系 3.ECMAScript 的历史 1.ES6是什么鬼? ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 2.ECMAScript 和 JavaScript 的关系 一个常见的问题是,ECMAScript 和 JavaScript

whatday的专栏 1653

JavaScript模块化——ES6模块化规范

ES6模块化规范

PleaSure乐事的博客 962

JavaScript未来趋势:Superhero.js前沿技术与ECMAScript 6新特性

在当今快速发展的Web开发世界中,JavaScript作为前端开发的基石语言,正经历着前所未有的变革。Superhero.js作为一个专注于大型JavaScript应用开发的资源集合平台,为我们揭示了JavaScript开发的未来趋势和最佳实践。本文将深入探讨JavaScript的未来发展方向,结合Superhero.js的宝贵资源和ECMAScript 6的新特性,为开发者提供全面的技术视野。

gitblog_00209的博客 517

【JS笔记】JavaScript语法快速上手— ES5和ES6(五)

【JS笔记】JavaScript语法 快速上手— ES5和ES6(五)

leo的博客 991

终极指南:用JavaScript轻松实现安卓自动化 - Auto.js6完整教程

想要让安卓手机自动完成重复性任务吗?Auto.js6是一个基于JavaScript的开源自动化工具,让你无需复杂编程就能实现各种手机自动化操作。无论你是开发新手还是普通用户,都能快速上手! ## 🚀 为什么选择Auto.js6? Auto.js6拥有以下核心优势: | 功能特点 | 优势说明 | |---------|---------| | **JavaScript语法** | 使用熟悉

gitblog_00119的博客 925

Executing JavaScript in Selenium in Node.js / ES6 Promises

Executing JavaScript in Selenium in Node.js : https://www.softpost.org/selenium-with-node-js/executing-javascript-in-selenium-in-node-js/ JavaScriptExecutor in Selenium WebDriver ...

AI天才研究院 8636
上一篇: JavaScript-5
下一篇: JavaScript-7
code_stream
博客等级 码龄4年 1238粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值