在HTML中引入JavaScript

在HTML页面中使用JavaScript主要有两种方式:

1. 内联脚本(Inline Script)

直接在HTML文件中使用<script>标签包裹JavaScript代码:

<!DOCTYPE html>
<html>
<head>
  <title>使用JavaScript</title>
</head>
<body>
  <h1>欢迎使用JavaScript</h1>
  
  <script>
    // 在这里编写JavaScript代码
    console.log("Hello, World!");
  </script>
</body>
</html>

2. 外部脚本(External Script)

将JavaScript代码保存在独立的.js文件中,通过<script>标签的src属性引入:

创建 script.js 文件:

// script.js
console.log("Hello, World!");

在HTML中引入:

<!DOCTYPE html>
<html>
<head>
  <title>使用JavaScript</title>
  <script src="script.js"></script>
</head>
<body>
  <h1>欢迎使用JavaScript</h1>
</body>
</html>

注意<script>标签通常放置在<head><body>部分中。外部脚本的src属性需包含正确的文件路径。


如何声明变量

JavaScript中有三种声明变量的关键字:varletconst

关键字 作用域 可变性 特点
var 函数作用域 可变 旧版语法,存在变量提升
let 块级作用域 可变 ES6引入,不允许重复声明
const 块级作用域 不可变 声明时必须赋值

变量声明示例

var x = 10;           // var声明
let y = 20;           // let声明
const PI = 3.14;      // const声明常量

命名规则

  • 必须以字母、下划线(_)或美元符号($)开头
  • 可以包含字母、数字、下划线或美元符号
  • 区分大小写
  • 不能使用保留关键字

字符串的使用

JavaScript提供了多种获取子字符串的方法:

1. substring(startIndex, endIndex)

let str = "Hello, World!";
let subStr = str.substring(7, 12);
console.log(subStr); // 输出 "World"

2. slice(startIndex, endIndex)

let str = "Hello, World!";
let subStr = str.slice(7, 12);
console.log(subStr); // 输出 "World"

3. substr(startIndex, length)

let str = "Hello, World!";
let subStr = str.substr(7, 5);
console.log(subStr); // 输出 "World"

提示:这些方法都不会修改原始字符串,而是返回一个新的字符串。


判断语句

if…else 语句

let num = 10;

if (num > 0) {
  console.log("数字是正数");
} else if (num < 0) {
  console.log("数字是负数");
} else {
  console.log("数字是零");
}

switch 语句

let day = 3;
let dayName;

switch (day) {
  case 1:
    dayName = "星期一";
    break;
  case 2:
    dayName = "星期二";
    break;
  case 3:
    dayName = "星期三";
    break;
  default:
    dayName = "未知";
    break;
}

console.log("今天是" + dayName);

数组

数组是一种用于存储多个值的有序数据结构,可容纳任何类型的值。

基本操作

// 创建数组
let fruits = ["apple", "banana", "orange"];

// 访问元素(索引从0开始)
console.log(fruits[0]); // "apple"

// 修改元素
fruits[2] = "grape";

// 获取长度
console.log(fruits.length); // 3

添加和删除元素

方法 说明 示例
push() 在末尾添加 fruits.push("pear")
pop() 删除末尾 fruits.pop()
unshift() 在开头添加 fruits.unshift("grape")
shift() 删除开头 fruits.shift()

遍历数组

let fruits = ["apple", "banana", "orange"];

// for循环
for (let i = 0; i < fruits.length; i++) {
  console.log(fruits[i]);
}

// forEach方法
fruits.forEach(function(fruit) {
  console.log(fruit);
});

对象

对象是存储键值对的复合数据类型,对象的属性可以是字符串或符号,值可以是任何数据类型。

创建和访问对象

let person = {
  name: "John",
  age: 30,
  email: "[email protected]"
};

// 点号访问
console.log(person.name);        // "John"

// 方括号访问
console.log(person["age"]);      // 30

添加、修改和删除属性

person.age = 35;                   // 修改属性
person.gender = "male";            // 添加属性
delete person.email;               // 删除属性

对象方法

let person = {
  name: "John",
  sayHello: function() {
    console.log("Hello, I'm " + this.name);
  }
};

person.sayHello(); // "Hello, I'm John"

遍历对象

for (let key in person) {
  console.log(key + ": " + person[key]);
}

常用默认方法

方法 说明
toString() 转换为字符串
valueOf() 返回原始值
hasOwnProperty() 检查自身属性

Map和Set

Map(映射)

键值对的集合,键可以是任意数据类型。

let map = new Map();

map.set("name", "John");
map.set("age", 30);

console.log(map.get("name"));      // "John"
console.log(map.has("age"));       // true
console.log(map.size);             // 2

map.delete("age");

Set(集合)

值的集合,每个值唯一不重复。

let set = new Set();

set.add("apple");
set.add("banana");
set.add("apple");   // 重复元素被忽略

console.log(set.has("banana"));    // true
console.log(set.size);              // 2

set.delete("apple");

函数

函数是封装可复用代码块的机制,接受输入参数并返回输出值。

定义函数

// 函数声明
function greet(name) {
  return "Hello, " + name + "!";
}

// 函数表达式
const add = function(a, b) {
  return a + b;
};

// 箭头函数(ES6)
const multiply = (a, b) => a * b;

函数调用

console.log(greet("World"));      // "Hello, World!"
console.log(add(5, 3));           // 8
console.log(multiply(4, 2));      // 8

参数默认值

function greet(name = "Guest") {
  return "Hello, " + name;
}

console.log(greet());             // "Hello, Guest"
console.log(greet("John"));       // "Hello, John"

总结

本文涵盖了JavaScript的核心基础语法:

  • HTML集成:内联脚本与外部脚本两种引入方式
  • 变量声明varletconst的区别与使用
  • 字符串操作substring()slice()substr()方法
  • 条件判断if...elseswitch语句
  • 数组:创建、访问、遍历及增删改操作
  • 对象:属性访问、方法定义、遍历技巧
  • 数据结构Map的键值对与Set的唯一值集合
  • 函数:定义方式与参数处理

掌握这些基础知识,将为深入学习JavaScript高级特性打下坚实基础。