js中的数据类型

JavaScript 中有以下几种常见的数据类型:

  1. 基本类型(原始类型):

    • 字符串(String):表示文本数据。
    • 数字(Number):表示数值数据。
    • 布尔(Boolean):表示真(true)或假(false)值。
    • undefined:表示未定义的值。
    • null:表示空值或没有值。
  2. 引用类型:

    • 对象(Object):表示复杂的数据结构,包括对象、数组、函数等。
    • 数组(Array):表示有序的集合。
    • 函数(Function):表示可被调用的代码块。
    • 日期(Date):表示日期和时间。
    • 正则表达式(RegExp):表示用于匹配字符串的模式。

除了以上列出的数据类型外,JavaScript 中还有一些特殊的数据类型,例如 Symbol(表示唯一的标识符)和 BigInt(表示任意精度的整数)。

需要注意的是,JavaScript 是一种动态类型语言,变量的数据类型是在运行时确定的,可以随时根据需要改变变量的类型。

另外,可以使用 typeof 运算符来检查一个值的数据类型。例如,typeof "hello" 返回 “string”,typeof 42 返回 “number”。但是需要注意 typeof null 的返回值是 “object”,这是一个历史遗留问题。

在js中定义一个数字

在 JavaScript 中,可以使用数字字面量来定义一个数字。数字字面量可以是整数或小数,并且可以使用科学计数法表示非常大或非常小的数。

以下是定义数字的几种方式:

// 整数
let a = 123;// 小数
let b = 3.14;// 科学计数法
let c = 6.02e23; // 6.02乘以10的23次方,即 6.02×10²³
let d = 1.2345e-6; // 1.2345乘以10的负6次方,即 1.2345×10⁻⁶

需要注意的是,在 JavaScript 中,数字是一种原始类型。当您使用算术运算符(+、-、*、/、% 等)对数字进行计算时,会得到一个新的数字作为结果。

另外,JavaScript 中还有一些特殊值,例如 Infinity(无穷大)、-Infinity(负无穷大)和 NaN(不是数字)。这些值也属于数字类型,但不是有效的数字值,需要注意。

let和var的区别

let 和 var 都是 JavaScript 中用于声明变量的关键词。它们之间的主要区别在于作用域和变量提升的行为上。

  1. 作用域

    var 声明的变量属于函数作用域或全局作用域,而 let 声明的变量属于块级作用域。块级作用域是一对花括号({})中的任何语句,例如 iffor 或 while 循环语句。

    示例:

    function example() {var x = 1;if (true) {var x = 2;}console.log(x); // 2
    }
    example();function example2() {let y = 1;if (true) {let y = 2;}console.log(y); // 1
    }
    example2();
    

    在第一个示例中,var 声明的 x 变量的作用域是函数作用域,其在 if 块中重复声明(该块也属于函数作用域)。所以 console.log(x) 打印的结果是 2

    在第二个示例中,let 声明的 y 变量的作用域是块级作用域(即 if 块)。所以 console.log(y) 打印的结果是 1

  2. 变量提升

    在使用 var 声明变量时,它们会被提升到它们所在作用域的顶部,在声明之前的任何地方都可以访问它们。这种行为被称为变量提升。

    示例:

    function example() {console.log(x); // undefinedvar x = 1;
    }
    example();
    

    上面的示例中,var 声明的 x 变量会被提升到函数作用域的顶部,但它没有被赋值,因此第一行打印出来的是 undefined

    在使用 let 声明变量时,变量在声明之前不会被访问,不会存在变量提升的行为。

综上所述,let 比 var 更容易控制变量的作用域,不会存在变量提升的问题。建议在使用变量时优先使用 let,避免因为变量提升问题导致的不良后果。

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

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

相关文章

PPT插件-大珩助手-保留原素材的位置和大小一键替换

保留原素材的位置和大小一键替换 若勾选了一键替换,对于从素材库插入的图形,可以使得它的位置、大小与幻灯片中选中的形状一致 软件介绍 PPT大珩助手是一款全新设计的Office PPT插件,它是一款功能强大且实用的PPT辅助工具,支持W…

在众多的材质中选择灰口铸铁铸造划线平台、铸铁平台等的原因——河北北重

使用灰口铸铁制作铸铁平台和划线平台的主要原因有以下几点: 强度高:灰口铸铁具有较高的强度和硬度,能够承受较大的载荷和冲击力。这使得灰口铸铁非常适合制作需要承受重压和磨损的平台和设备。 耐磨性好:灰口铸铁具有较高的耐磨性…

对于计算机考研的个人攻略

对于计算机考研的个人攻略 一:专业课复习 ​ 首先从时间上来说,对专业课的复习是在数学基础部分看完以后,这个时候是数学题目和专业课同步进行的。 这里我们按照 408 的划分来复习 408 分数占比为: 数据结构 45 分 计算机组成…

MySQL的多版本并发控制(MVCC)

MVCC MVCC,是Multiversion Concurrency Control的缩写,翻译过来是多版本并发控制,和数据库锁样,他也是一种并发控制的解决方案 我们知道,在数据库中,对数据的操作主要有2种,分别是读和写&…

MetaGPT学习笔记 - task1task2

章节:task1&task2 一.github地址:github.com/geekan/MetaGPT 二.MetaGPT: 多智能体框架​ 使 GPT 以软件公司的形式工作,协作处理更复杂的任务 MetaGPT输入一句话的老板需求,输出用户故事 / 竞品分析 / 需求 / 数据结构 / A…

