JavaScript高级程序设计学习笔记----初识JavaScript

article/2025/10/5 22:13:18

 

一、JavaScript概述

1.JavaScript 介绍:

    简称JS,是一种浏览器解释型语言,嵌套在HTML文件中交给浏览器解释执行。主要用来实现网页的动态效果,用户交互及前后端的数据传输等。

2.JavaScript 组成:

f5e55a8dc4f84bbfa8085c708cd7e12b.jpeg

 8d7d71b159b545179a3c691b3d3c84c6.jpeg

  1. 核心语法 - ECMAScript (ES5-ES6) 规范了JavaScript的基本语法

  2. 浏览器对象模型 -BOM Browser Object Model,提供了一系列操作浏览器的方法

  3. 文档对象模型 -DOM,Document Object Model ,提供了一系列操作的文档的方法。

3.<script>标签位置

现代web应用程序将js代码放在<body>元素中页面内容的最后面 

当header中同时有js脚本和外链css时,js脚本最好放外链css后面。因为如果脚本的内容是获取元素的样式,宽高等css控制的属性,浏览器是需要计算的,也就依赖于css。浏览器无法感知脚本内容到底是什么,为避免样式获取错误,因而只好等前面的所有样式下载完后,再执行js。如果css下载时间很长的话,js也无法正常运行,导致html无法正常解析出来

4.使用方式

1.内嵌式

2.外链式

3.行内式 

9cde460f0f7b4bf1ad2f1e2e3320ceec.png

JS使用外部文件具有:
       1.方便维护
       2.缓存:浏览器会缓存所有的外部文件,意味着当多个页面需要同一个文件时,可以直接在缓存中提取
       3.适应未来

建议使用外链式书写JS代码

 

5.与Java关系

54a19e17d0ad4d838e3c795320a8c2a4.jpeg

6.JavaScript 输入和输出语句

  • alert("");普通的网页弹框

  • console.log();控制台输出,多用于代码调试

  • document.write(" ")

二、JavaScript扩展(建议初学者暂时跳过一下内容)

7.<script>元素

 1.在使用行内JavaScript代码时,代码中不能出现字符串</script>(如"</script>")

44af15a49354443f82fdf3d72ba41667.png63104dfcb596427a89b0d14f3e219bdb.png

 浏览器解析时会当成结束的</script>,只需要在"/"前加入转义字符"\"即可("<\ /script>")即可

 c3f09ceb315f421490a11b2fa0af7a48.pnge3907606018a45e280c711515ef283dc.png2.js的内嵌和外联可以同时出现在同一个HTML页面中,但是使用了src属性的<script>元素,元素内就不能再有js 代码

 1775d121a3fc48db9826efba39628100.png

 3.在HTML中不能省略结束标签,但是在XHTML中可以(这里可以看到编译器报错)

 6b914c3817ad44dfa9b12e03a27cb4b9.png

 8.推迟-异步执行脚本

1.推迟执行脚本:

表示脚本立即下载但是会延迟到整个页面解析完毕后再运行,通常用于在<head>中引用外部js 脚本文件的<script>元素,所以只对外部文件才有效。

按照他们的出现顺序,第一个推迟的脚本文件会在第二个推迟执行的脚本文件之前执行,但是在实际中不一定总会按照出产顺序执行,所以html中最好只包含一个这样的脚本。

1dbb7f62bbcc4533859852510c58e33e.png

 

493dd749c1df47fbb58e731e13d5da93.png

对于XHTML文档,指定async属性应该写成defer="defer" 

2.异步执行脚本:

表示脚步文件一旦加载完成就会立即执行,也只对外部文件才有效,区别在于async的脚本并不能保证按照他们的出场顺序执行,即推迟的脚本文件之间没有依赖关系。

e3c8c9accf6e44a9b6a2938750e85aeb.png

一般来说,如果脚本之间没有依赖关系,就使用async属性,如果脚本之间有依赖关系,就使用defer属性。如果同时使用async和defer属性,后者不起作用,浏览器的行为由async属性决定。使用async也会告诉页面你不会使用document.write。所以不推荐使用这种方法

对于XHTML文档,指定defer属性应该写成async="async" 

