ECMAScript 6 入门 学习 日志笔记 2024/8/6 13:59

news2024/11/25 20:54:47

 就读书籍:

ECMAScript 6 入门

作者:阮一峰icon-default.png?t=N7T8https://www.ruanyifeng.com/

 个人理解笔记

 

{ } 块级   函数不能先用后声明   Let   优先函数表达 

不可重复声明同一变量

let=function (){  } 

}

不谈其他,只要在{ } 中即可 ,简单暴力理解

const  和 let 类似  ,指向对象 ,

简单理解:指向房子 可以加家具 不能换房

 // 冻结对象 Object.freeze(obj);               把房子(obj)门关上
constantize(obj) 把房子里的所有门都关上 null 不注明会报错 还要检测是不是门
Object.keys(obj)        返回房子内部的物件名字
obj[   Object.keys(obj) ]        通过名字找到具体物品  

 函数的作用是确保一个对象及其所有嵌套的对象都被冻结,从而实现深层的不可变性。

变量声明方法

六种: let var import class const function

顶层变量:  var  function

浏览器里面,顶层对象是window, Node 和 Web Worker 无 window

浏览器和 Web Worker 里面,self指向顶层对象, Node 无self

Node 里面,顶层对象是global,其他环境不支持。  

 CSP 内容安全策略 evalnew Function  方法可能无法使用

解构赋值: 用于数组 [ ] and 对象 { } 键必须相同 键类似索引

写法: 模式匹配  两边模式相同 

                不是可遍历的结构  let [a,b,c] =1 错误

       实用技巧

 将现有对象的方法,赋值到某个变量。

VS好用的一个插件:A-super-comprehensive

 

古怪赋值方式 ( )内部包裹{ } 解构  语法合法 ( ) 防止 { } 被默认为块

({} = [true, false]);
({} = 'abc');
({} = []);

 解构赋值的规则是,只要等号右边的值不是对象或数组,就先将其转为对象。

解构用途

//用途一 交换值

let x=1,y=2;

[x,y]=[y,x];

console.log(x,y);

//用途二 函数返回多个值

function f(){

    return [1,2];

}

console.log(f());

let [a,b]=f(); //解构赋值

console.log(a,b);

//对象的解构赋值

function f1(){

    return {

        name:"网络",

        ago:25

    }

}

let {name,ago}=f1();//解构赋值

console.log(name,ago);

let {log}=console;//函数的解构赋值

//用途三 函数参数定义

//有序

function  f2([h,v,n]){log(`Received: h=${h}, v=${v}, n=${n}`);}

f2([1,2,3]);

//无序

function f3({n,v,h}){log(`Received: h=${h}, v=${v}, n=${n}`);}

f3({h:1,n:2,v:3});

//提取json数据

let jsonData={

    id:1,

    namea:"网络",

    age:25

}

let {id,namea,age}=jsonData;

log(`id=${id},name=${name},age=${age}`);

运行结果: 

旧方法提取 JSON 

const jsonString = '{"name": "John", "age": 30, "city": "New York"}';

const jsonObject = JSON.parse(jsonString);

// 访问对象属性

console.log(jsonObject.name);

// 输出:

John console.log(jsonObject['age']);

// 输出: 30

console.log(jsonObject.city);

 

 用解构

const jsonString = '{"name": "John", "age": 30, "city": "New York"}';// JSON字符串

let {name,John,age,city}= JSON.parse(jsonString);// 解析JSON字符串

console.log(name,John,age,city);// 打印结果

const 也是可以的

const jsonString = '{"name": "John", "age": 30, "city": "New York"}';// JSON字符串

const {name,John,age,city}= JSON.parse(jsonString);// 解析JSON字符串

console.log(name,John,age,city);// 打印结果

 

 用法五  函数参数的默认值

// 定义一个简化版的 jQuery.ajax 方法
jQuery.ajax = function (url, {
    // 默认配置项
    async = true,          // 是否异步,默认为 true
    beforeSend = function () {},  // 发送请求前的回调函数,默认为空函数
    cache = true,          // 是否启用缓存,默认为 true
    complete = function () {},  // 请求完成后的回调函数,默认为空函数
    crossDomain = false,   // 是否允许跨域,默认为 false
    global = true,         // 是否触发全局 AJAX 事件,默认为 true
    // ... 更多配置项
  } = {}) {
    // ... 执行具体的 AJAX 请求逻辑
  };

