【蓝桥杯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()函数;在流式控制语句中的隐式转换。

相关推荐
NEXT061 小时前
HTTP 协议演进史:从 1.0 到 2.0
前端·网络协议·面试
前路不黑暗@2 小时前
Java项目:Java脚手架项目的 B 端用户服务(十四)
android·java·开发语言·spring boot·笔记·学习·spring cloud
好学且牛逼的马2 小时前
从“混沌初开”到“有序统一”:Java集合框架发展历程与核心知识点详解
前端·数据库·python
嵌入式×边缘AI:打怪升级日志2 小时前
编写Bootloader实现下载功能
java·前端·网络
wuqingshun3141592 小时前
什么是浅拷贝,什么是深拷贝,如何实现深拷贝?
java·开发语言·jvm
恋猫de小郭3 小时前
Flutter 设计包解耦新进展,material_ui 和 cupertino_ui 发布预告
android·前端·flutter
ShiJiuD6668889993 小时前
Java stream流和方法引用
java·开发语言
linux_cfan3 小时前
[2026深度评测] 打造“抖音级”丝滑体验:Web直播播放器选型与低延迟实践
前端·javascript·html5