1115: 数组最小值(数组)

题目描述 数组a有n个元素&#xff0c;请输出n个元素的最小值及其下标。若最小值有多个&#xff0c;请输出下标最小的一个。注意&#xff0c;有效下标从0开始。 输入 输入分两行&#xff0c;第一行是一个正整数n&#xff08;n<1000)&#xff0c;第二行是n个整数。 输出 …

出现 SyntaxError: future feature annotations is not defined 解决方法

目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 执行sql语句的时候,出现如下问题,问题如下所示: E:\software\anaconda3\envs\py3.6\python.exe F:\python_project\test\sql_connect.py Traceback (most recent call last):File "F:\python_project\test\sql_c…

机器学习之Ridge回归与Lasso回归

Ridge回归与Lasso回归是什么 Ridge回归和Lasso回归是机器学习中常用的线性回归算法的变种。 Ridge回归是一种线性回归算法&#xff0c;通过在损失函数中添加一个正则化项&#xff0c;以控制模型的复杂度。正则化项是模型参数的平方和与一个参数alpha的乘积&#xff0c;alpha越…

行程长度编码

前言 NWAFU 2023阶段二 A 一、题目描述 题目描述 “行程长度编码&#xff08;Run-Length Encoding&#xff0c;RLE&#xff09;”是一种无损压缩编码方法&#xff0c;其核心思想是依次记录符号序列中的每个字符&#xff08;忽略大小写&#xff09;及其重复出现的次数。例如用…

Makefile编译原理 变量的使用

一.变量和不同的赋值方法 ->makefile中支持程序设计语言中变量的概念 ->makefile中的变量只代表文本数据&#xff08;字符串&#xff09; ->makefile中的变量名规则 - 变量名可以包含字符&#xff0c;数字&#xff0c;下划线。 - 不能包含 ":" "#&…

C++重点简答题

文章目录&#xff08;持续更新&#xff09; C重点简答题&#x1f4e3;一、什么是静态变量&#xff1f;&#x1f4e3;二、谈谈你对顺序文件的认识&#xff1f;&#x1f4e3;三、什么是局部变量&#xff1f;什么是全局变量&#xff1f;二者的区别&#xff1f;&#x1f4e3;四、谈…

你好2024,OpenStreetMap 20 周岁

2004年&#xff0c;OpenStreetMap在英国诞生。2024年&#xff0c;OpenStreetMap 满 20 周岁&#xff0c;其愿景是创建一个免费的、可编辑的世界地图。当时&#xff0c;地图数据的获取往往受到限制或价格昂贵1。 经过20年的发展&#xff0c;该数据集合成为了最为全面的街道级别开…

宿舍维修管理系统:从数据库到前端的全面解析

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

[openGL]在ubuntu20.06上搭建openGL环境

就在刚刚, 我跑上了一个6小时后出结果的测试程序. 离下班还有很久, 于是我打开了接单群 , 发现了很多可以写的openGL项目. 但是!!我的电脑现在是ubuntu呀, 但是不要慌!!!接下来我一步一步教你如何完美搭建一个ubuntu上的openGL环境. 保证一个坑也不会踩! 文章目录 创建项目工作…

《Git学习笔记:IDEA整合Git》

在IDEA中集成Git去使用 通过Git命令可以完成Git相关操作&#xff0c;为了简化操作过程&#xff0c;我们可以在IDEA中配置Git&#xff0c;配置好后就可以在IDEA中通过图形化的方式来操作Git。 在IDEA开发工具中可以集成Git&#xff1a; 集成后在IDEA中可以看到Git相关图标&…

React16源码: React中调度之batchedUpdates的源码实现

batchedUpdates 1 &#xff09;概述 在 requestWork 在中间, 会判断一个 isBatchingUpdates 做一些特定的操作batchedUpdates 是一个批量更新的操作, 什么是批量更新呢&#xff1f;先来看一个例子 2 &#xff09;示例 index.js import React from react import ReactDOM fr…

【MySQL】mysql集群

文章目录 一、mysql日志错误日志查询日志二进制日志慢查询日志redo log和undo log 二、mysql集群主从复制原理介绍配置命令 读写分离原理介绍配置命令 三、mysql分库分表垂直拆分水平拆分 一、mysql日志 MySQL日志 是记录 MySQL 数据库系统运行过程中不同事件和操作的信息的文件…

二级C语言备考6

一、单选 共40题 &#xff08;共计40分&#xff09; 第1题 &#xff08;1.0分&#xff09; 题号:6675 难度:易 第1章 以下选项中叙述正确的是 A:C程序中的语句要经过编译才能转换成二进制机器指令 B:算法需要包含所有三种基本结构 C:有些算法不能用…

Mac M1 Parallels CentOS7.9 Rancher + K8S + Gitlab + Jenkins +Harbor CICD

一、资源清单 机器名称IP地址角色k8srancher高可用部署: https://blog.csdn.net/qq_41594280/article/details/135312148rancher10.211.55.200管理K8S集群k8svip10.211.55.199K8S VIPmaster0110.211.55.201K8S集群主节点master0210.211.55.202K8S集群主节点master0310.211.55.…

华为机试真题实战应用【赛题代码篇】-分苹果(附Java、C++和python代码)

目录 题目描述 解析思路 思路1 思路2 代码实现 Java 代码2