用法六 遍历 Map 结构

  1. Map 对象:

    • Map 是一种内置的 JavaScript 对象,它实现了键值对的集合,类似于对象,但键可以是任意类型的值(不仅仅是字符串或符号)。
    • Map 保证了键值对的插入顺序会被记住,这与普通的 JavaScript 对象不同,在普通对象中键值对的顺序是不确定的。
    • Map 提供了一些方法,如 setgethasdelete, 和 clear 用于操作键值对。

方法七输入模块的指定方法

ES6 对字符的 Unicode 表示法做出了改进,只要将码点放入大括号,就能正确解读该字符。

遍历器for.... of  遍历器最大的优点是可以识别大于0xFFFF的码点,传统的for循环无法识别这样的码点。

JSON 不允许直接包含正则表达式。

 JSON 格式允许字符串里面直接使用 U+2028(行分隔符)和 U+2029(段分隔符)。这样一来,服务器输出的 JSON 被JSON.parse解析,就有可能直接报错。

  • 字符串 json 包含了两个特殊字符 \u2028 和 \u2029,分别代表行分隔符和段落分隔符。
  • 这些字符在 JSON 格式中是无效的,会导致解析错误。
  • 实验失败没有报错QAQ

 

JSON.stringify()的行为。

遇到0xD8000xDFFF之间的单个码点,

或者不存在的配对形式,

它会返回转义字符串,留给应用自己决定下一步的处理。

 

 解构函数,别名的应用

 trim方法去掉首尾空格

 模板字符串(template string)

插入值`${ }`

模板嵌套

模板编译:这个好复杂,表示看不太懂

类似于 EJS (Embedded JavaScript) 的模板引擎语法

 编译: 看不太懂 直接用ejs了

ejs基本语法理解和运用 - 不会代码的前端 - 博客园  

标签模板 tagged template

  1. 重要应用,就是过滤 HTML 字符串,防止用户输入恶意内容。

  2. 就是多语言转换(国际化处理)

调用函数处理字符串?

休息了,今天就到这里 2024/8/6 20:09  

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

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

相关文章

语言模型-神经网络模型(二)

神经网络模型语言模型 神经网络模型神经网络的分类神经网络模型和Ngram对比应用一-话者分离对比优劣 应用二-数字归一化应用三-文本打标 神经网络模型 释义: 与ngram模型相似使用,前n个词预测下一个词,输出在字表上的概率分布;过…

【Playwright+Python】使用Playwright进行API接口测试

在当今的自动化测试领域,结合Web UI和API接口测试已成为提升测试覆盖率和效率的关键。Playwright作为一个强大的自动化测试工具,除了在Web UI测试中大放异彩,还能与Python结合,实现强大的API接口测试功能。本文将带你探索如何使用…

面试软件测试岗:经典面试题!全背下来,月薪10K起步...

背题是一个快速应付面试的方式,但如果你想在软件测试行业稳步前进、步步为营的话,建议大家还是有序学习软件测试知识,积累够了,转行、跳槽都是顺其自然的。 1、什么是兼容性测试?兼容性测试侧重哪些方面? …

告别录屏难题:2024四大热门电脑录屏软件推荐

进行在线教学、游戏直播、制作教程视频,录屏已成为我们日常生活和工作的重要需求。电脑怎么录屏?一款好用的录屏软件十分重要。今天,我们就来为大家推荐四款实用的电脑录屏工具。 1. 福昕录屏大师:专业级录屏,满足多样…

深入理解接口测试:实用指南与最佳实践(四)IHRM管理系统实战-项目分析

​ ​ 您好,我是程序员小羊! 前言 这一阶段是接口测试的学习,我们接下来的讲解都是使用Postman这款工具,当然呢Postman是现在一款非常流行的接口调试工具,它使用简单,而且功能也很强大。不仅测试人员会使用…

前端获取视频文件宽高信息和视频时长

