JavaScript(二)变量

news2024/9/9 6:46:04

一、两种注释方式

// 这是当行注释

/*
这是多行注释
这是多行注释
*/

二、变量是什么

变量就是一个可以存放“数值”的容器,这个“数值”可以是数字、字符串、函数等。
变量不是数值本身,它是一个用于存储数值的容器,你可以把变量想象成一个个用来装东西的纸箱子。而箱子是可以复用的,这就表明JavaScript的变量是动态类型。
在这里插入图片描述

三、声明变量

要想使用变量,你需要先声明。声明一个变量的语法是在 varlet 关键字之后加上这个变量的名字。下面是一个简单的例子:

let myName;
let myAge;

在 JavaScript 中,所有代码都以分号结尾(;),最好加上。

你可以在控制台中输入上面的代码进行变量的声明。
在浏览器的任意一个标签页,右键点击检测,点到如图所示的位置即为控制台。Windows 快捷键为F12
在这里插入图片描述
在这里插入图片描述
输入上面的代码:
在这里插入图片描述
你可以在控制台输入变量名来验证该变量是否存在

myName;
myAge;

由于这两个变量都没有数值,它们是空的容器,所以输入变量名后回车,会返回一个 undedined
如果输入的变量不存在则会报错。例如输入下面不存在的变量名:

my;

在这里插入图片描述

四、初始化变量

变量名之后跟上一个 “=”,然后是数值:

myName = "hello";
myAge = 18;

你可以在控制台输入变量名,查看返回的值是不是预期的值。
在这里插入图片描述
变量声明和初始化可以放在一起,这也是最常用的方法。

let myName = "张三";

五、varlet 的区别

注意:下面的代码都不能在浏览器控制台运行,因为控制台一次只能输入一行代码

  • var 会进行变量提升

var 声明的变量可以在其声明语句前使用

myName = "Chris";

function logName() {
  console.log(myName);
}

logName();

var myName;

在这里插入图片描述
var 声明的变量会提升在最前面运行,看下面这段代码

a = "hello";
if (false) {
	var a;
}
alert(a);

在这里插入图片描述
尽管 if (false) 分支永远不会执行,但是没有关系,var 已经提前处理了。
声明会被提升,但赋值不会

alear(a); // undefiend
var a = "hello";

在这里插入图片描述
以上把 var 换成 let 则报错

  • var 允许多次声明相同名称的变量

let 在同一作用域下将一个变量声明两次,会出现错误:

let user;
let user; // SyntaxError: Identifier 'user' has already been declared

var 可以重复声明一个变量,无论多少次。新的声明会忽略,但是赋值不会

var user = "hello";
var user = "zhangsan"; // 这个var 无效,因为变量已经声明过了(不会触发错误)
alert(user); // zhangsan
  • var 声明的变量不是全局变量就是函数作用域,没有块级作用域
if (true) {
	var test = true; 
}
alert(test); // true
if (true) {
	let test = true;
}
alert(test); // ReferenceError: test is not defined

对于循环也是如此:

for (var i = 0; i < 5; i++) {
	var one = 1;
}
alert(i); // 5
alert(one); // 1

总结:能用 let 就用 let

六、更新变量

变量的值可以随意更新成你想要的。

let a = "hello";
a = 1;

七、变量命名规则

使用 (0-9,A-Z, a-z, _)命名。

  • 数字不能作为变量名的开头
  • _ 不建议用在变量的开头
  • 变量尽量见名知义,可以使用驼峰命名法

八、变量类型

Number

无论是整数(30、-10等),还是小数(2.456等)(也叫浮点数),都是Number类型。
数字类型不需要用引号括起来

let num = 18;

String

字符串类型,需要使用单引号或者双引号括起来

let a = "hello";

Boolean

Boolean 的值有两种:truefalse

let flag = true;
// 更常用的方式
let test = 6 < 3; // false

Array

数组是一个单个对象,其中可以包含很多值,使用方括号括起来,元素之间用逗号分隔。

let a = ["a", "b", "c"];
let b = [10, 15, 18];

访问数组中的某个元素:

a[0]; // a
b[2]; // 18

此处的方括号包含一个索引值,该值指定要返回的值的位置,下标从 0 开始,以后的文章会介绍