9.动态加载脚本的4钟方法

1、直接document.write

a9930310a7e7496389a85c58a57562df.png

2、动态改变已有script的src属性 

17e07e039b544f588af081db109f67fd.png

 3、动态创建script元素

1d5e0647eb9c447c86c40a403edaada7.png

 这三种方法都是异步执行的,在加载这些脚本的同时,主页面的脚本继续运行。

如果用以上的方法,那下面的代码将得不到预期的效果。
例如:

63acf70ccf174a4e9931ea3145e63489.png

 上述代码执行后 a.js 的 alert 执行并弹出消息,但是 主页面产生了错误,没有弹出对话框。原因是 'str' 未定义,为什么呢?因为主页面在取 str 的时候 a.js 并没有完全加载成功。遇到需要同步执行脚本的时候,可以用下面的第四种方法。

4.用XMLHTTP取得要脚本的内容,再创建 Script 对象

      新手小白,这里我也还搞不懂,求大神指导

10.Xhtml中的变化

1.在Xhtml使用<script>元素必须指定type(属性)=text/javascript,html中对这个则可有可无。

且HTML在解析script元素时会应用特殊规则,Xhtml则没有这些规则,这就意味着一些特殊字符在Xhtml中无法识别。

 以下代码虽然在HTML中可以识别,但是在XHTML中无法识别,这里a<b在XHTML中会把(<)解析为一个标签的开始

2fe1cde0c7404c8f9d905890a4d92ffc.png

解决办法: 

(1)把所有的小于号(<)替换成相应的HTML实体形式(&lt;)但是这种写法好像不能在HTML的 script标签中出现

b7f718ec245f48969ea167403a493748.png

(2)所有的代码包含到CDATA块中

CDATA:

XML 文档中的所有文本均会被解析器解析。

只有 CDATA 区段中的文本会被解析器忽略。

3c6b6439506c46c093ada792fbc07b79.png

a9e1190da0b34b4d81b76061cedd2bff.png

 b541af21528c4f44af42d6d3913ba3d6.png

因为我传入的参数为1,2, 这里在控制台输出了a小于b

这里的用到的//(JavaScript中的注释)是在不支持CDATA块的非XHTML兼容浏览器中才使用的,兼容XHTML的浏览器则不需要

11.noscript元素

不支持 JavaScript 的浏览器会使用 <noscript> 元素中定义的内容(文本)来替代,用来定义在脚本未被执行时的替代内容(文本),即JS脚本代码不可用时,执行<noscript>中的内容,可用时noscript元素内的内容不显示

a3d5f54bad3d4c63af28c65f8ee47329.png

 当浏览器无法解析JS代码时,浏览器会显示noscript中的内容,如果浏览器支持,那么用户永远也看不见它

12.文档模式

这个概念是通过使用文档类型 doctype 切换实现的,最终的两种渲染模式是混杂模式(quirks mode)和标准模式(standards mode)。这两种模式主要影响css内容的呈现,在某些情况下也会JavaScript的解释执行。之后IE又提出一种准标准模式(almost standards mode),这种模式下的浏览器特性有很多都是符合标准,但也不尽然,不标准的地方体现在处理图片间隙的时候(在表格中使用图片时问题最明显)。标准模式和准标准模式非常接近,在检测文档模式时也不会发现什么不同,这里在提到标准模式时,指的是除混杂模式之外的其他模式。

如果在文档开始处没有发现文档类型声明,则所有浏览器都会默认开启混杂模式,不同浏览器在这种模式下行为差异很大,如果不使用某些hack技术,跨浏览器的行为根本没有一致性可言。

我们往往爱追求高大上的页面效果却忽略了最为基础的文档模式,没有文档模式的指挥,怎能得来高大上的页面效果!!

(1).混杂模式:不引用任何文档类型定义,对文档的渲染影响很大。
(2).标准模式:可以使用下面任何一种文档类型来开启,使用严格型(strict)文档来触发。b2cb39333c43466c84554df2350df13c.png

(3).准标准模式:使用过渡型(transitional)或框架集型(frameset)文档来触发。 

