这是我参与「第四届青训营 」笔记创作活动的第2天 主要内容为Javascript基础内容
1.使用Javascript
1.1什么是Javascript
JavaScript是一种具有面向对象能力的、解释型的程序设计语言。更具体一点,它是基于对象和事件驱动并具有相对安全性的客户端脚本语言。因为他不需要在一个语言环境下运行,而只需要支持它的浏览器即可。它的主要目的是,验证发往服务器端的数据、增加Web互动、加强用户体验度等。
一个完整的JavaScript应该由下列三个不同的部分组成:
1.核心( ECMAScript )
2.文档对象模型 ( DOM )
3.浏览器对象模型 ( BOM)
ECMAScript介绍
ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript, 但实际上后两者是ECMA-262标准的实现和扩展。
文档对象模型 ( DOM )介绍
文档对象模型(DOM,Document Object Model)是针对XML但经过扩展用于HTML的应用程序编程接口(API, Application Programming Interface)。DOM有三个级别,每个级别都会新增很多内容模块和标准(有兴趣可以搜索查询)。
浏览器对象模型 ( BOM)介绍
访问和操作浏览器窗口的浏览器对象模型(BOM,Browser Object Model)。开发人员使用BOM可以控制浏览 器显示页面以外的部分。而BOM真正与众不同的地方(也是经常会导致问题的地方),还是它作为JavaScript实现的 一部分,至今仍没有相关的标准。
1.2script标签的解析
<script></script>是用在html页面中插入js的主要方法。属性:
1.type:必需。表示代码使用的脚本语言的内容类型。例如:type="text/javascript"。
2.charset:可选。表示通过src属性指定的字符集。
3.defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。
4.src:可选。表示包含要执行代码的外部文件。
5.async:可选。规定异步执行脚本(仅适用于外部脚本)。
一般来说,JS代码越来越庞大的时候,我们最好把他另存为一个.js文件,通过src引入即可。它还具有维护性高、可缓存(加载一次,无需加载)、方便未来扩展的特点。
注意:带有src属性的script元素不应该在其标签之间再包含额外的JavaScript代码,因为它会被忽略。
<script src="js/02.js" type="text/javascript" charset="utf-8"></script>
2.基础语法及数据类型
2.1 基础语法
区分大小写
ECMAScript中的一切,包括变量、函数名和操作符都是区分大小写的。例如:book和Book表示两种不同的变 量。
标识符
所谓标识符,就是指变量、函数、属性的名字,或者函数的参数。标识符可以是下列格式规则组合起来的一或 多个字符:
1.第一字符必须是一个字母、下划线(_)或一个美元符号($)。
2.其他字符可以是字母、下划线、美元符号或数字。
3.不能把关键字、保留字、true、false和null作为标识符。
注释:ECMAScript使用C风格的注释,包括单行注释和块级注释。
<script type="text/javascript">
//单行注释
/*
这是一个多行注释
*/
</script>
直接量(字面量literal)
所有直接量(字面量),就是程序中直接显示出来的数据值。 如:
‘前端开发' //字符串字面量
false //布尔字面量
/js/gi //正则表达式字面量
null //对象字面量
关键字
ECMAScript-262描述了一组具有特定用途的关键字,一般用于控制语句的开始或结束,或者用于执行特定的 操作等。关键字也是语言保留的,不能用作标识符。
ECMAScript关键字
break、else、new、var、case、finally 、return 、void、catch、for、switch、while、continue、
function、this、with、default、if、throw、delete、in、try、do、instanceof、typeof等
保留字
ECMAScript-262还描述了另一组不能用作标识符的保留字。尽管保留字在JavaScript中还没有特定的用途,但它们很有可能在将来被用作关键字。
ECMAScript保留字
abstract、enum、int、short、boolean、export、interface、static、byte、extends、long、
super、char、final、native、synchronized、class、float、package、throws、const、goto、
private、transient、debugger、implements、protected、volatile、double、import、public等
变量
ECMAScript的变量是松散类型的,所谓松散类型就是用来保存任何类型的数据。定义变量时要使用var操作符 (var是关键),后面跟一个变量名(变量名是标识符)。 实例:
<script type="text/javascript">
var company;
alert(company);
</script>
这句话定义了company变量,但没有对它进行初始化(也就是没有给变量赋值)。这时,系统会给它一个特 殊的值 -- undefined(表示未定义)。 实例:
var company = 'C++开发';
company = 100;
alert(company);
</script>
所谓变量,就是可以初始化后可以再次改变的量。ECMAScript属于弱类型(松散类型)的语言,可以同时改变不 同类型的量。
注意:虽然可以改变不同类型的量,但这样做对于后期维护带来困难,而且性能也不高,导致成本很高!
<script type="text/javascript">
var company = 'IT教育';
var company = '前端开发';
alert(company);
</script>
重复的使用var声明一个变量,只不过是一个赋值操作,并不会报错。但这样的操作没有任何必要。
<script type="text/javascript">
var company= '前端开发',
address = 'xxxx号xx大厦',
telphone;
</script>