JavaScript 是一种动态类型、弱类型的脚本语言,其语法灵活且易于上手。以下是 JavaScript 的基础语法与数据类型的核心内容:
变量声明:
var
:传统变量声明(存在变量提升和函数作用域)。let
(ES6+):块级作用域变量,可重新赋值。const
(ES6+):块级作用域常量,声明后不可重新赋值。let age = 25;
const PI = 3.14;
注释:
// 这是注释
/* 多行注释 */
语句结束符:
;
可选,但建议显式添加以避免意外错误。区分大小写:
myVar
与 myvar
不同。JavaScript 数据类型分为 原始类型(Primitive) 和 引用类型(Reference)。
**number
**:整数、浮点数、NaN
(非数字)、Infinity
。
let num = 42;
let price = 9.99;
let result = 10 / "abc"; // NaN
**string
**:文本,用单引号 ''
或双引号 ""
包裹。
let name = "Alice";
let msg = 'Hello, ${name}!'; // 模板字符串需用反引号 ``
**boolean
**:true
或 false
。
let isStudent = true;
**null
**:表示“空值”,需显式赋值。
let empty = null;
**undefined
**:变量声明未赋值时的默认值。
let x;
console.log(x); // undefined
**symbol
**(ES6+):唯一且不可变的值,用于对象属性键。
const id = Symbol("unique_id");
**bigint
**(ES2020+):表示大整数,后缀加 n
。
const bigNum = 123456789012345678901234567890n;
**object
**:键值对的集合。
let person = { name: "Bob", age: 30 };
**array
**:有序数据集合。
let colors = ["red", "green", "blue"];
**function
**:可执行代码块。
function greet(name) {
return `Hello, ${name}!`;
}
console.log("5" + 1); // "51"
NaN
:console.log("abc" - 1); // NaN
Number()
, String()
, Boolean()
函数:let str = "123";
let num = Number(str); // 123
let bool = Boolean(0); // false
**typeof
**:检测原始类型(注意 null
返回 "object"
)。
typeof "hello"; // "string"
typeof null; // "object"(历史遗留问题)
**instanceof
**:检测引用类型(如数组、对象)。
[] instanceof Array; // true
{} instanceof Object; // true
**Array.isArray()
**:专用于检测数组。
Array.isArray([]); // true
动态类型:变量类型可动态改变。
let a = 10; // number
a = "hello"; // string
假值(Falsy):false
, 0
, ""
, null
, undefined
, NaN
在布尔上下文中视为 false
。
**==
vs ===
**:推荐使用严格相等 ===
(不进行类型转换)。
掌握这些基础后,可以进一步学习函数、作用域、对象原型等进阶内容。