1、let、const、var区别、解构赋值、新增字符串语法、数组方法、网址组成

一、let、const、var的区别*

1、let和var的区别

  • 相同点: 在全局声明的就是全局变量,在局部声明的变量是局部变量
  • 不同点(4条):
    • let声明的变量不能提升
    • let声明的变量名不能重复声明
    • let声明的变量只在当前的块作用域中有效 { }
    • let声明的变量会产生暂时性的死区,只能在当前块作用域中查找
if(false){var num = 20let num1 = 20
}
console.log(num)//undefined
console.log(num1)//报错   块作用域

2、const(6条)

  • const声明的变量必须赋初值
    const name_1 = ''
  • const声明的变量是常量不能发生改变
const name_1  = ''
name_1 = "1s"
console.log(name_1)//会报错
  • const声明的变量不能提升
  • const声明的变量不能重复声明
  • const声明的变量只在当前块作用域有效
  • const声明的变量会产生暂时性的死区,只能在当前块作用域中查找

二、解构赋值

  • 把数组中的元素,字符串中的字符,对象中的属性分解成一个一个变量

1、数组结构赋值

完全解构

let [x, y, z] = [10, 20, 30]
console.log(x, y, z)//10 20 30

不完全解构

let [m, n, l] = [40, 50]
console.log(m, n, l)//40 50 undefined

赋初值

let [m, n, l = 60] = [40, 50,10]//10的优先级高
console.log(m, n, l);//40 50 10

嵌套

let [q, w, [e, r, t = 't']] = ['q', 'w', ['e', 'r']]
console.log(q, w, e, r, t);// q w e r t

2、字符串的解构赋值

let str = '我们是web31期,我们都是好孩子'
let [a, b, c, d] = str
console.log(a, b, c, d);//我们是w
console.log(str[1]);//们
console.log(str.substr(1, 1));//们
console.log(str.substring(1, 2));//们
console.log(str.slice(1, 2));//们
console.log(str.charAt(1));//们

3、对象的解构赋值

let obj = {name: 'zs',age: 18,sex: '男'
}

完全解构

let { name, age, sex } = obj
console.log(name, age, sex);//zs 20 男

不完全解构

console.log(obj.age);//20
const { age } = obj
console.log(age);//20

赋初值

var { name, age = 20 } = { name: 'ls' }
console.log(name, age);//ls 20

4、解构赋值的作用(3条)

交换两个变量

var x = 10
var y = 20
var [y, x] = [x, y]

让函数有多个返回值

function fn(x, y){return [x, y]
}
var [x, y] = fn(10, 20)
console.log(x, y)//10  20

解决形式参数undefined的问题

  • 自己的值优先级会高于形参的
function fn_1({ age = 20 }){console.log(age)
}
fn_1({ age: 30 })//30 

三、ES6新增的字符串的语法

1、模板字符串

  • ${变量/函数的调用},用反引号包起来
let str_1 = `我叫${person.name},我的性别是:${person.getSex()}`
console.log(str_1);//我叫zyf,我的性别是女

2、方法

let str1 = "web31期"

repeat( )函数

  • 将目标字符串重复N次,返回一个新的字符串,不影响目标字符串
let str2 = str1.repeat(3)
console.log(str2);//web31期web31期web31期

includes()

  • 判断字符串中是否含有指定的子字符串,返回true表示含有和false表示未含有
console.log(str1.includes("1"));//true
console.log(str1.includes("2"));//false

startsWith()

  • 判断指定的子字符串是否出现在目标字符串的开头位置
console.log(str1.startsWith("web"));//true
console.log(str1.startsWith("b"));//false

endsWith()

  • 判断子字符串是否出现在目标字符串的尾部位置
console.log(str1.endsWith("期"));//true
console.log(str1.endsWith("1"));//false

String.raw()

  • 返回字符串最原始的样貌,即使字符串中含有转义符,它都视而不见(了解)
let str3 = "hello\nword"
console.log(str3);  //换行输出
console.log(String.raw`hello\nword`);//不换行

四、ES6中新增的数组的用法

1、Array.of()

  • 作用:将一组值,转换成数组。
  • 与数组的解构赋值正好相反
var x = 1, y = 2, z = 3, m = 4
var arr1 = Array.of(x, y, z, m);
console.log(arr1);//输出数组

Array.from()

  • 作用:以将类似数组的对象或者可遍历的对象转换成真正的数组。
var liList = document.getElementsByTagName("li")
console.log(liList);//伪数组 HTMLCollection(3) [li, li, li]
liList=Array.from(liList)
console.log(liList);//真正数组 [li, li, li]

find函数

  • :找出数组中符合条件的第一个元素。
let arr2 = [1, 2, 3, 4, 5]
var num1 = arr2.find(function (value) {return value > 4//布尔型
})
console.log(num1);//5

findIndex函数

  • 作用:返回符合条件的第一个数组成员的位置。
var index = arr2.findIndex(function (value) {return value > 3;
})
console.log(index);//3

fill(x,y,z)

  • 包括三个参数 x:所填充的数字 y:第几个开始 z:到第几个结束(不包括z)
  • 作用:用指定的值,填充到数组。会改变原数组