Object

创建对象:

let dog = { name: "Spot", breed: "Dalmatian"};

访问对象的属性:

dog.name: // Spot

九、动态类型

let myNumber = "500";
typeof myNumber; // string
myNumber = 500;
typeof myNumber; // number

typeof 是一个操作符,用于返回一个变量的类型,可以看到同一个变量的类型是可变的,说明JavaScript的变量是动态类型。

总结:

虽然不知道自己在写什么,我也知道写的很烂,但是我还是想写。
没学过JavaScript的人看起来可能有点吃力,因为上面涉及的很多东西我都没有介绍,包括作用域,对象,数组等。但是阅读完之后你只需要知道下面几点就是:

  • 如何定义变量
  • 使用 typeof 操作符查看变量类型
  • 记住 5 中变量的类型
  • 知道使用 let 定义变量
  • 知道 F12 浏览器控制台这么个东西

其他的都无所谓。

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

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

相关文章

解决断点问题导致项目没有完全启动bug

场景&#xff1a; 项目启动正常&#xff0c;启动日志也正常打印&#xff0c;但是无法判断是否启动完毕&#xff0c;访问接口也进不了服务 原因&#xff1a; 启动前调试项目打断点时 不晓得打到了某个层面的断点 具体是哪忘了&#xff0c;导致项目没有完全启动&#xff0c;启…

WIFI7:引领智能驾驶新未来

近年来&#xff0c;智能驾驶技术飞速发展&#xff0c;从最初的初级的辅助驾驶逐步迈向高度自动驾驶&#xff0c;这一变化历程深刻依赖的是高效、稳定且前沿的无线通信技术的支撑。WIFI7&#xff0c;作为无线通信领域的最新里程碑&#xff0c;凭借其前所未有的性能提升与功能拓展…

一级指针和一维数组

文章目录 &#x1f34a;自我介绍&#x1f34a;一级指针和一维数组&#x1f34a;a , &a[0]和&a之间的关系 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以&#xff1a;点赞关注评论收藏&#xff08;一键四连&#xff09;哦~ &#x1f34a;自我介绍 Hello,大家好…

Tugraph的安装部署

文章目录 一、安装Docker二、拉取TuGraph镜像三、访问web端 一、安装Docker http://t.csdnimg.cn/djJYX 二、拉取TuGraph镜像 https://hub.docker.com/search?qtugraph 拉取的时间会有些长 docker pull tugraph/tugraph-compile-ubuntu18.04如docker镜像拉取失败&#xff…

IDEA管理远程仓库Git

1、模拟项目 新建一个文件夹&#xff0c;用来这次演示 用IDEA来打开文件夹 2、创建仓库 在IDEA中给该文件夹创建本地仓库和远程仓库 在菜单栏找到VCS选择Share project on Gitee 在弹窗中输入描述信息 接下来会出现以下弹窗 点击ADD后&#xff0c;在gitee上会创建远程仓库 …

敏捷产品经理实训:助力产品负责人掌握敏捷方法,提升产品开发效率

在当今快节奏的市场环境中&#xff0c;产品经理和产品负责人需要快速响应市场变化&#xff0c;推动产品创新&#xff0c;以满足用户不断变化的需求。敏捷产品经理实训课程专为产品经理和产品负责人设计&#xff0c;旨在帮助他们掌握敏捷方法&#xff0c;提高团队协作和产品开发…

python dash框架

Dash 是一个用于创建数据分析型 web 应用的 Python 框架。它由 Plotly 团队开发&#xff0c;并且可以用来构建交互式的 web 应用程序&#xff0c;这些应用能够包含图表、表格、地图等多种数据可视化组件。 Dash 的特点&#xff1a; 易于使用&#xff1a;Dash 使用 Python 语法…

二叉树的介绍及其顺序结构的实现

Hello, 亲爱的小伙伴们&#xff0c;你们的作者菌又回来了&#xff0c;之前我们学习了链表、顺序表、栈等常见的数据结构&#xff0c;今天我们将紧跟之前的脚步&#xff0c;继续学习二叉树。 好&#xff0c;咱们废话不多说&#xff0c;开始我们今天的正题。 1.树 1.1树的概念和…

