当前位置: 首页 > article >正文

ECMAScript 变量

文章目录

  • 前言
  • 一、ECMAScript 变量
  • 二、var 关键字
    • 1、var 声明作用域
    • 2、var 声明提升(hoist)
  • 三、let 关键字
  • 四、const 关键字
  • 🔰 总结


前言

任何语言的核心所描述的都是这门语言在最基本的层面上如何工作,涉及 语法、操作符、数据类型以及内置功能,在此基础之上才可以构建复杂的解决方案。


一、ECMAScript 变量

ECMAScript 变量松散类型 的,意思是变量可以用于保存任何类型的数据。每个变量只不过是一个用于保存任意值的命名占位符。有 3 个关键字可以声明变量:varconstlet 。其中,var 在 ECMAScript 的所有版本中都可以使用,而 constlet 只能在 ECMAScript 6 及更晚的版本中使用。

什么是 松散类型 ??
松散类型 也称为 动态类型弱类型,具体来说,ECMAScript的松散类型系统具有以下特点:

【1】变量可以存储任何类型的数据: 在ECMAScript中,你可以将字符串、数字、布尔值、对象、数组、函数甚至 undefined 和 null 赋给同一个变量,而不需要进行任何类型声明或转换。


【2】自动类型转换: 尝试将一个数字和一个字符串相加时,数字会被转换成字符串,然后执行字符串连接操作。


【3】动态的对象属性: 在ECMAScript中,对象的属性名可以是字符串或符号,并且对象的属性可以在运行时动态地添加或删除。这意味着你可以在不修改对象原始定义的情况下,改变对象的行为或存储的数据。


【4】函数的多态性: ECMAScript中的函数可以接受任何类型的参数,并且这些参数在函数内部可以根据需要进行类型转换。


二、var 关键字

定义变量,可以使用 var 操作符(注意 var 是一个关键字),后跟变量名(即标识符), 如下:

var msg; 

上面这行代码定义了一个名为 msg 的变量,可以用它保存任何类型的值。
⚠️ 注意:像这样不初始化的情况下,变量会保存一个特殊值 undefined

ECMAScript 也支持直接初始化变量,因此在定义变量的同时就可以设置变量的值:

var msg = "hello"; 

msg 被定义为一个 保存字符串值 hello 的变量。像这样初始化变量不会将它标识为字符串类型,只是一个简单的赋值而已。随后,不仅可以改变保存的值,也可以改变值的类型

var msg = "hello"; 
msg = 100; // 有效,但不推荐

⚠️ 注意:虽然不推荐改变变量保存值的类型,但这在 ECMAScript 中是完全有效的。

1、var 声明作用域

有一点我们在开发过程中必须注意,即使用 var 操作符 定义的变量 会成为包含它的函数的局部变量
比如,使用 var 在一个函数内部定义一个变量,就意味着该变量将在函数退出时被销毁:


                

http://www.kler.cn/a/463789.html

相关文章:

  • Vue项目中生成node_modules文件夹的两种常用方法及npm优势
  • 如何利用 ClickHouse 实现高级分析:MySQL 到 ClickHouse 实时数据同步指南
  • STM32G431收发CAN
  • ROS导航使用贝塞尔曲线对全局路径进行平滑处理
  • cka考试-02-节点维护
  • JavaScript的基础知识
  • 纯血鸿蒙ArkUI按钮组件详解
  • 【每日学点鸿蒙知识】WebView代理、2D绘制矩形圆角、TextInput清理按钮、pdf滑动、icon配置问题
  • [算法] [leetcode-324] 摆动排序 II
  • 【C#】C#打印当前时间以及TimeSpan()介绍
  • uniapp——App下载文件,打开文档(一)
  • DeepSeek LLM通过长期主义扩展开源语言模型
  • python基础004--flask
  • python实现自动登录12306抢票 -- selenium
  • JavaSpring AI与阿里云通义大模型的集成使用Java Data Science Library(JDSL)进行数据处理
  • 上传第三方jar包到maven私服仓库的两种方法
  • 逆向生成原理
  • CSS系列(40)-- Container Queries详解
  • 第8章 汇编语言--- 循环结构
  • SQL语句 相关学习
  • 接口测试Day04-postman生成测试报告ihrm项目
  • 深度剖析 Android Animation 框架
  • android10 audio音量曲线
  • SpringBoot 新特性
  • 使用Windows和FFmpeg 将https://xxx.com/xx.m3u8 推流到B站
  • 二十三种设计模式-建造者模式