每天3小时学前端之JS-第01天-初识JS

Json工程实践:避坑指南与生产级优化策略 Json作为最主流的数据交换格式,其核心价值在于跨语言兼容性、人类可读性与解析效率的平衡。它基于严格的RFC 7159语法规范,依赖UTF-8编码,但实际落地中常因BOM头、转义缺失、嵌套过深或数字精度问题引发解析失败。技术价值体现在降低系统间协作成本,支撑API通信、配置管理与结构化日志等关键场景。本文聚焦工程化挑战——涵盖中文乱码根因分析、循环引用防御、Schema契约校验、流式大文件处理及跨语言兼容性雷区,结合Python/Node.js/Go等多语言实操案例,提供可直接集成CI/CD的生产级解决方案 阅读详情

初识JS

标记语言与编程语言

跟之前学过的HTML和CSS不同,JavaScript才算是一门真正意义上的编程语言

标签
属性
标签
属性
标签
属性
标记语言
div
class
img
src
a
href
数据保存
运算
逻辑判断
循环
编程语言
变量
+-
*/
if
else
for
while
  • 标记语言:由标记(标签/元素),标记属性等简单的见名知意的符号,来代表不同的布局单元来组织网页。

  • 编程语言:具有变量,逻辑判断,循环等编程语句必须具备的语法规范等。

计算机编程语言

语言是用来交流的工具,人类语言是人与人之间交流的工具。

计算机的语言世界里只有二进制的0和1。和十进制只有0到9十个数字一样,二进制就只有0和1,十进制里面是逢十进一,二进制里面则是逢二进一。所以二进制里面是不可能出现大于1的数字的。

JS属于编程语言里面的高级语言,低级语言如:汇编语言。越高级就越接近人类可以读懂的语言,越低级就越接近机器语言(二进制语言)。

高级语言转化成机器可以识别的二进制语言有两种办法:

  • 整体编译:通篇翻译,生成二进制文件,犹如直接念翻译好的英文文章。
  • 逐行翻译:需要解释器进行实时翻译,犹如同声传译。

编译型语言和解释型语言

JS是解释型语言,JS需要在浏览器(宿主环境/解释器)中运行

  • 编译性:在执行前先将代码编译成计算机可以识别的二进制文件,比如C、C++、Golang会先编译生成.exe文件,后续执行就不用再编译了,直接运行这个二进制文件就可以了。

    • 优点:编译好即可使用,不需要运行环境或解释器

    • 缺点:可移植性差,因为每个平台(操作系统)能理解的二进制文件可能不同,需要重新编译(如windows下需要编译成.exe文件,linux下需要编译成.erp文件)。

编译
windows下直接运行
编译
Linux下直接运行
windows下源文件
二进制
.exe文件
实现功能
Linux下源文件
二进制
.erp文件
  • 解释性:执行代码前不用编译,而是在运行代码的时候逐行去解释执行,所以需要解释器,比如浏览器。

    • 优点:可移植性好,只需各个平台(操作系统)配有该语言的解释器即可,如js、php、python

    • 缺点:速度慢,需要不断的进行读代码和解释之间的来回切换,切换的过程也是需要消耗性能和时间的

运行
解释执行
运行
解释执行
源文件
windows下浏览器
实现功能
Linux下浏览器

可以看出js运行的时候有浏览器作为宿主环境,进行承载,这样就使得语言与机器之间又多了一层,也是js为什么被称作高级语言的原因


脚本语言JS

早期的JS只是作用浏览器的客户端进行表单验证的语言。其目的是为了提高用户体验。

没有JS的表单验证

浏览器 服务器 请求验证 1 表单信息 需要通过缓慢的网络传递表单数据 验证不通过,请重新填写! 返回验证结果 2 验证通过,注册成功! 验证表单信息 浏览器 服务器

有JS的表单验证

浏览器 服务器 请求验证 1 表单信息 不需要通过网络传递表单数据 验证不通过,请重新填写! 返回验证结果 2 验证通过,注册成功! 验证表单信息 浏览器 服务器

JS语言历史简介

  • ECMA:European Computer Manufacturers Association(欧洲计算机制造商协会)

  • TC39:ECMA的第39号技术专家委员会(Technical Committee 39,简称TC39)负责制订ECMAScript标准

  • ECMAScript 标准:是一种由ECMA组织TC39专家委员会通过的ECMA-262的脚本程序设计语言标准。俗称JavaScript。ECMAScript可以理解为是JavaScript语法的标准规范,所以JavaScript是ECMAScript标准的实现。

1997年7月,ECMA 组织发布262号标准文件(ECMA-262)的第一版,ECMAScript 1.0 版发布。

1998年6月,ECMAScript 2.0 版发布。