Vue3+.NET6前后端分离式管理后台实战(三十二)

1&#xff0c;Vue3.NET6前后端分离式管理后台实战(三十二)

Java上门做饭平台系统小程序源码

&#x1f37d;️解锁新生活方式&#xff01;揭秘“上门做饭平台系统”的五大魅力&#x1f31f; &#x1f3e0;【懒人福音&#xff0c;美食直达家门】 在这个快节奏的时代&#xff0c;谁不想下班后直接享受热腾腾的家常美味呢&#xff1f;上门做饭平台系统就是你的私人厨师团队…

java基础概念07-switch语句

一、switch定义 二、基本语法 switch (expression) { case value1: // 当expression的值等于value1时执行的代码 break; // 可选 case value2: // 当expression的值等于value2时执行的代码 break; // 可选 // 你可以有任意数量的case语句 default: // 可选 // 当没有…

【Android驱动06】GMS兼容性测试CTS --环境搭建、测试执行、结果分析

CTS即Compatibility Test Suite意为兼容性测试&#xff0c;是Google推出的Android平台兼容性测试机制。其目的是尽早发现不兼容性&#xff0c;并确保软件在整个开发过程中保持兼容性。只有通过CTS认证的设备才能合法的安装并使用Google market等Google应用。 一&#xff0c;搭…

leetcode 二叉树专题——java实现

1. 二叉树中序遍历 给一棵树&#xff0c;输出中序遍历。 树已经给你建好了&#xff0c;按照一下形式&#xff1a; /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* Tree…

花10分钟写个漂亮的后端API接口模板!

你好&#xff0c;我是田哥 在这微服务架构盛行的黄金时段&#xff0c;加上越来越多的前后端分离&#xff0c;导致后端API接口规范变得越来越重要了。 比如&#xff1a;统一返回参数形式、统一返回码、统一异常处理、集成swagger等。 目的主要是规范后端项目代码&#xff0c;以及…

数据恢复大师免费版落伍了吗?2024年4大创新恢复工具对比评测

在这个数字时代&#xff0c;要是突然发现电脑里的珍贵照片、视频或者重要文件不见了&#xff0c;那种感觉就像失去了什么重要的东西&#xff0c;让人焦虑又无助。市面上虽然有很多数据恢复软件&#xff0c;但不是所有软件都能满足我们的需求&#xff0c;尤其是那些既免费又好用…

一键解析:由于找不到xinput1_3.dll,无法继续执行代码的问题,有效修复xinput1_3.dll文件

xinput1_3.dll是一个重要的动态链接库文件&#xff0c;它是DirectX软件包的一部分&#xff0c;主要负责处理游戏和多媒体应用程序中的输入功能。当用户尝试启动某些游戏或应用程序时&#xff0c;可能会遇到一个错误提示&#xff0c;指出“由于找不到xinput1_3.dll&#xff0c;无…

开源AI智能名片拓客小程序在企业品牌快速打造中的应用探索

摘要&#xff1a;在数字化浪潮席卷全球的今天&#xff0c;企业品牌的建设与传播已不再局限于传统的广告与营销手段。开源AI智能名片拓客小程序作为一种创新的数字营销工具&#xff0c;凭借其智能化、个性化及高效化的特点&#xff0c;正逐步成为企业品牌快速打造与提升市场影响…

游戏类型有哪些?游戏分类详细解说(一)

这篇文章是来源于游戏工委牵头制定的团体标准&#xff1a;《网络游戏分类》&#xff08;音数协 2023年1月&#xff0c;征求意见稿&#xff09;。 音数协游戏工委是游戏行业自律组织&#xff0c;在其牵头组织下&#xff0c;腾讯、网易、盛趣、索尼、完美世界、巨人网络等单位共…

MTK6983/MT6983天玑9000芯片详细性能参数_MTK联发科5G方案定制

联发科MT6983旗舰5G移动平台处理器集成了蓝牙、FM、WLAN 和 GPS 模块&#xff0c;是一个高度集成的基带平台&#xff0c;集成了调制解调器和应用处理子系统&#xff0c;可支持 LTE/LTE-A/NR 和 C2K 智能手机应用。 该芯片集成了四个 Arm Matterhorn (ELP) 内核、四个 Arm Klein…