JS需掌握知识点1

本文详细讲解了JavaScript中的变量声明,包括let、var和const的区别,强调了let的块级作用域和防止变量提升的特性。此外,还介绍了正则表达式的基本用法和修饰符,以及闭包的概念和应用场景。最后讨论了事件处理中的冒泡和捕获机制,以及如何阻止冒泡。
摘要由CSDN通过智能技术生成

引入方式

标签内嵌、直接使用、外部引用

  1. HTML标签中内嵌JavaScript
<button onclick="JavaScript('点击出现的文字')">点击这里!</button>
  1. HTML页面中直接使用JavaScript
<script>
//要写的代码
</script>
  1. 外部引入JavaScript
<script src="此处为文件地址"></script>

let var const

let关键字 他声明的变量作用域只在循环体内,循环体外的变量不受影响
var关键字 他声明的变量是全局的,包括循环体内与体外

一、var let 区别

1.let和const不存在变量提升机制,而var存在;

  • var 定义变量,可以在未定义前访问
  • let定义变量,必须先定义,后访问
    创建变量的六种方式中:var/function有变量提升,而let/const/class/import不存在

2.var允许重复声明,而let不允许重复声明

  • 如果使用var/function关键词声明变量并且重复声明,没有影响(之后再遇到的不会重复声明)

  • let/const浏览器会校验当前作用域中是否已存在这个变量,再次声明会报错

3.作用域不同:var为全局变量,let定义块级作用域

  • var定义的变量作用域仅限于该变量的代码块中
  • Let定义的变量作用域为定义该函数范围中或者为全局的范围

ES5只有全局作用域和函数作用域,没有块级作用域,会有很多不合理场景
ES6中let实际上为JS新增了块级作用域

二、let const

const关键字定义常量,该关键字可定义一个或多个常量,定义时必须进行初始化,且初始化后值不可再改变

改变方法:

但是定义的引用类型中的数组与对象可以通过修改对象属性改变;如果是声明了数组,数组里面的值也是可以修改的,可以修改常量数组,不可以进行重新赋值。数组被定义为常量也是不受保护的,一般不建议声明数组。

  • 声明对象:

在这里插入图片描述

  1. 声明数组

在这里插入图片描述
在这里插入图片描述
语法“const 变量名=值;”或“const 变量名1=值1,变量名2=值3,…,变量名n=值n;”。

相似点:

  1. 两者都是块级作用域
  2. 都不能和它所在作用域内的其他变量或函数拥有相同的名称

改变方法:

  • const声明的常量必须初始化,而let声明的变量不用

  • const定义常量的值不能通过再赋值修改,也不能再次声明。而let定义的变量值可以修改。

变量提升

  • 变量声明提升:var声明语句,在声明和赋值之前可以被访问到,返回值是underfined
  • 函数声明提升:function声明的函数,可以在声明之前调用该函数(不推荐)
  • 函数表达式声明的变量提升:等同于变量提升,声明语句之后可以调用该函数
    链接: JavaScript 声明提升 | 菜鸟教程 (runoob.com)

变量提升:

当浏览器开辟出供代码执行的占内存后,代码并没有自上而下立即执行,而是继续做了一些事情:把当前作用域中所有带var/function关键字的进行提前的声明和定义。

console.log(a);//underfined
var a=qq;
//输出underfined
//相当于下面的代码
var a;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值