JavaScript(JS)学习笔记 1(简单介绍 注释和输入输出语句 变量 数据类型 运算符 流程控制 数组)

文章目录

JavaScript简单介绍

JavaScript发展历史

  • 由布兰登·艾奇在1995年用时10天发明。由于他最早在网景公司工作,因此网景公司最初将其命名为LiveScript,后来在与Sun公司合作之后将其改名为JavaScript,简称为JS
  • JavaScript本身和Java语言并没有任何关系。

JavaScript是什么

  • JavaScript是世界上最流行的语言之一,是一种运行在客户端的脚本语言。
  • 之所以说该语言是脚本语言,是因为该语言不需要进行编译,在运行过程中由JS解释器(也被称为JavaScript引擎)逐行来进行解释然后执行。
  • 现在也可以基于Node.js技术来进行服务器端的编程。

JavaScript有什么用 :表单动态检验、网页特效制作、服务端开发(基于Node.js)、桌面程序开发、APP开发、物联网中的控制硬件开发(基于Ruff)、游戏开发(基于cocos2d-js)等各种任务。

浏览器如何执行JS代码:浏览器可以分为两部分,分别是渲染引擎和JS引擎,其中JS引擎就用来执行JS代码。

  • 渲染引擎 :用来解析HTML和CSS代码,也被称为浏览器内核,例如BlinkWebkit等等。
  • JS引擎 :也就是JS解释器,用来读取网页中的JS代码,对其处理后运行,例如V8等。V8号称是最快的JS引擎。

JS的组成 :JS可以分为ECMAScriptDOMBOM三部分。

  • ECMAScript
    • 由原欧洲计算机制造协会(ECMA)进行标准化的一门编程语言,这种语言在万维网上应用广泛,往往被称为JavaScriptJscript(微软公司模仿JS发明的语言),但是实际后面两种语言都是ECMAScript的实现和扩展。
    • ECMA规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JS语法工业标准。
  • DOM:全称为文档对象模型,是W3C组织推荐的处理可扩展标记语言的标准编程接口,通过DOM提供的接口可以对网页中的各种元素进行操作(例如设置大小、颜色和位置等)。在后续API的学习笔记中会涉及,此处暂时不进行详细解释。
  • BOM:全称为浏览器对象模型,提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。通过BOM可以操作浏览器窗口,例如弹出对话框、控制浏览器跳转、获取分辨率等。

JS的书写位置:JS的书写位置可以分为行内式、内嵌式和外部式。

  • 行内式
    • 行内式的语法 :直接写到元素的内部,例如<input type="button" value="test" onclick="alert('hello world')">
    • 行内式的特点:适合于单行或少量JS代码,但是可读性较差,引号使用容易出错(尤其是引号多层嵌套时),仅仅在特殊情况下使用。
    • 行内式的注意事项:在HTML代码中推荐使用双引号,在JS中推荐使用单引号。
  • 内嵌式
    • 内嵌式的语法 :在网页的HTML源代码的<head>标签中,增加一对<script></script>标签(一般是放在内嵌式CSS样式标签<style></style>的下面),在这一对标签中写入JS代码。
    • 内嵌式的特点:是学习JS时常用的一种方式。
  • 外部式
    • 外部式的语法 :新建一个后缀名为.js的文件,并直接在其中写入JS代码。接着,在HTML源代码中引入该文件,引入语法为:<script src="JS文件路径"></script>
    • 外部式的特点:利于HTML页面代码结构化,可以将网页的结构和样式与行为分离开,并且有利于文件级的代码复用,适用于JS代码量很大的情况。

JavaScript中的注释和输入输出语句

JS中的注释:注释可以分为单行注释和多行注释两种。

  • 单行注释 :在一行代码的前面加上 // 即可。在VsCode中可以使用Ctrl + / 进行单行注释。
  • 多行注释 :在注释的开头使用 /*,在注释的结尾加上 */。在VsCode中可以使用Shift + Alt + A进行多行注释。

JS中的输入输出语句

  • 输入函数prompt :语法为prompt("提示字符串"),该函数可以在浏览器中弹出一个输入框,获取用户的输入,获取的输入类型是一个字符串。
  • 输出函数alert :语法为alert("输出的字符串"),该函数可以在浏览器中以弹出警示框的形式给用户一个输出反馈。
  • 控制台输出函数console.log :语法为console.log("输出的字符串"),该函数可以在控制台中进行输出,用于程序调试等过程。在浏览器中可以通过按下F12键打开控制台,查看输出结果。

JavaScript中的变量

变量的使用方式:JS中变量的使用也需要先进行声明,然后才能赋值。

  • 变量的声明var 变量名;。var是JS中的一个专门用来声明变量的关键字。变量的声明过程中也可以对变量进行初始化。另外,还可以一次性声明多个变量,多个变量之间使用英文逗号分隔。
  • 变量的赋值变量名 = 变量值。对于没有进行过赋值的变量,其默认值是undefined
  • 允许不声明直接使用变量:JS中其实也允许不声明只赋值后直接使用变量,但是这种方式不推荐。
  • 变量名命名规则:由大小写字母、数字、下划线和美元符号组成。变量名区分大小写,不能以数字开头,不能是关键字。

JavaScript中的数据类型