1999年12月,ECMAScript 3.0 版发布。

2007年10月,ECMAScript 4.0版草案发布,由于4.0版的目标过于激进,各方发生了严重分歧。

2008年7月,ECMA开会决定,中止了ECMAScript 4.0的开发,废除了ECMAScript 4.0这个版本。 将其中涉及现有功能改善的一小部分,发布为 ECMAScript 3.1。会后不久,ECMAScript 3.1 就改名为 ECMAScript 5。

2009年12月,ECMAScript 5.0 版 正式发布。

2015年6月,ECMAScript 6 正式发布,并且更名为“ECMAScript 2015”。俗称:ES6

TC39 委员会计划,以后每年发布一个 ECMAScript 的版本,以年号命名,2016年发布“ECMAScript 2016”,2017年发布“ECMAScript 2017”,以此类推。


JS语言构成

ECMAScript
JavaScript
DOM
BOM
  • ECMAScript:语法、类型、语句、关键字、保留字、操作符、全局对象

  • 文档对象模型(DOM):将网页转为一个 JavaScript 对象,从而可以用脚本进行各种操作(比如增删内容)。

  • 浏览器对象模型(BOM):浏览器窗口大小、位置,页面地址,历史记录等

浏览器组成部分

后来单独分离出来
渲染引擎
内核
JS引擎
shell操作界面
浏览器
其他

五大浏览器内核引擎

浏览器渲染引擎JS引擎
ChromeWebkit/BlinkV8
FirefoxGeckoSpiderMonkey
SafriWebkitjavascriptcore
IETridentChakra
OperaPrestoCarakan

语法基本了解

JS可编写位置
  • 在script标签内部直接嵌入代码。
    • 多个script标签的报错不会相互影响
  • 通过script标签的src属性加载外部脚本
    • 带有src属性的script标签内部的代码将会被忽略
  • 事件属性
    • 网页元素的事件属性(比如onclick和onmouseover),可以写入js代码。当指定的事件发生时,就会调用js代码。
      • <button onclick="console.log('按钮被点击了!')">点击</button>
  • URL 协议
    • URL 支持javascript:协议,即在 URL 的位置写入代码,点击这个URL的时候就会执行 js代码。
      • <a href="javascript:console.log('a链接被点击了!')">点击</a>
script标签
  • 属性
    • type:定位引用文件的类型,一般省略
      • text/javascript(老版本)
      • application/javascript(新版本推荐)
    • src:指定引用文件的路径
    • 并行加载js代码的两个属性
      • defer:并行加载外部js代码,等待页面渲染完成再执行外部js代码
      • async:并行加载外部js代码,外部js加载完成立即执行外部js代码
    • 不加以上两个属性(defer或async)的话,外部js代码会直接按所写位置执行,执行完外部js代码之后,再接着往下渲染页面
      参考文档:MDN
输入输出语句
  • console.log:控制台输出
  • document.write:页面输出
  • alert:浏览器弹出
  • prompt:接收输入值
  • confirm:返回一个布尔值,如果用户点击“确定”,返回true;如果用户点击“取消”,则返回false。
注释
  • 单行注释://
  • 多行注释:/**/
分号
  • 可以省略,有些情况要注意,后续讲解
空格与换行
  • 空格与换行不是语法的一部分
Web漏洞挖掘实战:从零搭建知识体系与SRC实战指南 Web安全的核心在于理解应用交互中的潜在风险,其原理源于对用户输入验证、会话管理和业务逻辑的深入分析。掌握常见漏洞如SQL注入、XSS和逻辑漏洞,不仅能提升系统安全性,更能在安全测试、渗透评估等场景中发挥关键作用。本文聚焦于构建系统化的漏洞挖掘能力,通过环境搭建、工具使用和实战流程的详细拆解,帮助读者建立从信息收集到报告输出的完整路径。文中融入了对Burp Suite、SQL注入等核心工具与技术的深度解析,旨在为初学者提供一条清晰、可操作的学习与实践路线,最终实现在授权测试中独立挖掘并提交有效漏洞的目标。 阅读详情

相关推荐

【WorkBuddy专栏47】学生党用WorkBuddy做开发学习——多语言速成与练习结合实战

【WorkBuddy专栏47】学生党用WorkBuddy做开发学习——多语言速成与练习结合实战

AI人人懂 1092

为了不被前端淘汰,我每天都学习3小时

“对于程序员来说,如果哪一天开始他停止了学习,那么他的职业生涯便开始宣告消亡。”这不是什么危言耸听的怪语,而是一位大牛几年前告诉我的,他的信条。作为前端程序员,前端火起来...

Phodal's zenthink 772

【WorkBuddy专栏43】如何利用WorkBuddy开发一个PC网站(上)——环境选型、设计编码到部署上线

