零基础JavaScript全套学习(一):原生基础语法

发布时间:2026/8/8 8:44:27

零基础JavaScript全套学习(一):原生基础语法
一、前言JavaScript是网页交互的灵魂很多初学者直接上手写网页却对变量、数据类型、函数、对象这些底层概念一知半解写代码全靠复制粘贴遇到bug无从下手。本篇从零梳理JavaScript核心原生语法从最基础的引入方式到数据类型、流程控制、函数、集合、面向对象把JS地基打牢。只有吃透原生JS后续DOM操作、jQuery框架才能够学的通透。二、JavaScript入门与基础语法1、什么是JavaScriptJavaScript简称JS是运行在浏览器端的脚本语言负责网页的交互效果点击事件、表单校验、数据处理、页面动态修改。HTML负责页面结构CSS负责页面样式JavaScript负责行为交互。2、JS的引入方式① 内部脚本写在页面script标签内script alert(Hello JavaScript); /script② 外部JS文件新建 .js 文件通过script的src引入script srctest.js/script③ 行内写法写在标签事件属性中不推荐button onclickalert(hello)点击/button3、浏览器控制台按F12打开开发者工具切换控制台console面板-console.log(内容)打印输出调试最常用-alert(提示)浏览器弹窗-控制台可以直接写JS代码即时运行测试4、严格模式 use strictJS语法比较松散严格模式可以开启严禁校验规避很多隐式bug。写在脚本或者函数最开头// 必须写在JavaScript第一行 use strict; // 严格模式下变量必须声明不能直接 a10; // 局部变量建议都使用let定义 let a10; console.log(a);作用未声明变量禁止直接使用消除语法隐患推荐开发时开启。三、变量、数据类型详解1、变量声明 let / const / var- let普通变量值可以修改块级作用域推荐- const常量定义之后不能修改必须初始化推荐优先使用- var旧版本语法存在作用域bug尽量避免使用let num10; num20; const PI3.14; // PI3.15; // 报错常量不能修改块级作用域let / const 在 {} 大括号内部定义外面访问不到var 不受大括号限制。2、基础数据类型- number数字、整数、小数JS不区分小数和整数Number123 // 整数123 123.1 // 浮点数123.1 1.123e3 // 科学计数法 -99 // 负数 NaN // not a number Infinity // 表示无限大- string字符串单引号、双引号、反引号abc abc- boolean布尔值 true / false- null空值- undefined变量声明但是没有赋值- object对象、数组引用类型- 逻辑运算 两个都为真结果为真 || 一个为真结果为正 ! 真即假假即真- 比较运算符 等于类型不一样值一样也会判断为true 绝对等于类型一样值一样结果才为true3、字符串① 字符串长度console.log(str.length)② 字符串的可变性不可变③ 大小写转换// 注意这里是方法不是属性 str.toUpperCase() str.toLowerCase()④ 查找字符下标str.indexOf(t)⑤ 截取字符串str.substring(1) // 从第一个字符串截取到最后一个字符串 str.substring(1, 3) // [1, 3)⑥ 分割str.split( )4、数组类型Array可以包含任意的数据类型var arr [1, 2, 3, 4, 5, 6]① 数组长度arr.length② indexOf通过元素获得下标索引arr.indexOf(2)字符串的 1 和数字 1 是不同的③ slice() 截取Array的一部分返回一个新数组类似于String中的substring④ push()pop() 尾部arr.push() // 末尾添加元素 arr.pop() // 末尾删除⑤ unshift()shift() 头部arr.unshift() 头部添加元素 arr.shift() 头部删除⑥ 排序arr.sort()⑦ 元素反转arr.reverse()⑧ concat()(3) [C, B, A] arr.concat([1,2,3]) (6) [C, B, A, 1, 2, 3] arr (3) [C, B, A]注意concat()并没有修改数组只是会返回一个新的数组⑨ 连接符 join打印拼接数组使用特定的字符串连接(3) [C, B, A] arr.join(-) C-B-A5、对象类型对象使用 {key : value} 键值对存储数据描述事物多个属性间使用逗号隔开最后一个属性不加逗号var 对象名 { 属性名属性值 属性名属性值 属性名属性值 } // 定义了一个person对象它有四个属性 var person { name: xiaoming, age: 19, email: 264515365qq.com, score: 99 }JavaScript中的所有的键都是字符串值是任意对象① 对象赋值person.namexiaohong② 使用一个不存在的对象属性不会报错undefinedperson.school undefined③ 动态的删减属性通过 delete 删除对象的属性delete person.name true④ 动态的添加直接给新的属性添加值即可person.school tsinghua⑤ 判断属性值是否在这个对象中xxx in xxxage in person true // 继承 toString in person true⑥ 判断一个属性是否是这个对象自身拥有的 hasOwnProperty()person.hasOwnProperty(toString) false person.hasOwnProperty(age) true四、流程控制分支与循环1、分支 if / else、switchlet score80; if(score60){ console.log(及格); }else{ console.log(不及格); }switch适合固定值匹配let day1; switch(day){ case 1: console.log(周一); break; case 2: console.log(周二); break; }2、循环 for while// for循环 for(let i0; i5; i){ console.log(i); } // while循环 let i0; while(i5){ i; }3、iterable迭代遍历数组、Map、Set属于iterable可迭代对象使用 for of 遍历拿到元素值let arr[11, 22, 33] for(let item of arr){ console.log(item); }for in 拿到下标for of 拿到元素遍历数组优先 for of五、函数、内置对象Date、JSON1、函数定义与参数函数封装一段可重复执行代码// 普通函数 function add(a, b){ return ab; } // 匿名函数 let add function(a, b){ return ab; }参数可以不传不传的话参数为 undefined2、arguments、rest是一个JS免费赠送的关键字代表传递进来的所有的参数是一个数组let abs function(x){ console.log(x-x); for(let i0; iarguments.length; i){ console.log(arguments[i]); } if(x0){ return x; }else{ return -x; } }arguments包含所有的参数我们有时候想使用多余的参数来进行附加操作需要排除已有的参数。ES6引入的新特性获取除了已经定义的参数之外的所有参数function aaa(a, b, ...rest){ console.log(a-a); console.log(b-b); console.log(rest); }rest参数只能写在最后面必须用 ... 标识3、Date日期对象处理时间日期var now new Date(); // Sat Aug 07 2025 10:13:06 GMT0800中国标准时间 now.getFullYear(); // 年 now.getMonth(); // 月 now.getDate(); // 日 now.getDay(); // 星期几 now.getHours(); // 时 now.getMinutes(); // 分 now.getSeconds(); // 秒 now.getTime(); // 时间戳 全世界统一 1970 1.1 0:00:00 毫秒数 console.log(new Date(1578106175991)) // 时间戳转为时间4、JSON对象JSON是前后端数据交换格式本质字符串在JavaScript一切皆为对象、任何JS支持的类型都可以用JSON来表示格式·对象都用 {}·数组都用 []·所有的键值对都是用key : value⭐JSON.stringify()JS对象转JSON字符串⭐JSON.parse()JSON字符串转回JS对象let obj {name:小红}; let jsonStr JSON.stringify(obj); let back JSON.parse(jsonStr);JSON和JS对象的区别var obj {a:hello, b:hellob}; var json {a:hello, b:hellob}六、集合Map与SetMap键值对集合key可以是任意类型let map new Map(); map.set(name, zhangsan); // 存 map.get(name); // 取 map.has(name); // 判断是否存在 map.delete(name); // 删除Set无序不重复集合自动去重let set new Set([1,2,2,3]); // 结果 {123} 自动去重 set.add(4); set.has(2); set.delete(1);七、JS面向对象原型与class继承JS是基于原型的面向对象语言⭐原型继承每一个对象都有__proto__原型属性对象可以借用原型上的方法var xiaoming { name:xiaoming }; var Student { study: function(){ console.log(study...); } }; // xiaoming的原型是Student xiaoming.__proto__Student; function Person(name){ this.namename; } // 原型上添加方法 Person.prototype.sayfunction(){ console.log(this.name); } let p1 new Person(xiaowang); p1.say();⭐class继承class Person{ constructor(name){ this.namename; } say(){ console.log(this.name); } } // 继承 class Student extends Person{ constructor(name, age){ super(name); this.ageage; } } let s new Student(xiaoli, 16); s.say();八、结语本篇完成了JavaScript原生全部核心知识点学习。我们掌握了变量、各类数据类型、函数、内置对象、集合以及JS独特的面向对象机制。原生JS是一切前端交互的根基理解好这些内容接下来我们就可以进入网页实操学习DOM、BOM以及i、jQuery库真正实现网页交互效果。

