首页 > 编程语言 >JavaScript之this、let、const关键字

JavaScript之this、let、const关键字

时间:2023-01-30 21:00:41浏览次数:40  
标签:const 作用域 JavaScript 关键字 let var 声明

各场景下的this

this的意思:百度翻译为:这、这么、本

在JavaScript中,表示当前对象的引用关键字,没有特殊含义。

在一个方法中,this表示该方法所属的对象。

如果单独使用,this表示全局对象。

在函数中,this表示全局对象。如果为严格模式,this为undefined。

在事件中,this表示接受事务的对象。

例:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title>JavaScript之this关键字</title>
 6     </head>
 7     <body>
 8         <h1>javascript <b>this</b>关键字</h1>
 9         <p id="demo"></p>
10         <script>
11             // 创建对象
12             var person={
13                 firstName: "John",
14                 lastName: "Doe",
15                 id: "1112",
16                 fullName:function (){
17                     return this.firstName+""+this.lastName;
18                 }
19             }
20             // 回显对象数据
21             document.getElementById("demo").innerHTML=person.fullName();
22         </script>
23     </body>
24 </html>

注意:在对象中的方法名格式为方法名:function(){

一些代码

}

let关键字

let声明的变量只在其所在代码块中生效。

const声明一个只读变量,一但声明,变量值就不能改变。

全局变量:

在函数外声明的变量都是全局变量,全局变量在JavaScript程序的任何地方都可以访问。

1 var carName = "Volovo"
2 //这里声明全局变量,并可以访问
3 function myFunction(){
4 //这里也可以访问全局变量
5 
6 }

 

局部变量:

在函数内部声明的变量只能在函数内部访问。

// 这里不能使用 carName 变量
 
function myFunction() {
    var carName = "Volvo";
    // 这里可以使用 carName 变量
}
 
// 这里不能使用 carName 变量

注:函数内使用var声明的变量则是局部变量,只能在函数内访问,不适用var声明的则是全局变量。

 

let声明的变量只能在let代码块所在的{}中有效,在{}外不能访问。

 

在相同的作用域或块级作用域中,不能使用 let 关键字来重置 var 关键字声明的变量:

1 var x = 2;       // 合法
2 let x = 3;       // 不合法
3 
4 {
5     var x = 4;   // 合法
6     let x = 5   // 不合法
7 }

在相同的作用域或块级作用域中,不能使用 let 关键字来重置 let 关键字声明的变量:

1 let x = 2;       // 合法
2 let x = 3;       // 不合法
3 
4 {
5     let x = 4;   // 合法
6     let x = 5;   // 不合法
7 }

let 关键字在不同作用域,或不同块级作用域中是可以重新声明赋值的:

1 let x = 2;       // 合法
2 
3 {
4     let x = 3;   // 合法
5 }
6 
7 {
8     let x = 4;   // 合法
9 }

const关键字

constant:常数

const用于声明一个或者多个常量,声明时必须进行初始化,且初始化后不能修改。

1 const PI = 3.141592653589793;
2 PI = 3.14;      // 报错
3 PI = PI + 10;   // 报错

const关键字和let类似,都是块级作用域,都不能在相同的作用域的其他变量或函数同名、

不同点:const声明的常量必须初始化,let声明的变量不用;

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

1 // 错误写法
2 const PI;
3 PI = 3.14159265359;
4 
5 // 正确写法
6 const PI = 3.14159265359;
1 var x = 10;
2 // 这里输出 x 为 10
3 { 
4     const x = 2;
5     // 这里输出 x 为 2
6 }
7 // 这里输出 x 为 10

const并非真正的常量,它定义一个常量引用一个值。使用const定义的数组或对象, 是可以改变的。

1 // 创建常量对象
2 const car = {type:"Fiat", model:"500", color:"white"};
3  
4 // 修改属性:
5 car.color = "red";
6  
7 // 添加属性
8 car.owner = "Johnson";

但不能对常量重新赋值:

st car = {type:"Fiat", model:"500", color:"white"};

car = {type:"Volvo", model:"EX60", color:"red"}; // 错误

 

标签:const,作用域,JavaScript,关键字,let,var,声明
From: https://www.cnblogs.com/wenzm/p/17077229.html

相关文章

  • javawebServlet
    javawebhttp响应服务器--响应--客户端Accept:告诉浏览器它所支持的数据类型Accept-Encoding:支持那种编码格式GBKUTF-8GB2312ISO8859-1Content-Type:text......
  • javaScript一个数组对象根据另一个数组排序
    varlist=[{name:'上海',code:'shanghai',},{name:'西安',code:'xian'},{name:'深圳',code:'shenzhen'},{name:'北京',code:'beijing'}];list......
  • JavaScript学习笔记—DOM之文本节点
    在DOM中,文本内容也是一个节点对象(Text),可以通过获取文本对象然后完成对它的各种操作,但这种做法会使得事情变得复杂,并不建议这么做。在大部分场景下,可以通过元素的属性来操作......
  • Listener概述以及ServletContextListener使用
    Listener概述Listener:监听器事件:一件事情事件源:事件发送的地方监听器:一个对象(一段代码)注册监听:将事件,事件源,监听器绑定在一起,当事件源上发送某个事件......
  • [Typescript 5.0] const Type Parameters with readonly
    https://devblogs.microsoft.com/typescript/announcing-typescript-5-0-beta/#exhaustive-switch-case-completions Intheexamplecode:typeHasNames={names:r......
  • Servlet+MySQL
    前后端调通后可以把数据存到数据库里了1.下载并配置SQLWindows中MySQL8详细安装教程2.netstart/stopmysql启动/关闭mysql,在管理员身份下运行3.mysql的可视化软件......
  • JavaScript 前端大文件上传
    ​对于大文件的处理,无论是用户端还是服务端,如果一次性进行读取发送、接收都是不可取,很容易导致内存问题。所以对于大文件上传,采用切块分段上传,从上传的效率来看,利用多线程......
  • ServletContext与静态变量(static)的区别,数据库连接池放在哪里
    这种是放在static中,03_用servlet、request和Druid技术写登录案例   java——数据库连接池——druid_基本使用这是放在ServletContext中,使用ServletContext缓存数据源......
  • javascript基础
    一。JavaScript使用场景1.改变内容getElementById()是多个JavaScriptHTML方法之一,使用该方法查找元素ID,并且可以使用(innerHTML)属性改变元素的内容2.改变HTML属性......
  • Learning JavaScript Async Await In Depth All In One
    LearningJavaScriptAsyncAwaitInDepthAllInOne深入学习AsyncAwaitconsturl=`https://cdn.xgqfrms.xyz/json/cats.json`;constgetJSON=async(url)......