【WorkBuddy专栏43】如何利用WorkBuddy开发一个PC网站(上)——环境选型、设计编码到部署上线

AI人人懂 2276

前端学习总结(三)javascript——前端世界的精髓所在

js总结

浩时代的博客 8229

【WorkBuddy专栏36】从踩坑到上线——WorkBuddy代码开发避坑指南与部署完全手册

【WorkBuddy专栏36】从踩坑到上线——WorkBuddy代码开发避坑指南与部署完全手册

AI人人懂 1075

【WorkBuddy专栏23】SOUL、USER、MEMORY——三个文件,决定你的 AI「是什么人」

【WorkBuddy专栏23】SOUL、USER、MEMORY——三个文件,决定你的 AI「是什么人」

AI人人懂 2270

window编译最新的spiderMonkey

原文地址http://www.cctry.com/forum.php?mod=viewthread&tid=250698&extra=page%3D1&page=1& 如何让我们的c++程序可以支持脚本,尤其是支持JavaScript是件很有意思的事情的,那样可以为软件的灵活性,扩展性提供可能。你可能会说用JavaScript 引擎,对,JavaScript 引擎有很多,有Google v8,s

HeroRazor的专栏 3357

Altera Cyclone4 EP4CE15F17C8核心板硬件设计避坑指南(附AD09工程文件)

本文深入解析Altera Cyclone4 EP4CE15F17C8核心板硬件设计中的关键问题与解决方案,涵盖电源架构优化、信号完整性处理、热设计及生产调试要点。特别提供经过验证的AD09工程文件,帮助开发者规避常见设计陷阱,提升FPGA项目的成功率与可靠性。

weixin_29159441的博客 298

JavaScript学习笔记三-数组

eval命令 eval命令接受一个字符串作为参数,并将这个字符串当作语句执行。 eval('var a = 1;'); a // 1 放在eval中的字符串,应该有独自存在的意义,不能用来与eval以外的命令配合使用。举例来说,下面的代码将会报错。 如果eval的参数不是字符串,那么会原样返回。 eval(123) // 123 eval没有自己的作用域,都在当前作用域内执行,因此可能会修改当...

hotboyboy的博客 269

【Attention Is All You Need】Transformer模型精读

Attention Is All You Need》这篇论文奠定了Transformer模型的基础,为深度学习的发展提供了新的方向。Transformer通过自注意力机制和并行化处理显著提升了计算效率和模型性能。然而,Transformer的广泛应用也带来了新的挑战,如计算资源的消耗和对长序列的处理能力等。随着技术的不断发展,研究人员已经提出了诸如Efficient Transformer、Reformer等变种,旨在提升Transformer的效率和适应性。

Lewiz_124的博客 1499

金蝶云星空API实战:从零到一,用Postman打通业务数据流

本文详细介绍了如何使用Postman调试金蝶云星空API,从创建第三方应用到实战调试技巧,帮助开发者快速打通业务数据流。文章重点讲解了API配置的关键细节、常见问题排查方法以及自动化测试方案,提升开发效率与准确性。

weixin_33712987的博客 522

第一天 为什么有那么多人要学前端

第一天:为什么有那么多人要做前端? 浏览 一开始提供了一系列的网页,欣赏别人写的好看的页面,不知道为啥,打开这些网页有些好慢。下面附上链接: http://2014.artsy.net/ https://codepen.io/Yakudoo/full/rJjOJx https://codepen.io/pissang/full/geajpX https://codepen.io/tsu...

hualala_32的博客 676

从PLC到机械臂:揭秘工业自动化中的信号交互与控制逻辑

本文深入解析了PLC与机械臂在工业自动化中的信号交互与控制逻辑,详细介绍了硬件连接方案、通信机制及控制逻辑设计。通过西门子PLC与六轴机械臂的实战案例,展示了从信号采集到动作执行的完整流程,并探讨了高级控制策略与行业应用前景,为工程师提供了一套完整的实践框架。

weixin_29304985的博客 388

用100天学会Python:从入门到交付项目的完整学习路线指南

