news 2026/9/21 23:15:44

JavaScript基础概念详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JavaScript基础概念详解

JavaScript(简称JS)是一门动态、弱类型的脚本语言,主要运行在浏览器端,用于实现网页的交互效果。随着Node.js的出现,它也能运行在服务器端,成为一门“全栈语言”。要掌握JavaScript,首先需要理解其核心基础概念,本文将从入门角度,逐一拆解关键知识点。


目录

一、变量与常量

1. 变量声明

var 已经 out 了,建议用let声明变量

2. 常量声明let

二、数据类型

1. 基本数据类型

2. 引用数据类型

3. 数据类型判断

三、总结


一、变量与常量

变量是用于存储数据的容器,常量则是存储不可修改的数据。在JavaScript中,声明变量和常量有多种方式,不同方式的作用域和特性不同。

1. 变量声明

ES5及之前主要使用var声明变量,ES6新增了let声明变量,二者的核心区别在于作用域:

  • var:函数级作用域,存在变量提升(声明会被提升到当前作用域顶部),可以重复声明。

  • let:块级作用域({}内为块级作用域),不存在变量提升,不可以重复声明。

示例代码:

// var声明 console.log(a); // undefined(变量提升) var a = 10; var a = 20; // 重复声明,不报错 console.log(a); // 20 // let声明 console.log(b); // 报错(不存在变量提升) let b = 10; let b = 20; // 重复声明,报错

var 已经 out 了,建议用let声明变量

2. 常量声明let

使用const声明常量,常量的值一旦确定就无法修改,且必须在声明时初始化。const同样是块级作用域,不存在变量提升,不可以重复声明。

示例代码:

const PI = 3.14159; console.log(PI); // 3.14159 PI = 3.14; // 报错,常量值无法修改 const name; // 报错,常量声明时必须初始化

二、数据类型

JavaScript是弱类型语言,变量的类型会随着存储的数据变化而变化。其数据类型分为两大类:基本数据类型和引用数据类型。

1. 基本数据类型

基本数据类型是直接存储数据值的类型,共有6种:

  • Number:数字类型,包括整数、浮点数和特殊值(NaN、Infinity)。示例:123、3.14、NaN(非数字)、Infinity(无穷大)。

  • String:字符串类型,用于表示文本,可使用单引号、双引号或反引号包裹。示例:'hello'、"world"、`JavaScript`(反引号支持模板字符串,可嵌入变量:`name: ${name}`)。

  • Boolean:布尔类型,只有两个值:true(真)和false(假),常用于条件判断。

  • Undefined:未定义类型,变量声明后未赋值时的默认值。示例:let num; console.log(num); // undefined。

  • Null:空值类型,表示变量指向一个空对象(本质是一个占位符)。示例:let obj = null;。

  • Symbol:ES6新增类型,表示唯一、不可变的值,常用于对象的唯一属性名。示例:const s = Symbol('foo');。

2. 引用数据类型

引用数据类型存储的是数据的引用(即内存地址),数据本身存储在堆内存中。主要包括:

  • Object:对象类型,是JavaScript中最核心的数据结构,用于存储多个键值对。示例:let person = { name: '张三', age: 20 };。

  • Array:数组类型,用于存储有序的集合数据,元素可以是任意类型。示例:let arr = [1, 'hello', true];。

  • Function:函数类型,用于封装可重复执行的代码块。示例:function add(a, b) { return a + b; }。

3. 数据类型判断

常用的类型判断方法有两种:

  • typeof:用于判断基本数据类型(除Null外)和Function。判断Null时会返回'object',这是一个历史遗留问题。

  • instanceof:用于判断引用数据类型,判断某个对象是否是某个构造函数的实例。

示例代码:

// 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 {}); // 'object' console.log(typeof []); // 'object' console.log(typeof function(){}); // 'function' // instanceof判断 console.log({} instanceof Object); // true console.log([] instanceof Array); // true console.log(function(){} instanceof Function); // true

三、总结

本文聚焦JavaScript中变量与常量、数据类型及数据类型转换的核心概念。变量与常量是存储数据的基础,不同声明方式具有不同特性;数据类型分为基本和引用两类,各自有独特的存储方式和特点;数据类型判断是后续开发中避坑的关键,需熟练掌握typeof和instanceof的使用场景。

建议结合文中示例代码反复练习,加深对这些基础概念的理解。若需补充数据类型转换的具体场景案例、不同声明方式的实战避坑技巧等内容,可随时告知。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/21 15:08:57

11、嵌入式Linux开发:内核日志存储、追踪系统与设备树管理

嵌入式Linux开发:内核日志存储、追踪系统与设备树管理 1. 内核日志消息与崩溃信息存储到持久化存储 在Linux系统中,将内核日志消息、内核崩溃(panic)或错误(oops)信息存储到持久化存储是一种重要的调试手段。借助Linux内核的持久化存储支持(CONFIG_PSTORE),我们能够…

作者头像 李华
网站建设 2026/9/20 22:01:48

17、Yocto项目软件层与应用开发全解析

Yocto项目软件层与应用开发全解析 软件层规则与权限 在Linux系统中,SMACK(Smack Mandatory Access Control)规则存储于 /etc/smack/accesses 文件,其格式如下: <subject-label> <object-label> <accesses>这些规则可通过 smackload 实用工具加载…

作者头像 李华
网站建设 2026/9/20 2:56:37

宁波紧固件产业集群的外向型制造与装备升级路径

在全球制造业结构深度调整、产业链竞争不断向精细化与系统化演进的背景下&#xff0c;紧固件这一基础工业产品正在重新被审视其产业价值。从结构安全到装配效率&#xff0c;从长期可靠性到全生命周期管理&#xff0c;紧固件的技术水平与制造能力&#xff0c;已经成为衡量一个地…

作者头像 李华
网站建设 2026/9/21 16:34:09

AI赋能工业4.0:数据堂一站式数据服务加速制造智能化落地

工业4.0的浪潮正以前所未有的力量重塑全球制造业格局。从自动化生产线的普及到智能工厂的落地&#xff0c;从单一设备的升级到全产业链的协同&#xff0c;制造业正迈入数据驱动的智能新时代。这一转型既带来了前所未有的发展机遇&#xff0c;也伴随着诸多挑战&#xff1a;如何将…

作者头像 李华
网站建设 2026/9/20 14:42:12

如何打造吸睛动态头像?GIF动态头像制作指南

在社交平台、游戏账号或工作沟通工具中&#xff0c;一款独特的动态头像总能快速吸引注意力&#xff0c;彰显个人风格。无需专业设计技能&#xff0c;不用下载复杂软件&#xff0c;借助便捷的动态头像制作工具&#xff0c;就能轻松制作出高清流畅的 GIF 动态头像&#xff0c;让你…

作者头像 李华