咱就是说,端午哪里不下雨?
1524 字
8 分钟
JavaScript 基础
AI 摘要
文章介绍 JavaScript 基础:
- 简介:是轻量级、跨平台语言,用于网页开发。数据类型分原始(如 String、Number 等)和引用(如 Object、Array 等)。变量声明有
var(不推荐)、let(块级作用域可重赋值)、const(块级作用域常量)。 - 运算符与表达式:包括算术(如
+-等)、比较(如=====等)、逻辑(如&&||等)运算符及条件(三元)运算符。 - 控制结构:条件语句有
if - else和switch - case;循环语句有for、while、do - while。 - 函数:可通过函数声明、表达式、箭头函数定义,能有返回值。
- 数组与对象:数组可创建并使用
push等方法;对象可创建并访问其属性。 - 异常处理:用
try - catch捕获处理错误。 - ES6 新特性:含模板字面量、解构赋值(数组和对象)、默认参数值。
1 JavaScript 简介
JavaScript 是一种轻量级、跨平台的编程语言,广泛用于网页开发,能够实现动态内容的生成、事件的处理和用户交互。它是 Web 开发的三大基础技术之一,与 HTML 和 CSS 一同构成网页内容和外观的基础。
1.1 数据类型
JavaScript 数据类型分为两类:原始数据类型和引用数据类型。
原始数据类型
原始数据类型的值是不可变的,即每次赋值都会创建新的值。包括:
- String:表示文本的数据类型。
let greeting = "你好,Keke!";- Number:表示整数和浮动数的数字类型。
let price = 9.99;- Boolean:表示真或假的值。
let isActive = true;- Undefined:表示变量声明了但没有赋值,值为
undefined。
let a;console.log(a); // undefined- Null:表示空值,通常用作变量没有值的标记。
let noValue = null;- Symbol:ES6 新增的原始数据类型,用于创建唯一值,常用于对象属性的键。
let sym = Symbol("id");- BigInt:用于表示大于
Number最大值的整数。
let bigNumber = 1234567890123456789012345678901234567890n;引用数据类型
引用数据类型是对象,存储的是对实际值的引用。包括:
- Object:对象,用于存储多个值。
let person = { name: "John", age: 30,};- Array:数组,用于存储多个有序的值。
let colors = ["red", "green", "blue"];- Function:函数也是对象,在 JavaScript 中,函数是一种特殊的对象。
function greet() { console.log("Hello, world!");}- Date:用于处理日期和时间。
let today = new Date();1.2 变量声明
JavaScript 中的变量声明方式有 var、let 和 const。
var:var声明的变量会被提升到函数或全局作用域顶部,并且存在作用域问题。ES6 以后不推荐使用。
var age = 25;let:let声明的是块级作用域变量,可以重新赋值。
let height = 175;const:const声明的是常量,一旦赋值后不能再改变。const也是块级作用域。
const PI = 3.14;2. 运算符与表达式
2.1 算术运算符
- 加法
+:用于两个数相加,或者连接两个字符串。
let x = 5;let y = 3;console.log(x + y); // 8console.log("Hello, " + "World!"); // "Hello, World!"- 减法
-:两个数相减。
console.log(x - y); // 2- 乘法
*:两个数相乘。
console.log(x * y); // 15- 除法
/:两个数相除。
console.log(x / y); // 1.666...- 取余
%:获取两个数相除的余数。
console.log(x % y); // 2- 自增
++:将变量的值增加 1。
x++; // 6- 自减
--:将变量的值减少 1。
y--; // 22.2 比较运算符
- 相等
==:比较两个值是否相等,不考虑类型转换。
console.log(5 == "5"); // true- 严格相等
===:比较两个值是否相等,且类型相同。
console.log(5 === "5"); // false- 不等
!=:判断两个值是否不相等。
console.log(5 != 3); // true- 严格不等
!==:判断两个值是否不相等或类型不同。
console.log(5 !== "5"); // true- 大于
>
console.log(5 > 3); // true- 小于
<
console.log(5 < 3); // false- 大于等于
>=
console.log(5 >= 5); // true- 小于等于
<=
console.log(5 <= 8); // true2.3 逻辑运算符
- 与
&&:当两个操作数都为true时,返回true。
console.log(true && false); // false- 或
||:当其中一个操作数为true时,返回true。
console.log(true || false); // true- 非
!:对布尔值进行取反操作。
console.log(!true); // false2.4 条件(三元)运算符
let age = 20;let status = age >= 18 ? "Adult" : "Minor";console.log(status); // "Adult"3. 控制结构
3.1 条件语句
if-else
let age = 18;if (age >= 18) { console.log("Adult");} else { console.log("Minor");}switch-case
let day = 2;switch (day) { case 1: console.log("Monday"); break; case 2: console.log("Tuesday"); break; default: console.log("Other day");}3.2 循环语句
for
for (let i = 0; i < 5; i++) { console.log(i); // 0 1 2 3 4}while
let i = 0;while (i < 5) { console.log(i); // 0 1 2 3 4 i++;}do-while
let i = 0;do { console.log(i); // 0 1 2 3 4 i++;} while (i < 5);4. 函数
4.1 函数声明与调用
function greet(name) { console.log("Hello, " + name);}greet("Alice"); // "Hello, Alice"4.2 函数表达式
const greet = function(name) { console.log("Hello, " + name);};greet("Bob"); // "Hello, Bob"4.3 箭头函数
ES6 引入的简洁函数表达式,适用于匿名函数。
const greet = (name) => { console.log("Hello, " + name);};greet("Charlie"); // "Hello, Charlie"4.4 返回值
function add(a, b) { return a + b;}console.log(add(5, 3)); // 85. 数组与对象
5.1 数组
创建数组
let fruits = ["Apple", "Banana", "Cherry"];数组方法
push():添加元素到数组末尾。pop():删除数组末尾的元素。shift():删除数组开头的元素。unshift():在数组开头添加元素。splice():从数组中添加或删除元素。forEach():遍历数组并执行回调。map():返回一个新数组,数组中的每个元素经过函数处理。filter():返回一个新数组,包含符合条件的元素。reduce():用于累加、处理数组中的所有元素。
let numbers = [1, 2, 3];let doubled = numbers.map(n => n * 2); // [2, 4, 6]5.2 对象
创建对象
let person = { name: "John", age: 30, greet: function() { console.log("Hello, " + this.name); }};person.greet(); // "Hello, John"访问对象属性
console.log(person.name); // "John"6. 异常处理
6.1 try-catch
try { let result = 10 / 0; console.log(result);} catch (error) { console.log("Error: " + error.message); // 处理错误}7. ES6 新特性
7.1 模板字面量
let name = "Alice";let greeting = `Hello, ${name}!`;console.log(greeting); // "Hello, Alice!"7.2 解构赋值
数组解构
let [a, b] = [1, 2];console.log(a, b); // 1 2对象解构
let person = { name: "Alice", age: 25 };let { name, age } = person;console.log(name, age); // "Alice" 257.3 默认参数值
function greet(name = "Guest") { console.log("Hello, " + name);}greet(); // "Hello, Guest"