0%

JavaScript编程

HTML定义了网页的内容;CSS 描述了网页的布局;JavaScript确定了网页的行为。

一个完成的JS实现由下面三部分组成:1、核心ECMAScript;2、文档对象模型DOM;2、浏览器对象模型BOM。

1、ECMAScript与Web浏览器没有依赖关系,就是对实现该标准规定的各方面内容的语言的描述;

2、文档对象模型DOM:针对XML但经过扩展用于HTML的应用程序编程接口API;DOM把整个页面映射为一个多层节点结构,HTML页面中每个组成部分都是某种类型的节点,这些节点又包含着不同类型的数据;通过DOM创建的这个表示文档的树形图,开发者获得了控制页面内容和结构的主动权。借助DOM提供的API,开发人员可以自如地删除、添加、替换或修改任何节点。

3、浏览器对象模型BOM:开发人员使用BOM控制浏览器显示的界面以外的部分,

1、使用script元素嵌入JavaScript代码时,只须为script指定type属性,type=”text/javascript”,之后将JS代码直接放在元素内部,且包含在script内部的JS代码将从上至下被解释;即在解释器对script页面内的所有代码求值完以前,页面中其余内容都不会被浏览器加载或显示。

2、如果要通过script元素来包含外部JS文件,那么需要SRC属性,是一个指向外部JS文件的链接;

且带有src属性的script元素不应该在其script和/script标签之间再包含额外的JS代码,如果包含则只会下载并执行外部脚本文件而忽略内部嵌入的代码。

甚至SRC属性可以包含外部域的JS

1
2
<script type="text/javascript" src="example.js" />
<script type="text/javascript" src="http://www.somewhere.com/afile.js"></script>

现代WEB应用一般把全部JS引用放在body元素中页面内容的后面,以免加载时间过长;或者加上defer作为延迟脚本(延迟至html页面加载完毕),加上async作为异步脚本(不让页面等待两个脚本下载、执行,从而异步加载其他内容)。

一般还是尽可能得用外部文件来包含JS代码,可维护性、可缓存、适应未来。

1、基本概念

变量

松散类型变量,定义时用var后跟变量名,该变量可以用于保存任何值;但用var操作符定义的变量将成为定义该变量作用域中得局部变量,如果在函数中定义,则函数退出后便会销毁该变量。省略var操作符时可定义全局变量,但及其不推荐。

数据类型

5种简单得:Undefined(未定义)、Null(空)、Boolean(布尔型)、Number(数值)、String(字符串);还有一种复杂的:Object(对象),数据类型具有动态性,无需再定义。用typeof操作符来返回给定变量的数据类型。

Undefined:只有一个值undefined,使用var声明变量时未对其初始化;

Null:只有一个值null,逻辑上表示一个空对象指针,因此使用typeof检测null值时会返回object,定义的变量要存储值则先初始化为null,可直接检查该值判断是否已经保存了一个对象的引用。事实上,undefined值派生自null值,因此它们的相等性测试返回true。

Boolean类型:只有两个字面值:true、false,且区分大小写,即True和False不是布尔类型,只是标识符,调用转型函数Boolean()可以转换成对应的布尔值。

Number类型:表示整型和浮点数值,十进制、八进制(字面值第一位为0)、十六进制(字面值第一位为0X),ECMAScript会适时地自动将浮点型变为整型,对于极大、极小的数可用e来表示法表示的浮点数值表示。数值范围:Number.MIN_VALUE到Number.MAX_VALUE。

NaN:非数值,是一个特殊的数值,用于表示一个本来要返回数值的操作数未返回数值的情况。任何涉及NaN的操作都会返回NaN,因此用isNaN()函数,不能转换成数值的值都会导致该函数返回true,字符串”blue“不能转换成数值,因此返回true。

1
2
var floatNum = 3.125e7
//e表示法表示的数值等于e前面的数乘以10的指数次幂

Number():用于任何数据类型转换成数值;parseInt():处理整数;parseFloat():处理浮点数字字符。

String类型:单、双引号没有区别,包含一些转义序列;ECMAScript中字符串不可变,要改变一个字符串,首先要销毁原来的字符串,再用一个包含新值得字符串填充该变量。

toString()方法,返回对应值字符串;String()转型函数。

object类型:对象其实就是一组数据和功能的集合,对象可以通过执行new操作符后跟要创建的对象类型的名称来创建。Object的每个实例都具有下列方法、属性:

constructor:保存着用于创建当前对象的函数,构造函数;

hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中是否存在,其中作为参数的属性名propertyName必须以字符串的形式指定;

isPrototypeOf(object):用于检查传入的对象是否是当前对象的原型;

propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句来枚举,与hasOwnProperty(propertyName)方法一样,作为参数的属性名必须以字符串形式指定;

toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应;

toString():返回对象的字符串表示;

valueOf():返回对象的字符串、数值或布尔值表示。

操作符

一元加操作符:对非数值应用时,该操作符会像Number转型函数一样对这个值执行转换;一元减操作符主要用于表示负数;

位操作符:用于最基本的层次上,即按内存中表示数值的位来操作数据,按位非~;按位与&;按位或 | ;按位异或 ^;左移 <<;有符号的

-------------本文结束感谢您的阅读-------------
坚持原创技术分享,您的支持将鼓励我继续创作!