JavaScript高级程序设计

本文详细介绍了JavaScript的核心组成部分,包括ECMAScript、DOM和BOM,以及如何在HTML中使用JavaScript。重点讲解了<script>标签的使用,如位置、延迟脚本和异步脚本,并探讨了变量、数据类型、操作符和语句的基本概念。内容涵盖标识符、注释、严格模式、变量、数据类型(如undefined、null、boolean、number、string和object)以及一元、位、布尔、乘性、加性、关系和相等操作符。最后,介绍了if语句、循环、函数等控制结构和函数的基本原理。
摘要由CSDN通过智能技术生成

第1章——JavaScript简介

一、JavaScript实现

JavaScript是一种专为与网页交互而设计的脚本语言,由下列三个不同的部分组成:

核心(ECMAScript)                   由ECMA-262定义,提供核心语言功能。

文档对象模型(DOM)                提供访问和操作网页内容的方法和接口。

浏览器对象模型(BOM)            提供与浏览器交互的方法和接口。

第2章——在HTML中使用JavaScript

一、<script>标签

1、<scripot>元素

向HTML页面中插入JavaScript的主要方法,就是使用<script>元素。

使用<script>元素的方式有两种:直接在页面中嵌入js代码和包含外部的js文件。

包含在<script>元素内部的JavaScript代码将被从上至下依次解释。在解释器对<script>元素内部的所有代码求值完毕之前,页面中的其余内容都不会被浏览器加载或显示。                                                                                                                                    注意:在使用嵌入js代码时,代码中不能出现“</script>”字符串,浏览器会认为那结束标签。"<\/script>"可解决('\'  '/'符号)

通过<script>元素来包含外部js文件,src属性是必须的。属性的值时指向外部js文件的链接。与嵌入式一样,在解析外部js文件(包括下载该文件)时,页面的处理也会暂时停止。若果在XHTML中,结束标签可以省略。需注意:带有src属性的<script>元素标签之间不能再包含额外的js代码,否则将被忽略。src的值也可以是来自外部域的js文件。

只要不存在defer和async属性,浏览器就会按照<script>元素在页面中出现的先后顺序对他们依次进行解析。

2、标签的位置

(1)、<head>元素中:若js代码过多,页面会出现明显的延迟,延迟期间页面呈现空白。

(2)、<body>元素中页面的内容后面:先解析html代码,再解析js代码。

3、延迟脚本

defer属性:脚本会被延迟到整个页面都解析完毕后在运行。(按出现的先后顺序执行)

注:只适用于外部脚本文件。   放在页面底部仍是最佳选择。

4、异步脚本

async属性:与defer作用类似,不同点是async的脚本不能保证按照指定他们的先后顺序执行。

二、嵌入代码和外部文件

虽然嵌入式js代码没有问题,但是最好还是用调用外部文件。优点如下:

可维护性:把所有js文件放在一个文件夹下,便于维护。在不触及HTML标记的情况下编辑js代码。

可缓存:若两个页面都是用同一个文件,那么文件只用下载一次。加快页面加载速度。

适应未来:通过外部文件来包含js无需使用XHTML或注释hack。html和xhtml包含外部文件的语法是相同的。

三、文档模式

混杂模式:会让ie的行为与ie5相同。

标准模式:会让ie的行为更接近标准行为。   例:<! DOCTYPE html >

虽然两种模式主要影响css,但在某种情况下回影响js的解释执行。

四、<noscript>元素

为了让不支持js的浏览器平稳退化。这个元素可以包含能够出现在文档<body>中的任何html元素(<script>元素除外)。

包含的内容只有在浏览器不支持脚本,或脚本被禁用的情况下才会显示。

五、小结

第3章——基本概念

任何语言的核心都会描述这门语言最基本的工作原理。而描述的内容通常要涉及这门语言的语法、操作符等基本概念。

ECMA-262通过叫做ECMAScript的‘伪语言’为我们描述了JavaScript的所有这些基本概念。

1.1       语法

ECMAScript的语法大量借鉴C及其他类C语言(java等)的语法。但ECMAScript的语法更加宽松。

1.1.1    区分大小写

ECMAScript中的一切(变量、函数名、操作符)都区分大小写。

1.1.2    标识符

所谓标识符,就是指 变量、函数、属性的名字,或者函数的参数。可按下列格式规则组合的一个或多个字符:

□ 第一个字符必须是一个字母、下划线、或一个美元符号($);

□ 其他字符可以是字母、下划线、美元符号或数字。

按照惯例,ECMAScript 标识符采用驼峰大小写格式,为了与ECMAScript内置函数和对象命名格式保持一致,可以将其当作一种最佳实践。   注:不能把关键字、保留字、true、false、null作为标识符。

1.1.3     注释

ECMAScript使用C风格的注释,包括单行注释和块级注释。

//   单行注释

/*          块级注释             */

1.1.4     严格模式

严格模式是为js定义了一种不同的解析与执行模型。在严格模式下,对某些不安全的操作会抛出错误。

在整个脚本中启用严格模式,只需在顶部添加         " use strict";

这是一个编译指示,告诉支持的js引擎切换到严格模式。

也可以指定函数与在严格模式下执行                在函数体中第一行添加 " use strict";

在严格模式下,js的执行结果会有很大的不同。

1.1.5     语句

ECMAScript中的语句以一个分号结尾;没有分号,则由解析器确定语句的结尾。(最好加上分号)

可以使用C风格的语法把多余的语句组合到一个代码块中{}

在控制语句中使用代码块可以让编码意图更加清晰,而且也能降低修改代码时出错的几率。

1.2       关键字和保留字

一般来说,最好都不要使用关键字和保留字作为标识符和属性名,以便于将来的ECMAScript版本兼容。

1.3      变量

ECMAScript的变量是松散类型的,即可以用来保存任何类型的数据。换句话说,每个变量仅仅是一个用来保存值得占位符而已。定义变量时要用var操作符(关键字),后跟变量名(一个标识符)。

var message;          该行代码定义了一个名为message的变量,该变量可以用来保存任何值。(像这样未经过初始化的变量,会保存一个特殊的值——undefined)

var message = 'hi';   再此,变量中保存了一个字符串值‘hi’。这样初始化变量并不会把他标记为字符串类型;初始化的过程就是给变量赋一个值。

注意:使用var操作符定义的变量将成为定义该变量的作用域中的局部变量。即若在一个函数中使用var定义一个变量,那么这个变量在函数退出后就会被销毁。        若省略var操作符,将会创建一个全局变量。在函数外部任何地方被访问到。

在严格模式下,不能定义名为eval或arguements的变量,否则会导致或语法错误。

1.4     数据类型

ECMAScript中有5简单数据类型(也成为基本数据类型):undefined、null、boolean、number、string。

还有1中复杂数据类型——Object,Object本质上是由一

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值