【蓝桥杯JavaScript基础入门】一、JavaScript基础

关于JavaScript

JavaScript 是一种高级的解释型语言,基于原型、函数先行,是一门多范式的语言。它支持面向对象编程、命令式编程和函数式编程,提供语法来操控文本、数组等,不支持 I/O,比如网络、存储和图形等(这些都可以由它的宿主环境提供支持)。

它被世界上的绝大多数网站所使用,也被世界主流浏览器支持。

JavaScript 的语言设计主要受到了 Self 和 Scheme的影响,语法结构上又与 C 语言有很多相似。随着最新的 HTML5 和 CSS3 语言标准的推行,它还可用于游戏、桌面和移动应用程序的开发和在服务器端网络环境运行,如 Node.js。

组成

  • **ECMAScript:**语法标准。
  • **DOM:**操作网页上的元素的 API。
  • **BOM:**操作浏览器的部分功能的 API

特点

  • 可以使用任何文本编辑工具编写,使用浏览器就可以执行
  • 代码不进行预编译,从上往下逐行执行,不需要进行严格的变量声明
  • 主要用来为HTML 页面添加交互行为

每次实验都需要新建一个test.html文件,然后在这个文件上开展后续实验:

html 复制代码
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body></body>
</html>

JavaScript包含在<script><script>标签里,放head标签或body标签都行,结果没什么区别,也可以通过外部引入(页面复杂时便于维护)。

变量

数据都存在内存中,变量就是一个用于存放数值的容器。每个变量存放的数值是可变的,都占有一段内存。

JS使用var关键字声明变量:

javascript 复制代码
var name = "yourname";

JS变量命名规则

1.变量名必须以字母, _, $ 开头。

2.变量可以包含字母,数字,_和$。

3.不能使用关键字做为变量名。

4.变量名不能有空格。

5.变量名对大小写敏感。

类型

Number

String

Boolean

Array

Object

动态类型

// 单行注释;/* 多行注释 */

数字与运算符

JS中不管什么数字用var声明就行,运算符和运算顺序和其它语言类似。

数组

两种语法创建数组:

javascript 复制代码
var array1 = new Array(1, 2, 3);

var array2 = [1, 2, 3];

多维数组:

javascript 复制代码
var array0 = [[1, 2, 3], [4, 5, 6]];

要修改数组直接为要修改的元素提供新值,使用array.length获取数组长度。

数组和字符串间转换

split()可以分割字符串,使其转化为对应数组;join()可以连接数组为字符串。

添加 / 删除数组中的元素

push() -在数组末尾添加元素

pop() -删除并返回数组最后一个元素(数组为空时返回Undefined)

Null & Undefined

undefined 表示所有未赋值变量的默认值, null 表示一个变量不指向任何对象地址。

字符串

toString()和Number()可以实现字符串(都是数字)和数字相互转换,字符串可以使用+连接,使用string.length函数获取长度。

使用indexOf()判断指定字符串从指定下标(未指定则默认为0)开始是否包含某字符串:

javascript 复制代码
string.indexOf(shortStr, startIndex);

可以使用slice(start, end)提取某字符串的子字符串(左闭右开),使用toLowerCase()和toUpperCase()转换大小写,使用replace()来替换字符串内容(只替换首次出现的匹配项)。

转换

转换成字符串

toString()方法;String()方法;拼接字符串。

转换成数值

Number(),不是数值返回NaN;parseInt(),parseFloat()把字符串转为整数、浮点数;减0操作(如果字符串不是数值,类型变成number,返回NaN).

转换成布尔类型

Boolean()函数;在流式控制语句中的隐式转换。

相关推荐
代码搬运媛7 小时前
Jest 测试框架详解与实现指南
前端
为何创造硅基生物7 小时前
C语言 结构体内存对齐规则(通俗易懂版)
c语言·开发语言
吃好睡好便好7 小时前
在Matlab中绘制横直方图
开发语言·学习·算法·matlab
星寂樱易李7 小时前
iperf3 + Python-- 网络带宽、网速、网络稳定性
开发语言·网络·python
counterxing7 小时前
我把 Codex 里的 Skills 做成了一个 MCP,还支持分享
前端·agent·ai编程
仰泳之鹅8 小时前
【C语言】自定义数据类型2——联合体与枚举
c语言·开发语言·算法
wangqiaowq8 小时前
windows下nginx的安装
linux·服务器·前端
之歆8 小时前
DAY_12JavaScript DOM 完全指南(二):实战与性能篇
开发语言·前端·javascript·ecmascript
发现一只大呆瓜8 小时前
Vite凭什么这么快?3分钟带你彻底搞懂 Vite 热更新的幕后黑手
前端·面试·vite
Maimai108088 小时前
React如何用 @microsoft/fetch-event-source 落地 SSE:比原生 EventSource 更灵活的实时推送方案
前端·javascript·react.js·microsoft·前端框架·reactjs·webassembly