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

(day 2)JavaScript学习笔记(基础之变量、常量和注释)

 概述

        这是我的学习笔记,记录了JavaScript的学习过程,我是有一些Python基础的,因此在学习的过程中不自觉的把JavaScript的代码跟Python代码做对比,以便加深印象。我本人学习软件开发纯属个人兴趣,大学所学的专业也非软件工程相关专业,从事的工作也非编程领域,学习编程也只能在工作闲暇时间,因此难免有些专业术语不是那么专业,并且博客会不定时更新,还请多多包涵。如果你完全没接触过JavaScript,那么这一系列的学习笔记可能会对你有所帮助。

        今天主要学习变量、常量和注释。 

1.变量 

         在编程的世界中,所有的数据都有存入到一个容器里,如果没有这个容器,我们就无法访问这些数据,这个容器就是变量。

(1)定义变量

        在JavaScript中定义一个变量要用关键字var 或者 let来定义变量,JavaScript中可以先定义变量名,后赋值,也可以在定义变量时同时赋值,赋值操作用等号=,将等号右边的数据赋值给左边的变量,如果是第一次赋值又叫做初始化。如下代码:

//先定义变量名,后赋值,一般不这么操作,防止忘记初始化而出现bug
var name1;console.log(name1); //返回 undefinedname1 = "小红"; // 赋值操作,注意由于前面已经定义变量名,因此赋值时不用加关键字console.log(name1); //返回 小红//定义变量名时就直接初始化,推荐操作
var name2 = "小蓝";console.log(name2); //返回 小蓝

        对比Python中的变量定义操作,Python中定义变量不需要关键字,如下代码:        

# 以下是Python中定义变量name1 = "小红"
print(name1)

        另外需要注意在JavaScript代码中后面要加分号,Python则不用。

(2)变量的命名

        变量的名字必须以英文字母、下划线、美元的符号,即a-zA-Z_$  开头。变量名严格区分大小写,同一个单词如果大小写不一样,是被视为两个不同的变量。变量的名字尽量接近后面要赋值的内容含义,以方便读懂。

        变量名有两种命名方式,一种是驼峰命名法,第一个单词首字母用小写,后面的单词首字母大小,另一种方法是用下划线隔开每个单词,单词全部小写,如下代码示例:

//变量两种命名方法
var firstName = "Tom"; // 驼峰命名法
var first_name = "Jerry" //下划线命名法

(3)变量重新赋值 

         变量的内容是可以改的,我们可以对其进行重新赋值,重新赋值是不需要关键字的,如下代码:

//定义变量名时就直接初始化,推荐操作
var name2 = "小蓝";console.log(name2); //返回 小蓝//还可以再次赋值
name2 = "小黑";console.log(name2); //返回 小黑

  (4)变量的相关操作

        和Python中一样,变量可以进行类似加法之类的相关操作,如下代码:

//变量的相关操作
var a = 10;
var b = 20;
var c = a + b;console.log(c); //返回结果 30

2.常量

        常量和变量基本上是一样,只不过常量的值是不能改变的,如果要改变常量的值,会返回错误值。

        常量是用关键字const来定义的,常量名一般全部使用大写字母,多个单词之间用下划线分割。如果我们尝试修改常量的值,会返回异常信息,如下代码:

//常量
//定义常量用关键字const
const PI = 3.141592653;
const ONE_SCEONDS = 1000;//PI = 3.14; 
//对常量重新赋值会返回异常:TypeError: Assignment to constant variable.

 3.注释

注释是代码开发人员写的备注或说明,代码执行的时候会自动跳过注释,JavaScript中有三种类型:

(1)单行注释

        在JavaScript中单行注释用两个斜杠来表示,它只能在同一行代码中写注释内容,前面的代码中我们已经见到过了,双斜杠后面都是注释内容,而在Python中单行注释内容用井号#来表示,前面的代码也有用到。 

(2) 多行注释

        在JavaScript中多行注释用/*注释内容 */来写多行注释,在Python中用三个单引号或三个双引号写多行注释,如下代码:


/*我是JavaScript中的多行注释我是JavaScript中的多行注释我是JavaScript中的多行注释*/
'''
我是Python中的多行注释
我是Python中的多行注释
我是Python中的多行注释
'''"""
我是Python中的多行注释
我是Python中的多行注释
我是Python中的多行注释
"""

(3)文档注释

        文档注释是用来生成API文档的,在JavaScript中文档注释用/**注释内容*/来表示,如下代码我们先定义一个函数,我们再在代码上面键盘输入/**按回车后是如下的代码:

/*** * @param {*} a * @param {*} b * @returns */function add(a,b){return a+b;}

        这个注释中第一个星号后面可以描写我们这个函数的功能,@param {*} a中大括号内星号可以写变量的类型,如下代码:

/*** 对两个操作数进行相加* @param {number} a 第一个操作数* @param {number} b 第二个操作数* @returns 返回两个数的和*/function add(a,b){return a+b;}

        这样我们在调用这个函数的时候,就会有相关提示,如下图所示:

        如果不写文档注释,在我们调用函数的时候就没有这些提示,如下代码

//不写文档注释
function add2(a, b) {return a + b;
}console.log(add2(100, 200));

        调用时显示的提示内容,如下图:

 

         在Python中也可以写文档注释,写法如下:

def add(a:int,b:int) -> int:"""对两个操作数进行相加a: 第一个操作数为int类型b: 第二个操作数为int类型return: 返回两个数的和"""return a + b

        注:文档注释中对数据类型的描述也仅仅是描述,但JavaScript和Python仍然是动态类型的。也就是说,你不能强制一个变量只能是某种类型。JavaScript和Python会在运行时动态地确定变量的类型。

        以上便是今天的学习内容,如果对你有所帮助请点个赞在走吧。

相关文章:

  • 部署LVS+Keepalived高可用群集(抢占模式,非抢占模式,延迟模式)
  • MySQL利用逻辑备份恢复误删的数据库
  • vue 总结
  • redis使用笔记
  • 【Linux】线程封装_互斥
  • 怎么看待Groq
  • Redis缓存三大问题-穿透、击穿、雪崩
  • html地铁跑酷
  • map和set(二)——AVL树的简单实现
  • SQL之常用字符串函数
  • php开发100问?
  • Rust 语言中的 dyn 关键字
  • 通过Step Back提示增强LLM的推理能力
  • 华容道问题求解_详细设计(五)之hash值和回放功能
  • qt使用QAxObject操作excel程序关闭之后excel进程未被关闭的解决方案
  • emacs初体验
  • jdbc就是这么简单
  • Just for fun——迅速写完快速排序
  • Leetcode 27 Remove Element
  • React 快速上手 - 07 前端路由 react-router
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • 从零开始学习部署
  • 二维平面内的碰撞检测【一】
  • 分类模型——Logistics Regression
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 老板让我十分钟上手nx-admin
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 每天一个设计模式之命令模式
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  •  一套莫尔斯电报听写、翻译系统
  • 优化 Vue 项目编译文件大小
  • # centos7下FFmpeg环境部署记录
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (¥1011)-(一千零一拾一元整)输出
  • (003)SlickEdit Unity的补全
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (原創) 物件導向與老子思想 (OO)
  • (转)linux下的时间函数使用
  • (转)程序员技术练级攻略
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .net 7 上传文件踩坑
  • .Net Core与存储过程(一)
  • .Net 代码性能 - (1)
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .net的socket示例
  • @Autowired多个相同类型bean装配问题
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • [ Linux ] Linux信号概述 信号的产生
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870)
  • [AIGC] Nacos:一个简单 yet powerful 的配置中心和服务注册中心