在web标准中。网页由结构、表现形式和行为三个部分组成。

    结构标准---->XHTML;

    表现形式标准----->CSS;

    行为标准----->javascript;

    javascript是一种专门设计用来给网页添加交互性的编程语言,最初由Netscape公司开发。最后提交给了欧洲计算机制造商协会(ECMA)。

   一、javascript特点:

    1、javascript是一门解释型语言,这意味着javascript代码不须要预先编译就能够运行。

    2、javascript不能脱离浏览器独立执行

    3、javascript不同意读写用户的文件(cookie除外),採用同源策略。仅仅同意来自同样域的交互。

    二、javascript能做什么

    1、给程序猿一种全面控制HTML网页中全部元素的能力;

    2、能够在HTML网页中放入动态文本;

    3、响应用户在使用网页中产生的事件

    4、校验用于输入的数据

    5、检測訪问者的浏览器

    6、创建cookie

    三、javascript加入到XHTML网页中的方式

    1、内嵌

    2、外联

    3、事件引入

    事件引入。简单演示样例:

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
 </head>
 <body>
  <form action="#" method="get">
	<input type="button" value="press me" onclick="alert('hello world');"/>
  </form>
 </body>
</html>
    四、变量

    javascript是弱类型的。定义变量时无需明白的数据类型声明,并且变量并一定要初始化

var test1 = 'hi',test2='hi';
var sex = 'male',age=12;
var test;
    五、数据类型

    分数字型和非数字型

    非数字型:undefined、null、NaN、boolean、string

    数字型:number

    1、类型特征:

    (1)、undefined不是报错。它也是一种类型,而且这样的类型的值就是undefined,如

var temp;
    temp的类型为undefined。值也为undefined;

    (2)、当变量未声明后者函数无返回值的时候,都会体现为undefined。

    (3)、使用一个未声明的变量将会报错;  

    (4)、typeof不区分未赋值的变量和未声明的变量;

var temp1;
alert(typeof temp1);//undefined
alert(typeof temp2);//undefined
alert(temp2==undefined);//报错

    (5)、undefined是由null派生出来,因此javascript把它们定义为相等;

alert(null==undefined);//true

    (6)、NaN不能用于算术计算。而且它与自身不相等
     2、数据类型转换

    javascript中一切数据事实上都是一个伪对象,这意味着实际上它们具有属性和方法。

   (1)、将boolean值、数字值转换为字符串最简单的方法toString()。

var bFound = false;
alert(bFound.toString());//'false'
var iNum = 10;
var gNum = 10.0;
alert(iNum.toString());//'10'
alert(gNum.toString());//'10'
    (2)对于非数字的原始值,javascript提供了parseInt()和parseFloat()方法转换为数字的方法。

      仅仅有对包括数字的string类型调用这些方法,它们才干正确执行;对其它类型或纯字符类型返回的都是NaN。

parseInt('1234blue');//1234
parseInt('0xA');//10
parseInt('22.5');//22
parseInt('blue');//NaN
parseFloat('1234blue');//1234.0
parseFloat('0xA');//0
parseFloat('22.5');//22.5
parseFloat('22.345');//22.345
parseFloat('0908');//908
parseFloat('blue');//NaN
    (3)强制转换

    使用强制转换能够訪问特定类型的值。即使它是还有一种类型的。

     Boolean(value)。

     Number(value);

     String(value);

    当要转换的值是至少有一个字符的字符串、非零数字或对象时,Boolean()函数将返回true。假设该值是空字符串、数字0、undefined或null,它将返回false。能够用以下的代码段測试Boolean型的强制类型转换。

Boolean('');//false
Boolean('hi');//true
Boolean(100);/true
Boolean(null);//false
Boolean(0);//false
Boolean(new Object());/true
    Number()的强制类型转换与parseInt()和parseFloat()方法处理方式相似,仅仅是它转换的是整个值。而不是部分值。

比如:

parseInt('4.2.6');//4
parseFloat('4.2.6');//4.2
Number('4.2.6');//NaN
    由于整个字符串值不能转换为数字,所以为非数(NaN)。

    假设字符串的值能被完整的转化,Number()将推断调用parseInt()还是调用parseFloat()方法。

Number(false);//0
Number(true);//1
Number(undefined);//NaN
Number(null);//0
Number('2.5');//2.5
Number('56');//56
Number('2.2.7');//NaN
Number(new Object());//NaN
Number(100);//100
    String()是最简单的,由于它能够把不论什么值转换为字符串。要运行这样的强制类型转换,仅仅须要调用作为參数传递进来的值得toString()方法。

String(null);//'null'
String(1);//'1'
String(false);//'fasle'
String(undefined);//'undefined'
    3、引用数据类型

    原生对象:由javascript提供的,独立于宿主环境的对象,简单点说。就是在ECMA-262标准中定义的对象。

它包含Object、Function、Boolean、Date、Number、Error....

    内置对象:内置对象实际上也是原生对象的一种。可是与原生对象不同的是。内置对象不须要显式地初始化,由于它已经初始化了。

ECMA-262仅仅定义了两个内置对象:Globle和Math;

    宿主对象:与浏览器有关的对象。

全部BOM和DOM对象都属于宿主对象。

    4、javascript类
    (1)object类

    object类具有下面属性:

    constructor-----对创建对象的函数的引用。

对于Object类,该引用指向原生的object()函数;

    prototype-----对该对象的对象原型的引用。

对于全部的类。它默认返回Object类的一个实例。

    Object还有下面方法:

    hasOwnProperty(property)------推断对象是否具有某个特定的属性。必须用字符串指定该属性。

    isPrototypeOf(boject)------推断该对象是否为还有一个对象的原型。

    propertyIsEnumerable(property)------推断给定的属性能否够用for...in语句进行枚举。

    toString()------返回对象的原始字符串表示。

    valueOf()------返回最适合该对象的原始值。

    (2)原始数据类型包装器类

    javascript中的Boolean、Number、String类各自是javascript原始数据类型Boolean、Number、String的包装器类。

    (3)Array类

var colors = new Array('red','blue','yellow');
colors[25]='black';
alert(colors.length);//26
    当中下为3----24的值为null。

    (4)Global类

    Global类是javascript中最特别的对象,它不须要声明和初始化。

    eval()方法是javascript中最强大的方法,该方法就像整个javascript的解释程序。接受一个參数,即要运行的javascript字符串;

eval(alert('hello'));等价于alert('hello');//hello;
var msg = 'hello world';
eval('alert(msg)');//msg
eval("function go(){'say hi'}");
go();//say hi
    (5)instanceof运算符

    在使用typeof运算符时採用引用类型存储值会出现一个问题,不管引用的是什么类型的对象,它都返回“object”。而与typeof不同,instanceof方法要求开发人员明白地确认对象为某个特定的类型。

var o = new String('hello world');
alert(o instanceof String);//true
    六、函数

    假设函数无明白的返回值。或调用了没有參数的return语句,那么它真正返回的值是undefined。