【JS】JavaScript 基础入门
·
一、JavaScript 概述
1.1 什么是 JavaScript?
JavaScript 是一种轻量级、解释型的编程语言,主要用于网页开发,为网页添加交互功能。它支持面向对象、命令式和函数式编程风格。
1.2 JavaScript 的组成
- 两部分划分:ECMAScript(核心语法) + Web APIs(浏览器提供的接口)
- 三部分划分:ECMAScript(语言基础) + DOM(文档对象模型) + BOM(浏览器对象模型)
1.3 学习资源推荐
- MDN Web Docs:权威的 JavaScript 文档和学习资源网站
二、JavaScript 基础语法
2.1 引入方式
2.1.1 内部方式
通过 <script> 标签包裹 JavaScript 代码:
<!DOCTYPE html>
<html>
<head>
<title>JavaScript 基础</title>
</head>
<body>
<script>
alert('欢迎学习 JavaScript!');
</script>
</body>
</html>
2.1.2 外部形式
将代码写在独立的 .js 文件中,通过 src 属性引入:
// demo.js
document.write('欢迎学习 JavaScript!');
<script src="demo.js"></script>
注意:如果 script 标签使用了 src 属性,标签内的代码会被忽略。
2.2 注释
- 单行注释:
// 注释内容 - 多行注释:
/* 注释内容 */
快捷键:编辑器中单行注释的快捷键通常是 Ctrl + /
2.3 结束符
JavaScript 使用 ; 作为语句结束符,但多数情况下可以省略,使用回车替代。
2.4 输入和输出
2.4.1 输出方式
alert():弹窗显示信息document.write():在页面中写入内容console.log():在控制台输出信息(调试用)
2.4.2 输入方式
prompt():弹窗接收用户输入
// 输出示例
alert('Hello World!');
document.write('页面内容');
console.log('调试信息');
// 输入示例
let userName = prompt('请输入您的姓名:');
注意:alert() 和 prompt() 会阻塞页面渲染,先于页面内容执行。
2.5 字面量
- 数字字面量:
123,3.14 - 字符串字面量:
'hello',"world" - 数组字面量:
[1, 2, 3] - 对象字面量:
{name: '张三', age: 18}
三、变量与常量
3.1 变量概念
变量是计算机中存储数据的"容器",用于保存和操作数据。
3.2 变量声明与使用
// 1. 声明变量
let age;
// 2. 变量赋值
age = 18;
// 3. 声明与赋值同时进行
let name = '张三';
// 4. 变量使用
document.write(age); // 输出变量值
// 5. 变量更新
age = 19; // 修改变量值
// 6. 声明多个变量
let a = 1, b = 2, c = 3;
// 7. 交换变量值
let x = 5, y = 10;
let temp = x;
x = y;
y = temp;
3.3 变量命名规则
- 只能是字母、数字、下划线、$,且不能数字开头
- 字母区分大小写
- 不能使用 JavaScript 关键字和保留字
- 建议使用有意义的名称,见名知意
// 正确示例
let age = 18;
let age1 = 19;
let _age = 20;
let $age = 21;
let userName = '小明';
// 错误示例
// let 1age = 18; // 不能数字开头
// let let = 18; // 不能使用关键字
3.4 let 与 var 的区别
-
let:
- 不允许重复声明
- 块级作用域
- 更严谨,推荐使用
-
var:
- 允许重复声明
- 函数级作用域
3.5 变量的本质
变量是程序在内存中申请的一块用来存放数据的小空间。
3.6 常量
使用 const 声明不可变的变量:
const PI = 3.14;
const MAX_SIZE = 100;
// 错误:常量不能重新赋值
// PI = 3.14159;
// 错误:常量声明时必须赋值
// const UNINITIALIZED;
四、数据类型
4.1 数据类型分类
- 基本数据类型:number、string、boolean、undefined、null
- 引用数据类型:object(包括数组、函数等)
4.2 基本数据类型
4.2.1 数值类型(Number)
let integer = 100; // 整数
let decimal = 12.345; // 小数
let negative = -40; // 负数
console.log(typeof integer); // "number"
console.log(typeof decimal); // "number"
4.2.2 字符串类型(String)
let str1 = '单引号字符串';
let str2 = "双引号字符串";
let str3 = `反引号字符串`;
let emptyStr = ''; // 空字符串
// 引号嵌套
let msg1 = "我是'小明'";
let msg2 = '我是"小明"';
// 转义字符
let escaped = 'pink\'123\''; // pink'123'
console.log(typeof str1); // "string"
4.2.3 布尔类型(Boolean)
let isStudent = true;
let isWorking = false;
console.log(typeof isStudent); // "boolean"
4.2.4 Undefined
let uninitialized;
console.log(typeof uninitialized); // "undefined"
console.log(uninitialized); // undefined
4.2.5 Null
let emptyObject = null;
console.log(typeof emptyObject); // "object"(这是 JavaScript 的历史遗留问题)
4.3 引用数据类型
4.3.1 数组(Array)
// 数组声明
let fruits = ['苹果', '香蕉', '橙子'];
let numbers = [1, 2, 3, 4, 5];
// 数组使用
console.log(fruits[0]); // "苹果"
console.log(fruits[1]); // "香蕉"
// 数组长度
console.log(fruits.length); // 3(索引号+1)
4.4 类型检测
使用 typeof 运算符检测数据类型:
console.log(typeof 123); // "number"
console.log(typeof 'hello'); // "string"
console.log(typeof true); // "boolean"
console.log(typeof undefined); // "undefined"
console.log(typeof null); // "object"
console.log(typeof [1, 2, 3]); // "object"
4.5 JavaScript 语言特性
JavaScript 是弱类型语言,变量的数据类型会根据赋值自动确定。
五、运算符
5.1 算术运算符
let a = 10, b = 3;
console.log(a + b); // 13
console.log(a - b); // 7
console.log(a * b); // 30
console.log(a / b); // 3.333...
console.log(a % b); // 1(取余)
5.2 特殊数值情况
console.log(0.1 + 0.2); // 0.30000000000000004(浮点数精度问题)
console.log(1 / 0); // Infinity(无穷大)
console.log('abc' * 1); // NaN(非数字)
// 任何对 NaN 的操作都会返回 NaN
console.log(NaN + 1); // NaN
六、类型转换
6.1 隐式转换
JavaScript 会自动在某些情况下转换数据类型:
// 字符串拼接
let num = 13;
let str = '2';
console.log(num + str); // "132"(数值转字符串)
// 数学运算
console.log(num - str); // 11(字符串转数值)
console.log('10' * '2'); // 20
console.log('10' / '2'); // 5
// 使用 + 转换为数值
console.log(+'123'); // 123
let salary = +prompt('请输入年薪:');
// 特殊运算
console.log(undefined + 1); // NaN
console.log(null + 1); // 1
6.2 显式转换
6.2.1 Number() 转换
let strNum = '12';
let realNum = Number(strNum);
console.log(realNum + 8); // 20
// 转换失败返回 NaN
console.log(Number('hello')); // NaN
6.2.2 parseInt() 和 parseFloat()
console.log(parseInt('12px')); // 12
console.log(parseFloat('12.34em')); // 12.34
console.log(parseInt('abc')); // NaN
6.3 字符串操作
6.3.1 字符串拼接
let firstName = '张';
let lastName = '三';
let fullName = firstName + lastName; // "张三"
let age = 18;
let info = '我今年' + age + '岁了'; // "我今年18岁了"
6.3.2 模板字符串
let age = 18;
let name = '李四';
// 传统方式
console.log('我今年' + age + '岁了,我叫' + name);
// 模板字符串方式
console.log(`我今年${age}岁了,我叫${name}`);
七、最佳实践
7.1 编码规范
- 变量命名:使用有意义的名称,采用驼峰命名法
- 常量使用:不会改变的值使用 const 声明
- 类型明确:避免过度依赖隐式转换,必要时使用显式转换
- 代码注释:适当添加注释,提高代码可读性
- 错误处理:对可能出现的 NaN 情况进行检查
7.2 注意事项
- 使用
let和const代替var - 数组和对象使用前先声明
- 注意
undefined和null的区别 - 合理使用模板字符串提高代码可读性
这份文档涵盖了 JavaScript 的基础知识,包括语法、变量、数据类型和类型转换等核心概念,为后续学习更高级的 JavaScript 特性打下坚实基础。
更多推荐


所有评论(0)