看了十几个教程视频,关掉视频就写不出代码,下一步该学什么全靠猜?Python 100 天(项目全称"Python - 100天从新手到大师")解决的就是这个麻烦:它把 Python 学习拆成 100 个按天推进的独立专题,每天打开对应文档就知道该干什么,每过一个阶段就有东西可以拿得出手。 [![Python 100 天学习路线背景:TIOBE 编程语言热度榜](https://raw.gitco

gitblog_00365的博客 817

【RDMA】13. RDMA之用户态与内核态交互

原文:https://zhuanlan.zhihu.com/p/346708569 在“RDMA之Verbs”一文中我们说道,Verbs API分为用户态和内核态,分别以ibv_和ib_作为前缀。RDMA技术的最大的优势就在于用户态可以绕过内核,直接控制硬件收发数据,减少了系统调用和内存拷贝次数,所以大部分的RDMA应用都是用户态应用,即使用以ibv_为前缀的用户态Verbs API。 但是并非所有的用户态Verbs API都可以完全绕开内核,本文中我来讲解一下哪些API依赖于内核RDMA子系统(包括驱

我的笔记本 4285

在 Linux 64 位上遭遇 Signal 7 与 ST22 SYSTEM_CORE_DUMPED:从 es/implementation=std 到 /dev/shm 的一套落地排查法

摘要: Linux 64位SAP系统出现SYSTEM_CORE_DUMPED和Signal 7(对应SIGBUS)错误时,核心问题是进程因共享内存资源异常被操作系统强制终止。主要诱因包括:1)/dev/shm的tmpfs默认容量不足(通常仅占物理内存50%);2)SAP内存管理参数es/implementation=map在64位场景下的敏感性。解决方案应双管齐下:在实例profile设置es/implementation=std以降低对tmpfs的依赖,同时按(RAM+Swap)*75%重新配置/dev/

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 168

哔咔漫画下载器:轻松打造个人离线漫画图书馆的终极方案

还在为网络不稳定无法畅快阅读漫画而烦恼吗?**哔咔漫画下载器**是你的完美解决方案!这款专为manhuabika.com设计的下载工具,让你轻松将心爱的漫画收藏到本地,随时随地享受阅读乐趣。无论你是通勤族、学生党还是漫画收藏爱好者,这款工具都能满足你的需求。 ## 为什么你需要这款哔咔漫画下载工具? ### 传统漫画阅读的三大痛点 想象一下这样的场景:在地铁上、在飞机上、在没有网络的郊外,你

gitblog_00640的博客 216

PHP实现获取当地网络时间​(附完整源码)

PHP实现获取当地网络时间​(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 240

从0到1024,程序员如何破译职业发展的加密路径?

auto-generated

VarFlow的博客 1037

UCIE Specification详解(七)

Logical Physical Layer(逻辑物理层)

Crazzy_M的博客 1692

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

自己关于学习js的一些经历

做为一名前端,相信许多初学者都会遇到这个问题:js学不会,不知道该怎么学习,不知道如何提高。在这里和大家分享一下自己的学习过程吧。现在前端这门职业已经日趋成熟,自学出身加上培训机构的批量生产,市场上的前端工程师已经有过剩的趋势,剩余的都是刚培训出来或者自学时间短的,真正的前端依旧稀缺。关于什么是真正的前端,这里有一篇文章可以去了解一下,http://www.wufangbo.com/que-qia...

web_xyk的专栏 9617

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

如何学习前端 转载

作者:小不了链接:https://zhuanlan.zhihu.com/p/23265155来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 鉴于时不时,有同学私信问我(老姚,下同)怎么学前端的问题。这里统一回复一下,如下次再遇到问我此问题同学,就直接把本文链接地址发给你了。 首先说句题外话。关于有人管我叫大神的事情。个人感觉这跟你买东西时,人家管你叫帅哥一样,你...

weixin_33966365的博客 465

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

前端的学习方法

1、在说这个前端的学习方法之前,给大家看看拉钩网上面的一个招聘信息: ---------------------------------------------------------------------------------------------------- web前端招聘  薪资:5k-10k 岗位要求 1. 大专及以上学历; 2. 精通angularjs、bo

前端搞搞震的博客 4423

JavaScript-C引擎嵌入开发指南

JavaScript-C引擎概览本文档提供了一个JavaScript(JS)引擎的C语言实现的概述,他介绍了你如何在你的应用程序中嵌入脚本引擎来让它们可以使用JS。有两大理由让你在应用程序中嵌入JS引擎:使用脚本来自动操作你的应用程序;同时使用JS引擎和脚本无论何时都可以提供跨平台的功能并消除了应用程序解决方案对平台的依赖性。受支持的JavaScript版本本JS引擎支持从JS 1.0

2410

Web 版翻译者资料库

本项目是桌面版《翻译者资料库》的 Web 移植版,基于 Spring Boot 3.3、Thymeleaf、Bootstrap 5.3 与 MySQL 8.0 构建。它面向翻译写作提供资料、词汇、句库、文本工具、对照制作、查找、备份恢复及旧库迁移等功能,完整继承桌面版核心业务规则,支持一键启动与离线访问。

howard2005的专栏 181
上一篇: Flask09——数据库迁移
下一篇: 每天3小时学前端之JS-第02天-变量基础与变量类型简介
零寂前端
博客等级 码龄11年 59粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值