js技术干货分享「web前端开发基础」
今天给大家普及一下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状态码。
喜欢的多多点赞关注分享哦,每日更新。