ee04357feeed4d30bb3ee5ba2fd81df7.png

 

 

 

 


http://chatgpt.dhexx.cn/article/HFvqSxVZ.shtml

相关文章

JavaScript高级程序设计 第4版

文章目录 第 1 章  什么是JavaScript1.2JavaScript1.2.1 ECMAScript1.2.2 DOM1.2.3 BOM 第 2 章 HTML中的JavaScript2.1 script元素2.1.1 标签占位符2.1.2 推迟执行脚本2.1.3 异步执行脚本2.1.4 动态加载脚本2.1.5 XHTML中的变化 2.2 noscript元素 第 3 章 语言基础3.1…

javascript高级程序设计pdf(JavaScript高级程序设计PDF版)

javascript入门书籍推荐 javascript权威指南 第六版 javascript高级程序设计 第三版 都是干货啊javascript高级程序设计!经典中的经典《javascript权威指南》 《javascript入门经典》第五版完整版 求《JavaScript高级程序设计(第3版)》PDF下载地址 权威指南 javascript高级教程…

JavaScript 高级程序设计(第3版)

内容简介 ECMAScript 5 和 HTML5 在标准之争中双双胜出&#xff0c;使大量专有实现和客户端扩展正式进入规范&#xff0c;同时也为 JavaScript 增添了很多适应未来发展的新特性。《JavaScript 高级程序设计(第3版)》这一版除增加5章全新内容外&#xff0c;其他章节也有较大幅度…

Javascript高级程序设计第四版详细测评

简介 哈喽大家好&#xff0c; 我是大圣&#xff0c;上次做了一个js的书籍测评&#xff0c;评价还不错&#xff0c;在做css和node之前&#xff0c;再做几本书的详细推荐吧, 国庆今天又在家好好读了几本具有代表性的 javascript高级程序设计【红宝书】javascript忍者秘籍你不知道…

JavaScript高级程序设计 第4版(中文高清)扫描版

1. JavaScript组成 核心ECMAScript文档对象模型DOM浏览器对象模型BOM 1.2.1 ECMAScript 定义语言的基础 规定了语言的组成部分&#xff1a;语法、类型、语句、关键字、保留字、操作符、对象 js nodejs 都实现了ECMAScript 1.2.2 DOM 文档对象模型 Document Object Model …

Java新手入门值得看的五本书!

很多知识都可以通过书本学习&#xff0c;Java学习也需要书籍&#xff0c;尤其是对于Java初学者和Java自学者来说尤为重要&#xff0c;选择了好了配套书籍在自学的路上可以达到事半功倍的效果&#xff0c;下面为Java初学和自学的朋友推荐几本合适的书籍希望对大家有所帮助。 1、…

学Java可以看哪些书?6本Java书籍推荐

学Java有哪些推荐书籍可以看&#xff1f;很多人都会有这样的疑问。今天&#xff0c;小千整理了一些Java经典书籍&#xff0c;分享给大家。 如果你初出茅庐&#xff0c;对Java感兴趣&#xff0c;想要学Java&#xff0c;在这行深钻研&#xff0c;那么这些书绝对不能少。如果你已…

Java项目:图书馆管理系统思路分析

当当当当~~~~欢迎大家阅读&#xff0c;今天和我一起来整理图书馆管理系统项目的思路分析吧&#xff01; 一、项目说明 长期以来&#xff0c;人们使用传统的人工方式管理图书馆的日常业务&#xff0c;其操作流程比较烦琐。在借书时&#xff0c;读者首先将要借的书和借阅证交给工…

必读的10本有关Java的书籍

想知道如何提高你对Java的了解&#xff1f;想成为更好的Java开发人员&#xff1f;来对地方了 我将分享一些最好的Java书籍。这些书经受住了时间的考验&#xff0c;随着岁月的流逝变得越来越重要。 不管是在今年明年&#xff0c;你总有很多东西要学&#xff0c;这也就是为什么…

Java程序员必读的10本书籍

以下列出了10本书&#xff0c;对于任何希望提高Java知识和理解的Java程序员来说都是必不可少的。 如果你是一名程序员&#xff0c;想知道如何提高你对Java的了解或者成为更好的Java开发人员&#xff0c;那你就来对地方了。在本文中&#xff0c;我将分享一些最好的Java书籍。这…

