day15JS-es6的基础语法

news2024/9/21 16:20:29

 1. 严格模式

1.1 严格模式的使用方法

使用方法1:"use strict"; 开启严格模式。

使用方法2:<script type="moaule"></script> 当设置script标签为模块化时,自动启用严格模式。

 1.2 严格模式的限制

1. 要求变量不能重名

//报错
"use strict";
var a=2;
var a=4;

 2. 函数中的参数不能同名

//报错
"use strict";
function fn(a, a) {

};
fn(1, 2);

 3. 在不声明变量的情况下使用变量,是不允许的

"use strict";
x = 3.14;  // 会引发错误(x 未定义)

 4. 对象也是变量,在不声明对象的情况下使用对象也是不允许的

"use strict";
x = { p1: 10, p2: 20 };      // 这将引发错误

 

 5. 删除变量(或对象)是不允许的

"use strict";
var x = 3.14;
delete x; // 这将引发错误

 6. 删除函数是不允许的

"use strict";
function x(p1, p2) { };
delete x;// 这将引发错误

7. 八进制数值文本不允许的

"use strict";
var x = 010; // 这将引发错误

8.  使用转义字符不允许的

"use strict";
var x = \010;// 这将引发错误

9.写入只读属性不允许的

"use strict";
var obj = {};
Object.defineProperty(obj, "x", {value:0, writable:false});

obj.x = 3.14;// 这将引发错误

10.写入只能获取的属性不允许的

"use strict";
var obj = {get x() {return 0} };

obj.x = 3.14;// 这将引发错误

11. 删除不可删除的属性不允许的

"use strict";
delete Object.prototype; // 这将引发错误

12. 字符串 "eval" 和 "arguments" 不可用作变量

"use strict";
var eval = 3.14;// 这将引发错误
"use strict";
var arguments = 3.14;// 这将引发错误

 1.3 在严格模式下this的指向

 查看day10JS-this的使用情况。

1.4 执行函数的方式有哪些?

  1. 函数名();  ---> 例如:fn();
  2. new 函数名(); ---> 例如:new fn();
  3. 函数名.call(); ---> 例如: fn.call()
  4. 函数名.apply(); ---> 例如: fn.apply();

1.5 call()方法 /apply()方法

call(); 方法 /apply(); 方法 :当执行函数时,将函数中 this 指向为call中第一个参数。开启严格模式也不会影响this的指向。这两个方法的作用就是改变this的指向

function fn() {
     console.log(this);
}
let object = { a: 1 };
fn.call(object);
fn.apply(object);

1.5 call()方法 /apply()方法的区别:

call()方法 :call传参一个个传。例如: fn.call(object,1,2);

apply()方法 :apply传参传入数组。例如:fn.apply(object,[1,2]);

2. 解构赋值

2.1 数组的补充知识

1. 数组的最后一个元素空元素,那么它不作为数组的元素length的长度不加上空元素的长度。

2. 空元素不等于undefined

补充知识1的案例:

//补充知识1的案例:
var arr = [1, 2,];
console.log(arr);
console.log(arr.length);//2

补充知识2的案例: 

var arr = [1, 2, , 3, undefined, 4];
console.log(arr.length);//6

for循环

2.2 解构赋值的用途与使用方法

解构赋值主要用于数组解构对象解构

使用方法:let [a,b]=[1,2];

 

 2.3 解构赋值使用语法

 

 

对象解构:

 

 

 

-------------

 

3. Set(集合)与Map(映射)

3.1 Array与Object

        Array:是紧密结构,使用下标存储数据,存储的数据可以重复,无序存储(不会自动排序)可以手动排序,不关心key只关心存储的值。查询速度慢、添加删除速度慢 。

        Object : 是松散结构,以键值对形式(key->value)存储,存储key不能重复,value值是可以重复,无序存储并且不能排序,查找速度快,可以直接根据key找到对应value值,添加删除速度快。无法获取对象的数据长度。key要求必须是字符串或者symbol,如惠不是就会自动隐式转换为字符串 。

3.2 Set(集合)与Map(映射)

        Set集合:松散结构,没有key,只有value的集合,数据不能重复(唯一),不能排序插入删除速度快,可以得到集合中数据的长度,可以遍历,查找速度快 。

        Map映射:松散结构,键值对形式存储,查找和添加删除速度快,不能排序,可以获取到数据存储的长度,key可以是任何类型 松散结构,键值对形式存储,查找和添加删除速度快,不能排序,可以获取到数据存储的长度,Key可以是任何类型。

