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

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代码,对其处理后运行。常见的JS引擎例如V8,其号称是最快的JS引擎。

JS的组成:JS可以大致分为ECMAScriptDOMBOM三部分。除此之外,还有很多第三方库或框架,例如 jQueryECharts 等,这些在后续的学习过程中会进行介绍。

  • 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> 标签(一般是放在 <body></body> 标签的底部,内嵌式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键打开控制台,查看输出结果。
  • 控制台输出函数console.dir:一个用于输出的函数,使用方法与console.log函数类似,但是它可以更清晰地输出一个对象中的内容。

JavaScript中的变量

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

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

const变量

  • 基本作用:创建一个常量。一个变量被声明为 const,它的值就不能被重新赋值。
  • 使用语法const 常量名 = 常量值
  • 注意事项
    • 必须初始化:所有 const 变量声明后都必须进行初始化,并且后续过程中不能进行重新赋值。
    • 常对象可以修改:使用 const 声明的对象,只是保证对象的引用不变,但是对象的属性等内容是可以进行修改的。

JavaScript中的数据类型

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

  • JS数据类型分类:可以分为简单数据类型和复杂数据类型两类。简单数据类型包括 NumberStringBooleanUndefinedNull 等,复杂数据类型主要是对象。
    • Number:数字型,包含整型值和浮点型值,默认值是 0
      • 不同的进制:可以加前缀 0 表示八进制整数,加前缀 0x 表示十六进制整数。
      • 最大值和最小值Number.MAXNumber.MIN 分别表示数字类型的最大表示数字和最小表示数字。
      • 无穷大和无穷小:常量 Infinity-Infinity 表示无穷大和无穷小。
      • 非数值:常量 NaN 用于表示非数值。可以使用 isNaN(变量名) 的方式来检测一个变量是否是空的,返回一个布尔值。
    • String:字符串型,需要使用一对引号进行表示,默认值是空字符串。
      • 引号的选择:在JS中为了与HTML和CSS代码进行区分,推荐使用单引号来表示字符串。
      • 引号的嵌套:如果一个字符串中本身还有引号,则要和表示字符串的引号不同,即表示字符串的引号是单引号时,字符串内部的引号应该采用双引号。
      • 转义字符:JS中常用的转义符如下:\n 表示换行、\b 表示单个空格、\\ 表示单斜杠、\t 表示缩进。重点记忆换行和缩进即可。
      • 字符串的长度获取:可以通过字符串的 length 属性获取字符串的长度。
      • 字符串的拼接:可以通过 + 运算符来拼接两个字符串。如果和字符串拼接的数据的类型不是字符串,则会自动将其转换为字符串。
    • Boolean:布尔值类型,truefalse 分别等价于 10,默认值是 false
    • Undefined:表示声明了一个变量但是没有对该变量进行赋值。进行字符串相加时会变成字符串 “undefined”,和数值运算结果是 NaN
    • Null:表示空变量。
  • 获取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" ,来向数组中添加一个新元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值