安装 yarn add video-metadata-thumbnails | npm install video-metadata-thumbnails引入依赖包 import { getMetadata } from video-metadata-thumbnails使用 if (file.name.includes(mp4)) {if (file) {try {console.log(file)// 获取视频的元数据const metadata await …

Linux基础笔记分享(超详细~)

文章目录 Linux基础1.基础概念2.基础命令命令行快捷键自动补全: tab移动光标快速删除翻看历史命令终止程序退出登录清屏 查看命令帮助alias命令别名-快捷键pwd-类似于地图cd-类似于传送术mkdir-类似于合成装备touch-创建文件ls-类似于查看装备tree-打印目录层级结构cp-复制命令…

快速上手AWS cloudfront产品

AWS CloudFront,亚马逊推出的卓越全球内容分发网络服务,专为加速网站内容的极速传输而设计,旨在大幅度削减加载延迟,同时确保内容传递过程中的高度安全性和无懈可击的可靠性。借助CloudFront的强大功能,用户能够轻松实…

6个适用于Linux具有数据加密功能的绝佳软件和应用

数据加密在如今的网络安全领域是一个不可或缺的功能。该功能支持您编码数据,让没有访问权限的其他人无法读懂您的数据。若要增强在网络上的安全性,选择使用默认拥有此实用功能的软件或许是个不错的办法。 在本文中,您将了解到一系列运行在Li…

C++空指针(nullptr)

C空指针(nullptr) ​ 在C语言中我们把空指针定义成NULL,但是这在C中会有所问题,因为C对指针类型转换比较严格。下面让我来深入了解一下NULL与nullptr。 NULL实际就是一个宏,在C头文件(stddef.h)中,可以看到如下代码:…

vue3学习day03-vue3的生命周期、父子通信、模版引用、defineExpose

11、vue3的生命周期 (1)Vue2中生命周期: beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destroyed (2)选项式API的生命周期: BeforeCreate/created、beforeMou…

TCP协议及ip

传输控制协议 通信前必须建立连接 tcp传输数据可靠 这就和大家的qq号和手机号一样 没有完全相同的qq号和手机号 端口号:1-65535 的一个整数 1-1024 通过端口号可确定哪一个程序在运行 应用程序的id 自定义端口号5999之后 在Qt中使用网络通信 套…

Apache Dolphinscheduler在中创新航的落地与实践

背景介绍 我司中创新航&#xff08;CALB&#xff09;&#xff0c;是全球领先的新能源科技企业 &#xff0c;致力于成为能源价值[创造者](<https://baike.baidu.com/item/创造者/10818258?fromModulelemma_inlink" t "/Users/shangeyao/Documents\x/_blank>)&…

directx修复工具:Windows 必备修复工具,一键解决 dll 丢失问题!

电脑出现DLL文件丢失要怎么恢复&#xff1f; 关于电脑系统修复的工具&#xff0c;还是有很多推荐的。金舟DirectX.DLL一键修复是一款强大的系统级工具软件&#xff0c;专门用于修复和恢复操作系统中动态链接库&#xff08;DLL&#xff09;文件的软件工具。软件能够解决由于DLL…

嵌入式--->STM32H7系列DMA寄存器详解

在参考手册中已经有每个寄存器的详细解释&#xff0c;这里做以翻译和调用过程的讲述&#xff0c;仅记录了解到的寄存器&#xff0c;并不全面&#xff0c;仅仅是为了方便查阅 相关中断 如下事件都会产生中断&#xff0c;前提是: •相应的中断事件xx被启用(GPDMA_CxCR)。xxIE 1…

0 元试用,一站式搭建企业云上数据库与BI 数据可视化分析平台

商业环境快速变化&#xff0c;每一次的数据分析和决策的速度都可能直接影响到公司的业务成果。在商业决策过程中&#xff0c;时间就是金钱。 为了加快数据处理&#xff0c;让数据可视化更加智能&#xff0c;我们推出了Sugar BI 和 GaiaDB 组合购&#xff0c;帮助业务快速搭建数…

GPU 片上调度系统

这篇文章分析和说明GPU 片上的kernel 通过stream 作为载体是如何分发到SM 处理器上&#xff0c;同时CUDA 所抽象的grid/block/thread 在GPU 设备层面是如何调度的。调度器通常是被忽略的一个部分&#xff0c;但对CUDA kernel 的编写和后期系统性能分析很有帮助&#xff0c;也可…

春秋云境 | 文件上传 | CVE-2022-28525

目录 靶标介绍 开启靶场 蚁剑连接 获取 flag 靶标介绍 ED01-CMS v20180505 存在任意文件上传漏洞 开启靶场 发现了一个登录功能&#xff0c;使用 burp 爆破一下 爆破之后得到账号是 admin 密码是 admin&#xff0c;登录后是这样的页面 在左边的菜单栏挨着一个一个找&…

天地图按地名搜索+openlayer+vue3

使用element-plus组件库安装ol npm i ol -s 安装axios (调用天地图api http://lbs.tianditu.gov.cn/server/search.html) npm i axios -s 主要代码 <template><div class"my-add-maker-box"><div class"my-point-box"><span>经…

直接用文件方式安装Cuda版本的Pytorch

先查看当前安装好的Cuda版本&#xff1a; 采用pip install 文件 方式安装本地的whl文件&#xff1a; 注意whl文件已经提前下载好了&#xff1a; 然后开始安装&#xff1a; 解压安装途中&#xff0c;相关的包也重新下载&#xff1a; 继续安装&#xff1a; 安装完毕了&#xff1…