一、介绍

1.包含:核心、文档对象模型、浏览器对象模型

javascript程序设计实训报告心得体会 javascript程序设计教程_前端

二、HTML中的JavaScript

1.<script>元素

将JavaScript插入HTML的主要方法是使用<script>元素 ,script有8个属性。

注:在<script>元素中的代码被计算完成之前,页面的其余内容不会被加载,也不会被显示

使用方式:

(1)直接在网页中嵌入JavaScript代码

javascript程序设计实训报告心得体会 javascript程序设计教程_迭代_02

(2)用src属性引用外部文件

javascript程序设计实训报告心得体会 javascript程序设计教程_迭代_03

 2.标签位置:将所有JavaScript引用放在<body>元素中的页面内容后面(原因:在处理JavaScript代码之前完全渲染页面。用户会感觉页面加载更快了)。传统的,放在<head>里,也就意味着必须把所有JavaScript代码都下载、解析和解释完成后,才能开始渲染页面。

(1)设置defer属性:它将会延迟到整个页面都解析完毕后再运行,但仅适用于引用外部脚本文件

(2)异步执行脚本(async属性)脚本将可能不会按照它们出现的次序执行。

(3)XHTML:XHTML中编写代码的规则比HTML中严格。

需要避免语法错误:

    ①<都替换成对应的HTML实体形式&lt;

    ②把所有代码都包含到一个CDATA块中,其内容不作为标签来解析。

(4)<noscript>元素:,被用于给不支持JavaScript的浏览器提供替代内容

JavaScript代码如果分散到很多HTML页面,会导致维护困难。而用一个目录保存所有JavaScript文件,则更容易维护。

三、语法

1.在脚本开头加上      预处理。

javascript程序设计实训报告心得体会 javascript程序设计教程_servlet_04

2.var声明作用域

 (1)

使用var操作符定义的变量会成为包含它的函数的局部变量。

javascript程序设计实训报告心得体会 javascript程序设计教程_servlet_05

 在函数内定义变量时省略var操作符,可创建一个全局变量。

javascript程序设计实训报告心得体会 javascript程序设计教程_作用域_06

 (2)使用Var关键字声明的变量会自动提升到函数作用域顶部:

javascript程序设计实训报告心得体会 javascript程序设计教程_servlet_07

 3.let与Var的区别:

(1)let声明的范围是块作用域,而var声明的范围是函数作用域。

(2)let也不允许同一个块作用域中出现冗余声明,而var允许。

(3)let声明的变量不会在作用域中被提升,而var会。

(4)let在全局作用域中声明的变量不会成为window对象的属性,var则会。

(5)for循环中 var定义的迭代变量i会渗透到循环体外部,而let则不会。

(6)使用let声明迭代变量(迭代变量会自增)时,JavaScript引擎在后台会为每个迭代循环声明一个新的迭代变量

javascript程序设计实训报告心得体会 javascript程序设计教程_迭代_08

 

javascript程序设计实训报告心得体会 javascript程序设计教程_javascript_09

4.const声明

const的行为与let基本相同,主要的区别是用它声明变量时必须同时初始化变量,且不能修改Const声明的变量(对象除外)

总结:不使用var,const优先,let次之

1.数据类型

使用typeof操作符,将返回Undefined、Null、Boolean、Number、String和Symbol字符串之一。

string类型:字符串可以使用双引号(")、单引号(')或反引号(`)

javascript程序设计实训报告心得体会 javascript程序设计教程_作用域_10

 转换为字符串:

javascript程序设计实训报告心得体会 javascript程序设计教程_前端_11

2.操作符 

一元加:对数值没有任何影响;应用到非数值,会类型转换。

一元减:用于把数值变成负值

javascript程序设计实训报告心得体会 javascript程序设计教程_作用域_12

javascript程序设计实训报告心得体会 javascript程序设计教程_迭代_13

(2)与或非、左移什么的,学过计组的都知道,easy,省略....。

(3)函数:函数使用function关键字声明,后跟一组参数,然后是函数体

javascript程序设计实训报告心得体会 javascript程序设计教程_前端_14

 

 四、

(1)复制:原始值是再创建一个变量‘而引用值(new的)是直复制指针,属于同一个。

(2)上下文:每个上下文都有一个关联的变量对象,上下文中定义的所有变量和函数都存在于这个对象上。上下文在其所有代码都执行完毕后会被销毁,包括定义在它上面的所有变量和函数(全局上下文在应用程序退出前才会被销毁,比如关闭网页或退出浏览器)。每个函数调用都有自己的上下文。当代码执行流进入函数时,函数的上下文被推到一个上下文栈上。在函数执行完之后,上下文栈会弹出该函数上下文,将控制权返还给之前的执行上下文

javascript程序设计实训报告心得体会 javascript程序设计教程_servlet_15

(3)日期:创建日期对象,就使用new操作符来调用Date构造

javascript程序设计实训报告心得体会 javascript程序设计教程_作用域_16

Date.parse():接收一个表示日期的字符串参数

Date.UTC():返回日期的毫秒表示

 (4)RegExp:正规表达式

(5)eval():当解释器发现eval()调用时,会将参数解释为实际的ECMAScript语句

javascript程序设计实训报告心得体会 javascript程序设计教程_作用域_17

通过eval()定义的任何变量和函数都不会被提升

javascript程序设计实训报告心得体会 javascript程序设计教程_作用域_18

(6)URL编码方法:

encodeURI()和encodeURIComponent()方法用于编码统一资源标识符(URI),以便传给浏览器

 (7)window对象,所有全局作用域中声明的变量和函数都变成是window的属性

 (8)Math对象属性:作为保存数学公式、信息和计算的地方。Math对象提供了一些辅助计算的属性和方法