3.3 迭代器

  1. HTMLCollection
  2. NodeList
  3. arguments
  4. Array
  5. Set本身也是迭代器

4. Set集合的方法

let s = new Set([1,2,3,4])
console.log(s);

  1. add() : 添加。
  2. delete() : 删除。
  3. has() : 判断某值在集合中是否存在。
  4. clear() : 清除集合中所有的数据。

 

5. Set集合的使用场景

5.1 去重

使用Set去重的缺点: 

 5.2 减少查找

 

6.  WeakSet集合

7. Map映射

 8. WeakMap映射

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

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

相关文章

Android U 多任务启动分屏——整体流程介绍

序 原生的分屏功能是在多任务中&#xff0c;点击应用图标选择分屏&#xff0c;在选择多任务中的其他应用进行分屏 整体流程 层级结构 #1 DefaultTaskDisplayArea typeundefined modefullscreen override-modefullscreen requested-bounds[0,0][0,0] bounds[0,0][1440,2960…

【系统架构师软考】重难点划分及学习要点(一)

目录 引言 综合知识 案例分析 案例分析题型及选择策略 历年案例分析题型及分值分布 学习与应试策略 论文 考试规则 写作要求与技巧 忌讳与注意事项 常见题目与考查方向 引言 系统架构师软考是许多IT从业人员进阶的必经之路。面对这门考试&#xff0c;如何有效划分重难…

spring揭秘14-JdbcTemplate概述与使用操作对象访问数据

文章目录 【README】【1】JdbcTemplate概述【1.1】Jdbc原生api操作数据库【1.1.1】基于JdbcPreparedStatement批量更新 【1.2】JdbcTemplate概述【1.2.1】JdbcTemplate类图【1.2.2】使用DataSourceUtils管理Connection【1.2.3】设置Statement参数&#xff08;控制行为&#xff…

Shopee联盟营销案例对saas行业的启示

在跨境电商的浩瀚海洋中&#xff0c;Shopee以其独特的联盟营销&#xff08;AMS&#xff09;策略&#xff0c;为众多品牌商家开辟了新的增长航道。作为深耕SaaS企业渠道分销多年的林叔&#xff0c;我今天想和大家分享一个来自Shopee的成功营销案例&#xff0c;并从中提炼出对Saa…

每日OJ_牛客_抄送列表(切割字符串)

目录 牛客_抄送列表&#xff08;切割字符串&#xff09; 解析代码 牛客_抄送列表&#xff08;切割字符串&#xff09; 抄送列表__牛客网 解析代码 本题是在第一行的人名中&#xff0c;查找第二行的人名是否存在。牵涉一个全字匹配的问题。步骤&#xff1a; 通过getiine(ci…

HarmonyOS(AIP12 Beta5版)鸿蒙开发:选择条件渲染和显隐控制

开发者可以通过条件渲染或显隐控制两种方式来实现组件在显示和隐藏间的切换。本文从两者原理机制的区别出发&#xff0c;对二者适用场景分别进行说明&#xff0c;实现相应适用场景的示例并给出性能对比数据。 原理机制 条件渲染 if/else条件渲染是ArkUI应用开发框架提供的渲…

软考通过率真的很低吗?

一、软考通过率多少&#xff1f; 首先要说的是&#xff0c;软考办并没有公布过全国考试通过率。但我们可以根据官方公布的报名人数和合格人数做一个预估。 浙江软考办官方公布&#xff0c;浙江2022年下半年软考合格人数为4780人(其中初级779人、中级2392人、高级1609人)。 以…

【附解决方法】由于找不到vcruntime140_1.dll 无法继续执行代码如何处理

准备使用photoshop &#xff0c;结果弹出这个 提示“由于找不到 VCRUNTIME140_1.dll&#xff0c;无法继续执行代码。重新安装程序可能会解决此问题。”&#xff0c;这一般是什么原因导致了这个问题&#xff0c;我们要如何解决? 原因&#xff1a; vcruntime140_1.dll文件即动…

【推荐】9款适合中小企业的知识库管理系统

一、什么是知识库管理系统 知识库管理系统&#xff08;Knowledge Base Management System, KBMS&#xff09;&#xff0c;又称数字资产管理系统&#xff08;Digital Asset Management System&#xff09;&#xff0c;是专门用于管理企业知识文档、图纸、视频、音频等信息内容的…

中级测试工程师面试题