JavaScript是一种弱类型语言(也被称为动态语言),意味着声明变量时无需指定类型,类型会在程序的运行过程中被自动确定。

  • JS数据类型分类 :可以分为简单数据类型和复杂数据类型两类。简单数据类型包括NumberStringBooleanUndefinedNull等,复杂数据类型主要是对象。
    • Number :数字型,包含整型值和浮点型值,默认值是0
      • 不同的进制 :可以加前缀0表示八进制整数,加前缀0x表示十六进制整数。
      • 最大值和最小值Number.MAXNumber.MIN分别表示该类型的最大表示数字和最小表示数字。
      • 无穷大和无穷小 :常量Infinity-Infinity表示无穷大和无穷小。
      • 非数值 :常量NaN用于表示非数值。
    • String :字符串型,需要使用一对引号进行表示,默认值是空字符串。
      • 引号的选择:在JS中为了与HTML和CSS代码进行区分,推荐使用单引号来表示字符串。
      • 引号的嵌套:如果一个字符串中本身还有引号,则要和表示字符串的引号不同,即表示字符串的引号是单引号时,字符串内部的引号应该采用双引号。
      • 转义字符 :JS中常用的转义符如下:\n表示换行、\b表示单个空格、\\表示单斜杠、\t表示缩进。重点记忆换行和缩进即可。
      • 字符串的长度获取 :可以通过字符串的length属性获取字符串的长度。
      • 字符串的拼接 :可以通过 + 运算符来拼接两个字符串。如果和字符串拼接的数据的类型不是字符串,则会自动将其转换为字符串。
    • Boolean :布尔值类型,truefalse分别等价于10,默认值是false
    • Undefined :表示声明了一个变量但是没有对该变量进行赋值。进行字符串相加时也会变成字符串"undefined",和数值运算结果是NaN
    • Null :表示空变量。可以使用isNaN(变量名)的方式来检测一个变量是否是空的,返回值是一个布尔值。
  • 获取JS变量的数据类型 :使用typeof 变量名的方式可以获取一个变量的数据类型,其中typeof是JS中的一个关键字。
  • JS中的数据类型转换
    • 将数据转换为字符串
      • 使用该变量的toString方法变量名.toString()
      • 使用String函数进行强制转换String(变量名)
      • 与一个空字符串拼接"" + 变量名。这是一种最常用的方法,是一种隐式转换的方法。
    • 将数据转换为数字 :前两种方法是重点。
      • 使用parseInt(string)函数:该函数可以将一个字符串转换为整型数字。这个函数会从字符串的首字符开始解析,直到找到第一个不是数字的字符为止。
      • 使用parseFloat(string)函数:该函数可以将一个字符串转换为浮点型数字。该函数也会从字符串的首字符开始解析,直到找到第一个不是浮点数组成的字符为止。
      • 使用Number()函数强制转换:将一个数据强制转换为数字类型。
      • 使用算术运算符进行隐式转换:例如,可以通过一个字符串 + 0 或 - 0 来将该字符串隐式转换为数值类型。
    • 将数据转换为布尔值Boolean()函数可以将其他的数据类型转换为布尔值。代表空、否定的值,例如空字符串、0NaNNULLundefined转换为false,其他的值都会被转换为true

JavaScript中的运算符

JS中的运算符使用和其他语言中的运算符使用大同小异,下面只介绍一些简单的注意事项:

  • 浮点数运算精度问题:浮点数的最高精度是17位小数,但是其计算的精确度远不如整数,因此浮点数之间无法进行直接的相等判定。
  • 全等的判定 :JS中有===!==符号进行全等判定,全等是指两个变量的数据类型和值都完全相同。

JavaScript中的流程控制

  • if-else if-else语句 :与C++中的if系列语句的语法完全相同。
  • 三元表达式 :JS中也支持与其他语言中相同的三元表达式?:
  • switch语句 :与C++中的switch语句的使用语法完全相同,但是进行case匹配时不是进行相等判定,而是进行全等判定。
  • for循环语句 :和C++中的for循环语句的语法完全相同。
  • while循环语句 :和C++中的while循环语句的语法完全相同。
  • do-while循环语句 :和C++中的do-while循环的语法完全相同。
  • break和continue关键字:和其他编程语言中的这两个关键字的作用完全相同。

JavaScript中的数组

数组的创建

  • 使用new关键字创建var 数组名 = new Array();
  • 使用数组字面量创建数组var 数组名 = [元素1, 元素2, ....];

数组中元素的数据类型:数组中的元素可以是不同的数据类型。

数组的长度获取 :数组的length属性即表示数组中的元素个数。

向数组中添加元素

  • 修改数组的length属性来进行扩容(是的,JS中数组的长度属性是可以读写的),多出来的空位置将会被自动赋值undefined
  • 直接通过索引号来增加数组元素。例如对于一个原本长度为3的数组arr,可以写入arr[3]="test",来向数组中添加一个新元素。
相关推荐
Charles Ray36 分钟前
C++学习笔记 —— 内存分配 new
c++·笔记·学习
重生之我在20年代敲代码37 分钟前
strncpy函数的使用和模拟实现
c语言·开发语言·c++·经验分享·笔记
我要吐泡泡了哦2 小时前
GAMES104:15 游戏引擎的玩法系统基础-学习笔记
笔记·学习·游戏引擎
骑鱼过海的猫1232 小时前
【tomcat】tomcat学习笔记
笔记·学习·tomcat
贾saisai4 小时前
Xilinx系FPGA学习笔记(九)DDR3学习
笔记·学习·fpga开发
烟雨666_java4 小时前
JDBC笔记
笔记
GEEKVIP4 小时前
Android 恢复挑战和解决方案:如何从 Android 设备恢复删除的文件
android·笔记·安全·macos·智能手机·电脑·笔记本电脑
everyStudy4 小时前
JavaScript如何判断输入的是空格
开发语言·javascript·ecmascript
无心使然云中漫步5 小时前
GIS OGC之WMTS地图服务,通过Capabilities XML描述文档,获取matrixIds,origin,计算resolutions
前端·javascript