相关新闻

RAG系统优化实战:从检索到生成的性能提升与工程实践

RAG系统优化实战:从检索到生成的性能提升与工程实践

2026/8/8 8:44:27

1. 项目概述:从“能用”到“好用”的RAG进化之路最近和几个做AI应用落地的朋友聊天,大家不约而同地提到了同一个痛点:RAG(检索增强生成)系统,初版搭建起来其实不难,LangChain、LlamaIndex这些框…

Java 17 全景学习路线:从核心语法到JUC并发实战

Java 17 全景学习路线:从核心语法到JUC并发实战

2026/8/8 8:44:27

你是不是也遇到过这样的困惑:网上Java教程铺天盖地,从“三天速成”到“百万年薪”,但真到自己动手时,却发现要么知识点零散不成体系,要么版本老旧,学了半天连个像样的项目都跑不起来。更头疼的是&#xff0…

3D机械制图学习路径:从CREO参数化建模到工程图实战

3D机械制图学习路径:从CREO参数化建模到工程图实战

2026/8/8 8:44:27

1. 从零到一:3D机械制图软件的学习路径规划 很多刚入行的朋友,或者是从二维CAD转向三维设计的工程师,常常会问我一个问题:“这么多3D软件,我该从哪个学起?怎么学才能不走弯路?” 这个问题背后&a…