很多软件测试工程师在面试的时候都会遇到考官给的各种各样的面试题&#xff0c;这也反应了测试工程师对企业的重要性&#xff0c;面试通常分为以下几个方面&#xff0c;由于篇幅有限&#xff0c;在这里就只给大家分享一些比较常见的问题。 一、自我介绍 这里我不分享如何自我介…

FPGA——VGA协议

VGA协议 VGA简介接口及引脚定义显示原理显示电路原理VGA协议电压标准数字信号转化标准模拟信号方案数字信号时序标准 模块设计 VGA简介 VGA&#xff0c;英文全称“Video Graphics Array”&#xff0c;译为视频图形阵列&#xff0c;是一种使用模拟信号进行视频传输的标准协议&a…

观测云广告全国登陆,携手华为云引领企业迈向数智化新纪元

随着数字化转型的浪潮席卷全球&#xff0c;企业如何紧跟时代步伐&#xff0c;实现转型升级&#xff0c;已成为业界热议的焦点。华为云828 B2B企业节&#xff0c;作为业界瞩目的年度盛事&#xff0c;已于8月27日在贵阳盛大开幕。与此同时&#xff0c;观测云与华为云强强联手&…

基于 web教学管理系统设计与实现

3 总体设计 3.1 系统软件体系结构 系统采用B/S结构&#xff0c;统一管理数据库和Web服务器。在这种结构下&#xff0c;用户界面完全通过WWW浏览器实现&#xff0c;一部分事务逻辑在前端实现&#xff0c;但是主要事务逻辑在服务器端实现&#xff0c;形成所谓3-tier结构,第一…

沈阳网站建设手机能看的网站

在当今信息化的时代&#xff0c;网站已经成为企业展示形象、推广产品和服务的重要工具。尤其是在中国的沈阳&#xff0c;随着智能手机的普及&#xff0c;越来越多的用户选择通过移动设备浏览网站。因此&#xff0c;建设一个能够在手机上良好展示的网站显得尤为重要。本文将探讨…

vivado中定点类型Binary point的含义

vivado中&#xff0c;ILA或仿真波形显示的定点数&#xff0c;可以设置为有符号或无符号数&#xff0c;其中小数点位置通过Binary point设置&#xff0c;这个设置的数值&#xff0c;表示小数点后的二进制位数 参考&#xff1a; https://people-ece.vse.gmu.edu/coursewebpages/E…

【pandas2】表格数据的行列操作、查询指定的数据内容、数据类型处理、 缺失值处理和透视表、分组与聚合、数据的纵向合并(扩展数据)、数据的横向合并(连接表)

1 表格数据的行列操作 2 查询指定的数据内容 3 数据类型处理 4 缺失值处理 5 透视表 6 分组与聚合 7 统计NBA夺冠次数 8 数据的纵向合并(扩展数据) 9 数据的横向合并(连接表) 1 表格数据的行列操作 # 增 df[info] 这些车都很好 df[desc] df[Sec_price] * df[Km(W)] df.inser…

深度解读SGM41511电源管理芯片I2C通讯协议REG0B寄存器解释

REG0B 是 SGM41511 的第十二个寄存器 也是最后一个寄存器&#xff0c;地址为 0x0B。这个寄存器包含了只读&#xff08;R&#xff09;和可读写&#xff08;R/W&#xff09;的位。上电复位值&#xff08;PORV&#xff09;为 000101xx&#xff0c;其中 x 表示不确定的初始状态。这…

实时数仓,站上产业潮头

在这场新的数据驱动战场里&#xff0c;谁能更好的对数据进行智能、准确、迅速、高性价比的体系化处理&#xff0c;谁能以更低的成本、更高效的能力构建底层的PaaS、IaaS组件&#xff0c;谁就能在如今的市场竞争中构建更具竞争力的业务模型&#xff0c;成为新的弄潮儿。 对Byt…

C#开发中ImageComboBox控件数据源实时变换

在C#开发中&#xff0c;我们如何将控件的数据源实时变换&#xff0c;当然我们可以在窗口实例化的时候指定固定的数据源&#xff0c;但是这样对于用户来说数据源永远固定&#xff0c;并不利于我们对于用户的数据存储&#xff0c;优化用户的操作&#xff0c;遇到这种问题&#xf…

模拟登录页,华为账号一键登录

一、介绍 基于鸿蒙Next模拟账号一键登录&#xff0c;免去账号注册环节二、场景需求 1. 用户场景 新用户&#xff1a; 需要快速注册并登录&#xff0c;以体验华为的服务。 老用户&#xff1a; 希望快速登录&#xff0c;不用每次输入用户名和密码。 2. 界面设计 Logo和标题&#…