js技术干货分享「web前端开发基础」

互联网 2023-02-06 22:52:27

今天给大家普及一下js技术干货分享「web前端开发基础」相关知识,最近很多在问js技术干货分享「web前端开发基础」,希望能帮助到您。

1:js的起源

1995 年,js问世。主要用途处理表单验证。网景和sun公司结为开发联盟。

JavaScript 在刚诞生的时候,它的名字叫 “LiveScript”。

随着 JavaScript 的发展,它已经成为了一门完全独立的语言。

并且也拥有了自己的语言规范 ECMAScript。

2:字符集

js是由Unicode字符集编写的。 html不区分大小写,js是区分大小写的。

3:web开发5大浏览器

IE、Firefox、Chrome、Safari 和 Opera。

4:什么是脚本?

js写出来的程序被称为脚本,它们可以直接写在网页上,在页面加载的时候自动执行,不需要特殊的准备和编译就可以运行。

5:js为啥可以在浏览器中运行?

js语音最初是为浏览器创建的。

因为浏览器中嵌入了js的引擎,也可以称为js的虚拟机,

由于JavaScript是一门解释型的语言, 会边解析边执行,

浏览器在解析JavaScript代码之前还会进行一个操作"预解析(预处理)"

预解析(预处理)步骤:

将当前JavaScript代码中所有变量的定义和函数的定义放到所有代码的最前面。

6:浏览器中的js能做什么?

js不止可以运行在浏览器,还可以服务器端。

js是一种安全的编程语言,不提供对内存或者cpu的访问

因为最初创建是为了浏览器而创建的,不需要这些功能。

例如,浏览器中的 JavaScript 可以做下面这些事:

1:在网页中添加新的 HTML,修改网页已有内容和网页的样式。

2:响应用户的行为,响应鼠标的点击,指针的移动,按键的按动。

3:向远程服务器发送网络请求,下载和上传文件(所谓的 AJAX 和 COMET 技术)。

4:获取或设置 cookie,向访问者提出问题或发送消息。

5:记住客户端的数据(“本地存储”)。

7:浏览器中的js不能做什么?

为了安全,为了用户的信息安全,在浏览器中的js能力是有限的

目的是防止恶意网页获取用户的私人信息或损坏用户的数据。

不能主动读写复制和执行硬盘上的任意文件,没有直接访问操作系统的能力。

只能被动地用户去点击上传一些文件,允许做一些文件相关的操作,比如上传文件,用户明确许可了。

8: js的上层语言。

JavaScript 的语法也不能满足所有人的需求。

出现了许多新语言,这些语言在浏览器中执行之前,都会被编译(转化)成 JavaScript。

TypeScript 专注于添加“严格的数据类型”以简化开发,以更好地支持复杂系统的开发。由微软开发

Brython 是一个 Python 的 JavaScript 编译器,可以在不使用 JavaScript 的情况下,以纯 Python 编写应用程序。

9:外部脚本<script src="/path/to/script.js"></script>

1:简单的代码就直接写在html中,复杂的脚本存放在单独的文件中

2:外部脚本的好处就是,浏览器会下载它,然后它就保存在浏览器的缓存中。

之后,如果其它的页面需要相同的脚本就会从缓存中获取,而不是重新下载,

所以文件只会下载一次,可以节省流量,并使得页面加载更快。

3:如果script标签设置了src属性,引入了外部脚本,里边再写代码将不会执行

<script src="file.js">alert(1); // 此内容会被忽略,因为设定了 src 10:js中的分号

1:当存在换行符的时候,大多数情况可以省略分号。

2:但是,下边这些情况就会报错。

alert("There will be an error")[1, 2].forEach(alert)

上边的语句后面加一个分号就可以正常运行了,我们从引擎中看到的是这样的

alert("There will be an error")[1, 2].forEach(alert)

3:所以最好不要省略分号

11:浏览器内核

主要分成两部分:渲染引擎和 JS 引擎。

渲染引擎:负责取得网页的内容(HTML、 XML 、图像等等)、整理讯息(例如加入 CSS 等),以及计算网页的显示方式,然后会输出至显示器或打印机。

浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。

JS引擎则:解析和执行 javascript 来实现网页的动态效果。最开始渲染引擎和JS引擎并没有区分得很明确,后来 JS 引擎越来越独立,内核就倾向于只指渲染引擎。

12:什么叫优雅降级和渐进增强?

优雅降级: Web站点在所有新式浏览器中都能正常工作,如果用户使用的是老式浏览器,代码会检查以确认它们是否能正常工作。由于IE独特的盒模型布局问题

针对不同版本的IE的hack实践过优雅降级了,为那些无法支持功能的浏览器增加候选方案,使之在旧式浏览器上以某种形式降级体验却不至于完全失效。

渐进增强: 从被所有浏览器支持的基本功能开始,逐步地添加那些只有新式浏览器才支持的功能,向页面增加无害于基础浏览器的额外样式和功能的。当浏览器支持时,它们会自动地呈现出来并发挥作用。

13:400和401、403状态码

(1)400状态码:请求无效

产生原因:前端提交数据的字段名称和字段类型与后台的实体没有保持一致。前端提交到后台的数据应该是json字符串类型,但是前端没有将对象JSON.stringify转化成字符串。

解决方法:对照字段的名称,保持一致性 将obj对象通过JSON.stringify实现序列化

(2)401状态码:当前请求需要用户验证

(3)403状态码:服务器已经得到请求,但是拒绝执行

(4)304:如果客户端发送了一个带条件的GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个304状态码。

喜欢的多多点赞关注分享哦,每日更新。