从入门到进阶,JAVA书籍的最佳阅读顺序!

本文首发于知乎&#xff0c;已获得1000赞和收藏。 原文链接&#xff1a;https://www.zhihu.com/question/269505829/answer/1791006152 先介绍下本人的情况&#xff0c;希望对大家学习Java之路有一定帮助。 本人本科完全没接触过Java&#xff0c;后自学Java&#xff0c;对整个…

年底了,感谢大家2022年的支持,虚竹哥送10本JAVA好书

❤️作者主页&#xff1a;小虚竹 ❤️作者简介&#xff1a;大家好,我是小虚竹。Java领域优质创作者&#x1f3c6;&#xff0c;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;掘金年度人气作者&#x1f3c6;&#xff0c;阿里云专家博主&#x1f3…

Java 图书管理系统

学习了类和对象之后&#xff0c;就可以自己来做个小的项目来提升自己的能力了。本文章就来说明如何来做一个简单的图书管理系统。写一些小项目是一种很锻炼逻辑和熟悉语法的好方法。 在做这些项目的时候&#xff0c;要明白一点是我们的Java是面向对象的&#xff0c;要使用面向对…

JAVA学习,你必读的5本JAVA书籍

给广大JAVA爱好者推荐JAVA教程&#xff0c;很多人学习Java是从《Thinking in Java》这本书入手的&#xff0c;但是我认为这本书是不适合初学者的。我认为正确的使用这本书的方法应该是作为辅助的读物,第四版翻译的已经不错了&#xff0c;其实如果英文OK的人还是读原版比较好。 …

JAVA实战小项目——图书馆管理系统

✨前言 某日在逛b站的时候看到有人做出了图书馆管理系统&#xff0c;在仔细梳理自己以学过的java相关知识点后&#xff0c;发现还是能够实现的&#xff01;&#x1f60e; 需要用到的相关知识点&#xff1a;向上转型&#xff0c;动态绑定&#xff0c;重写&#xff0c;继承&…

几本推荐的Java书

一、《深入理解Java虚拟机&#xff1a;JVM高级特性与最佳实践》 如果你不满足于做一个只会写if…else…的Java程序员&#xff0c;而是希望更进一步&#xff0c;我随便举几个例子吧&#xff1a; 1、了解Java代码的底层运行机制 2、定位性能问题 3、对整个系统进行性能调优 4、解…

Java学习路线总结(书籍、视频推荐篇)

&#x1f345; 作者简介&#xff1a;CSDN2021博客之星亚军&#x1f3c6;、新星计划导师✌、博客专家&#x1f4aa; &#x1f345; 哪吒多年工作总结&#xff1a;Java学习路线总结&#xff0c;搬砖工逆袭Java架构师 &#x1f345; 关注公众号【哪吒编程】&#xff0c;回复1024&a…

【java】面向程序员的 10 大 Java 书籍 — 历久弥新

一些针对 Java 程序员的最佳书籍&#xff0c;从核心 Java 到最佳实践&#xff0c;从单元测试到 Spring 框架。 历史上排名前 10 位的 Java 书籍 事不宜迟&#xff0c;这里是我列出的一些对 Java 程序员来说最流行和最重要的书籍。 如果您从事 Java 编程 2 到 3 年&#xff0c…

学习Java必看的Java书籍(本本经典实用)

今年下半年,正式系统地学习Java。最近把学习Java所用到的书籍整理了一下,分享出来,希望对正在学习或准备学习Java的人有一定的帮助。 关于Java的学习路线,和IDE工具IntelliJ IDEA的安装使用可以看我之前的文章。当然,我也在不断更新自己的学习总结。也可以关注我一下,大…

关于写的Java书籍进展

大家好&#xff0c;去年说要写本Java书&#xff0c;近期就快出版了。目前已经开始打印样书了&#xff0c;最快于本月中旬左右就可以在互动网www.china-pub.com上看到消息&#xff0c;其它各个网站何时会发售要看具体进货情况。 去年我预期是半年写好这本书&#xff0c;6个月左右…