JavaScript中变量的声明、作用域、基本数据类型笔记

变量声明

在JavaScript中,你可以使用var、let或const关键字来声明变量:

  • var:是最传统的声明方式,它声明的变量可以是局部的(如果在函数内部声明)或全局的(如果在函数外部声明)。var声明的变量存在变量提升现象,意味着变量可以在声明之前被引用。
  • let:是ES6引入的,支持块级作用域(block scope),即变量仅在声明它的块或子块中可用。
  • const:同样是ES6引入的,用于声明常量。一旦声明,其值就不能改变,并且必须在声明时初始化。const也支持块级作用域。

作用域

  • 全局作用域:在函数外部声明的变量是全局变量,它们在代码的任何地方都是可访问的。
  • 函数作用域:使用var在函数内部声明的变量,其作用域被限制在该函数内部,外部无法访问。
  • 块级作用域:使用let和const声明的变量,其作用域被限制在声明它们的块(如循环、条件语句等)及其子块内部。

注意事项

  • 变量命名:避免使用JavaScript保留字,推荐使用驼峰命名法。
  • 避免全局变量:尽量减少全局变量的使用,以避免潜在的命名冲突和可维护性问题。
    使用const和let:鉴于var的一些设计问题(如变量提升和非块级作用域),推荐使用let和const进行变量声明,以利用它们的块级作用域特性和更清晰的语义。
  • 初始化常量:使用const声明常量时,必须同时初始化,因为其值后续不能更改。

基本数据类型

JavaScript有以下几种基本数据类型:

  • Number:用于表示整数或浮点数。JavaScript中没有整数和浮点数的区别,它们都是Number类型。特殊的数值包括Infinity、-Infinity和NaN(不是一个数字)
  • String:用于表示文本数据,即字符序列。字符串可以使用单引号、双引号或反引号(ES6中的模板字符串)来创建
  • Boolean:表示逻辑值true或false
  • Undefined:当一个变量被声明但没有被赋值时,它的值是undefined
  • Null:表示一个空值或不存在的值。它是一个表示“无”的原始值
  • Symbol(ES6中新增):表示唯一的、不可变的数据值,常用作对象属性的键
  • BigInt(ES2020中新增):用于表示大于2^53 - 1的整数

复合数据类型

  • Object:表示一个实体,可以包含多个键值对或复杂的实体。对象可以是普通对象、数组、函数、日期等
  • Array:一种特殊的对象,用于存储有序的数据集合
  • Function:函数实际上是可调用的对象,它执行一段代码块

特殊数据类型

  • UndefinedNull被视为特殊的数据类型,它们各自只有一个值:undefinednull

类型转换

  • JavaScript是一种弱类型语言,它允许在操作涉及不匹配类型时进行隐式类型转换。例如,当数字与字符串相加时,数字会被转换为字符串

运算符

JavaScript提供了多种运算符来执行数学运算、比较运算、逻辑运算等:

  • 算术运算符:如加(+)、减(-)、乘(*)、除(/)等
  • 比较运算符:如等于(==)、不等于(!=)、严格等于(===)、严格不等于(!==)、大于(>)、小于(<)等;
  • 逻辑运算符:如逻辑与(&&)、逻辑或(||)、逻辑非(!)等
  • 赋值运算符:如简单赋值(=)、加赋值(+=)、减赋值(-=)等
  • 字符串运算符:加号(+)也可以用来连接字符串
  • 条件(三元)运算符:格式为condition ? exprIfTrue : exprIfFalse,根据条件返回两个表达式中的一个
  • 注: 在JavaScript中,=====都是比较运算符,但它们在比较值时的行为不同:

==(等于):这是相等运算符,它在比较两个值时会进行类型转换(如果比较的值不是同一类型)。这意味着在比较之前,如果两个值的类型不同,JavaScript会尝试将它们转换为相同的类型,然后进行比较。例如,0 == '0’会返回true,因为字符串’0’会被转换为数字0,然后进行比较
===(恒等于):这是严格相等运算符,它在比较两个值时不会进行类型转换。如果两个值的类型不同,那么这两个值就被认为是不相等的,即使它们的值在进行类型转换后可能相等。例如,0=== '0’会返回false,因为一个是数字类型,另一个是字符串类型,不进行类型转换直接比较,它们不相等

类型检测

可以使用typeof运算符来检测一个变量的数据类型。但是,对于null来说,typeof null会返回"object"。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值