var newArr2 = arr2.fill(6,1,2);
console.log(newArr2);// [1, 6, 3, 4, 5]
console.log(arr2);// [1, 6, 3, 4, 5]

entries()

  • 作用:对数组的键值对进行遍历,返回一个遍历器

  • 通过for of进行遍历

for (let [index, value] of arr3.entries()) {
console.log(`我是第${index + 1}个元素,我的值是${value}`);
console.log(arr3);}

keys()

  • 作用:对数组的索引键进行遍历,返回一个遍历器。
for (let index of arr3.keys()) {console.log(index);
}

values()

  • 作用:对数组的元素进行遍历,返回一个遍历器。
for (let value of arr3.values()) {console.log(value);
}

五、var let练习

//有2个div,遍历,给每个div添加点击事件,输出值,
for (var i = 0; i < list.length; i++) {list[i].onclick = function () {console.log(i);//2 2}
}
for (let i = 0; i < list.length; i++) {list[i].onclick = function () {console.log(i);//0 1}
}

六、数组练习

const list = [//数组内置对象{ id: 3, name: "张三丰" },{ id: 5, name: "张无忌" },{ id: 13, name: "杨逍" },{ id: 33, name: "殷天正" },{ id: 12, name: "赵敏" },{ id: 97, name: "周芷若" },
]
//所有姓杨的人
let arr_1 = list.filter(function (item, index) {return item.name.startsWith("杨")
})
console.log(arr_1);
//所有包含天这个字的人
let arr_2 = list.filter(function (item, index) {return item.name.includes("天")
})
console.log(arr_2);
//找到周芷若的id
let arr_4 = list.find(function (item, index) {return item.name === "周芷若"
}).id
console.log(arr_4);

七、网址的组成

  • 协议( http https )
  • 主机 ( 域名 ip(公网ip 局域网ip))
  • 端口号(80 8080)
  • 路径
  • 参数

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

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

相关文章

如何使用宝塔面板搭建Discuz并结合cpolar实现远程访问本地论坛

文章目录 前言1.安装基础环境2.一键部署Discuz3.安装cpolar工具4.配置域名访问Discuz5.固定域名公网地址6.配置Discuz论坛 前言 Crossday Discuz! Board&#xff08;以下简称 Discuz!&#xff09;是一套通用的社区论坛软件系统&#xff0c;用户可以在不需要任何编程的基础上&a…

第3部分 原理篇3可验证凭证(VC)(2)

3.3.3. 可验证凭证生态 3.3.3.1. 生态中的角色和概念 本聪老师&#xff1a;问大家个问题&#xff0c;我们生活中常见的实物凭证包括哪些信息&#xff1f; 小天&#xff1a;以身份证为例&#xff0c;包括姓名、性别、出生年月、住址等个人信息&#xff0c;还有发证部门&#…

【嵌入式——QT】Model/View

【嵌入式——QT】Model/View 基本原理数据模型视图组件代理Model/View结构的一些概念QFileSystemModelQStringListModelQStandardItemModel自定义代理 基本原理 GUI应用程序的一个很重要的功能是由用户在界面上编辑和修改数据&#xff0c;典型的如数据库应用程序&#xff0c;数…

重学SpringBoot3-@EnableConfigurationProperties注解

重学SpringBoot3-EnableConfigurationProperties注解 1. 引言2. EnableConfigurationProperties 的作用3. 使用示例4. 总结 1. 引言 Spring Boot 提供了一种便捷的方式来管理和校验应用程序的配置&#xff0c;即通过类型安全的配置属性。EnableConfigurationProperties 注解在…

企业微信HOOK接口Dll调用(4.1.16.6002版本)

产品说明 一、 hook版本&#xff1a;企业微信hook接口是指将企业微信的功能封装成dll&#xff0c;并提供简易的接口给程序调用。通过hook技术&#xff0c;可以在不修改企业微信客户端源代码的情况下&#xff0c;实现对企业微信客户端的功能进行扩展和定制化。企业微信hook接口可…

pycharm 自定义TODO类注释以及其高亮颜色

大体介绍 使用自定义TODO是为了方便看&#xff0c;并且快速定位到位置 上面是为了进行标记&#xff0c;下面是让哪些标记可以过滤掉&#xff08;自定义过滤规则&#xff09;&#xff0c;从而在pycharm下面的TODO可以显示并过滤 如何设置&#xff1f; Setting-Preferences-Ed…

练习 5 Web [GXYCTF2019]BabyUpload

[GXYCTF2019]BabyUpload 猜测直接上传txt会被过滤&#xff0c;提示“上传类型也太露骨了吧&#xff01;”按经验传入一个"muma.phtml" 提示过滤了“ph”相关的后缀 传入muma.jpg等图像格式&#xff0c;提示表明复原并检测了文件内容 审查文件后缀Context-type 不能…

深度学习评价指标

目标检测: 对于每一个预测得到的框&#xff0c;看它的三个指标&#xff0c;分别是与哪个预测框的相交&#xff0c;分数是多少&#xff0c;相交IOU是多少。 计算每个分数的P和R。 TP(True Positive):IOU >0.5的检测框数量 FP(False Postive):IoU <0.5的检测框数量 FN(…

【北京迅为】《iTOP-3588开发板网络环境配置手册》第3章 开发板直连电脑配置方法(不能上外网)

RK3588是一款低功耗、高性能的处理器&#xff0c;适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用&#xff0c;RK3588支持8K视频编解码&#xff0c;内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP&…

2024 年 AI 辅助研发趋势:从研发数字化到 AI + 开发工具 2.0,不止于 Copilot

在上一年里&#xff0c;已经有不少的企业在工具链上落地了生成式 AI&#xff0c;结合我们对于这些企业的分析&#xff0c;以及最近在国内的一些 “新技术” 趋势&#xff0c;诸如于鸿蒙原生应用的初步兴起。从这些案例与趋势中&#xff0c;我们也看到了一些新的可能方向。 结合…

【 HTML 及浏览器 】DOM 树

“人生如同弓弦&#xff0c;经历拉扯才能发出激越的音响。在坎坷的拉扯中&#xff0c;用坚定的力量拉近梦想的弓弦&#xff0c;让每一次的发声都是生命的高潮。” - 约瑟夫康拉德 DOM树&#xff1a;构建动态网页的骨架 在互联网的世界里&#xff0c;网页就像是一个个生动的故事…

关于报考NISP二级的紧急通知

为规范NISP二级报考条件和CISP证书换证标准&#xff0c;根据中国信息安全测评中心最新通知&#xff0c;即日起NISP二级仅限全日制在校大学生报考&#xff0c;报名时必须同步提供学信网在籍证明图。 NISP二级被誉为“校园版CISP”&#xff0c;是网络行业的通行证&#xff0c;计算…

哪里下载Mac上最全面的系统清理工具,CleanMyMac X4.15中文版永久版资源啊

哪里下载Mac上最全面的系统清理工具&#xff0c;CleanMyMac X4.15中文版永久版资源啊&#xff0c;CleanMyMac X4.15中文版是一款全面的Mac系统优化工具。它能够扫描、检测并清理不需要的文件和应用程序&#xff0c;优化内存使用和磁盘空间&#xff0c;提高Mac的性能表现。此外&…

xinput1_3.dll丢失都有什么办法可以有效的解决、xinput1_3.dll导致游戏不能启动怎么办?

使用电脑的过程中是不是会遇到关于某个dll文件丢失的提示&#xff0c;今天想和大家聊的是xinput1_3.dll文件&#xff0c;如果电脑提示xinput1_3.dll丢失有什么办法可以有效的解决&#xff0c;解决办法都有哪些&#xff0c;如果xinput1_3.dll丢失会对电脑有什么影响。&#xff0…

【Web】浅聊Java反序列化之Spring1链——三层动态代理

目录 影响版本&#xff1a; 利用链 漏洞之sink&#xff1a;MethodInvokeTypeProvider#readObject 动态代理在反序列化中的应用 让provider.getType()返回一个动态代理对象——打破桎梏 桥梁——ObjectFactoryDelegatingInvocationHandler 小结 EXP ​前文&#xff1a;【…

【异常处理】使用雪花算法的id出现的精度问题

雪花算法产生的id传到前端出现了精度的问题 现象 表的ID主键使用Mybatis plus默认 的雪花算法来生成。 数据库id是bigint类型&#xff0c;后端用Long 后端的id是—> 1297873308628300000 传到前端后—> 1297873308628307970 解决方案1&#xff1a; 直接用注解最快…

力扣hot100:239.滑动窗口最大值(优先队列/单调队列)

本题是一个经典的单调队列题。不过用优先队列也能解决。 一、优先队列 在使用优先队列时&#xff0c;我们会遇到这样的问题&#xff1a;如何将一个目标数从优先队列中弹出&#xff1f;如果使用stl这是办不到的&#xff0c;虽然可以自行实现这样的功能。但是我们可以这样思考&am…

VSCode安装教程(版本:1.87.0)Windows10

安装完Python后&#xff0c;我们即可在自己的电脑上开始学习Python编程。在此之前&#xff0c;我们需要一个代码编辑器&#xff0c;此处我推荐的是Visual Studio Code&#xff08;简称VS Code&#xff09;。可能你会好奇&#xff0c;Python安装时不是自带了一个代码编辑器吗&am…

学习JAVA的第十五天(基础)

目录 数据结构 二叉树 二叉查找树 平衡二叉树 红黑树 Set系列集合 HashSet集合 LinkedHashSet集合 TreeSet集合 前言&#xff1a;学习JAVA的第十四天&#xff08;基础&#xff09;-CSDN博客 数据结构 二叉树 元素&#xff1a;结点&am…

html兼容性问题都有什么;如何解决

HTML兼容性问题是在不同浏览器或设备上显示网页时可能出现的不一致或错误的情况。以下是一些常见的HTML兼容性问题及解决方法的详细讲解&#xff1a; 标签解析不一致&#xff1a; 不同浏览器对HTML标签的解析方式可能有所不同&#xff0c;导致显示效果不一致。为了解决这个问题…