技术决策:直接操作与规范流程的权衡与实战指南

技术决策:直接操作与规范流程的权衡与实战指南

2026/8/8 9:34:29

1. 先搞清楚“直接点”和“走程序”到底在说什么 “直接点还是走程序?”这个问题,乍一看像是个选择题,但在技术开发、系统运维、团队协作甚至日常沟通里,它其实是一个高频出现的决策困境。简单翻译一下: “直接点” …

C++五子棋项目实战:从零实现控制台游戏与核心算法

C++五子棋项目实战:从零实现控制台游戏与核心算法

2026/8/8 9:34:29

1. 项目概述:为什么选择用C写五子棋? 如果你正在学习C,或者想找一个能综合运用基础语法、数组、函数和简单算法的练手项目,那五子棋游戏开发绝对是个黄金选择。它不像俄罗斯方块那样需要复杂的图形刷新,也不像大型游戏…

高校双创教育服务门户:SpringBoot架构设计与实践

高校双创教育服务门户:SpringBoot架构设计与实践

2026/8/8 9:34:29

1. 项目概述:高校双创教育服务门户的设计初衷高校创新创业教育作为国家人才培养战略的重要组成部分,近年来在各院校快速普及。传统线下管理模式面临信息孤岛、资源分散、流程繁琐等痛点。我们团队基于SpringBoot框架开发的这套双创教育服务门户&#xff…

芯片功耗与热设计:从原理到PCB散热实战

芯片功耗与热设计:从原理到PCB散热实战

2026/8/8 9:34:29

1. 从一次“神秘”的芯片过热说起 最近在调试一块新设计的板子时,遇到了一个让我琢磨了好一阵子的现象:主控芯片在运行一个并不算复杂的算法时,表面温度摸起来烫得有点反常。用热成像仪一扫,局部热点接近了芯片规格书的结温上限。…

一款好用的微信聚合聊天工具丨AI替代客服效率翻10倍!

一款好用的微信聚合聊天工具丨AI替代客服效率翻10倍!

2026/8/8 9:34:29

在当下的数字化运营里,微信生态的客户资源管理绝对是企业私域运营的核心环节,但凡做私域的小伙伴,都深知把微信端的客户管好用好有多重要!但传统的微信客户管理模式,真的让客服团队踩了不少坑,各种问题扎堆…

毕设别扎堆普通教务!大学生入学审核校园细分系统,小众好讲不易撞题!

毕设别扎堆普通教务!大学生入学审核校园细分系统,小众好讲不易撞题!

2026/8/8 9:24:29

最近好多准备课设、毕设的学弟学妹跟我吐槽,一搜校园类项目全是综合教务、学生成绩管理,答辩极易和同学撞选题,老师听得多了很难留下印象;网上零散源码大多缺数据库、没有完整配套论文,光是修复各种运行bug就要熬通宵。…

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

2026/8/6 19:19:00

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am…

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

2026/8/8 5:17:40

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架…

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

2026/8/5 8:19:55

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,…

昇腾AI代理实现多号通话自动化

昇腾AI代理实现多号通话自动化

2026/8/8 0:03:20

基于昇腾(Ascend)硬件与AtomGit AI社区的开源生态,结合AI Agent技术,可以实现一个模拟“通话重复使用机号复制”功能的安卓手机应用原型。其核心是利用AI Agent进行意图理解、任务编排和自动化操作,模拟或管理多号码的…

2026年Graph+AI Agents最新创新思路

2026年Graph+AI Agents最新创新思路

2026/8/8 0:03:20

本次围绕GraphAI Agents这个方向筛选了15篇高质量论文,都是近年来具有较高引用价值或方法创新的研究工作,其中部分来自IJCAI、AAAI、ICRA。 对于论文er来说,这些论文方法结构清晰、可复现性较强,在多个任务上都有可延展的空间。如…

Wand-Enhancer 指南:5分钟解锁Wand专业版功能,永久移除2小时限制

Wand-Enhancer 指南:5分钟解锁Wand专业版功能,永久移除2小时限制

2026/8/8 0:03:20

Wand-Enhancer 指南:5分钟解锁Wand专业版功能,永久移除2小时限制 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 还在为Wan…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/8 5:07:31

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/7 8:02:42

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/8 2:30:15

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…