一、js的简介

  JavaScript是基于对象和事件驱动的脚本语言,主要应用在客户端。

  特点:

    交互性(信息的动态交互)    

    安全性(不可以直接访问本地硬盘)

    跨平台性(只要是可以解析js的浏览器都可以执行,和平台无关)


二、JavaScript与Java不同

  NetScape公司开发的一种脚本语言,并且可以在所有主要浏览器上运行。

  JavaScript是基于对象的,Java是面向对象的。

  JavaScript只需要解析就可以执行了,而Java需要先编译成字节码文件,再执行。

  JavaScript是一种弱类型语言,Java是一种强类型语言。


三、JavaScript语言组成

  一个完成的JavaScript实现由以下3个部分组成:

  核心(ECMAScript)

  文档对象模型(DOM)

  浏览器对象模型(BOM)


四、js与HTML的结合方式


js与HTML的结合方式一:



  
    js和HTML的结合.html
	
    
    
    
    
    
	
	 
	 	window.alert("哈哈");
	 
  
  
  
    
  


js与HTML的结合方式二:

main.js

window.alert("哈哈");


  
    js和HTML的结合.html
	
    
    
    
    
    
	
	 
	 
  
  
  
    
  


五、js的基本数据类型

  JavaScript和Java一样存在两种数据类型

    原始值(存储在stack中的简单数据)。

    引用值(存储在堆heap中对象)。

  5种原始数据类型

    Undefined、Null、Boolean、Number和String

    JavaScript中字符串是原始数据类型。

  通过typeof运算符,查看变量类型

    所有的引用类型都是Object。

  通过instanceof运算符解决typeof对象类型判断问题

  区分undefined和null?

    变量定义了,没有初始化;访问对象不存在属性--undefined。

    访问的对象不存在--null。


六、JavaScript的语法种类

  关键字:被赋予了特殊含义的单词。

  标识符:用于标志数据和表达式的符号。(变量、函数名)

  注释:说明解释程序。

  变量:标识内存中一片空间,用于存储数据,数据是可以变化的。

  运算符:可以让数据进行运算的符号。

  语句:对程序的运行流程进行控制的表达式。

  函数:用于对功能代码进行封装,便于提高复用性。

  数据:对多数据进行存储,便于操作。

  对象:封装体,既可以封装数据,又可以封装函数。


七、JavaScript的变量

  JavaScript是采用一个关键字var来声明变量的。

  JavaScript的变量非严谨的 var x = 4;中的var和;都可以省略不写。

  JavaScript是弱类型的语言,定义的变量什么类型的数据都可以赋值。

  字符串类型中使用""和''号都是String类型的数据。


八、JavaScript的运算符

  JavaScript中小数和整数都是数字类型,所以除法中没有整数,会出现小数。

  字符串与数字相加,是字符串连接,如果相减,字符串直接装换成数字再相减。

  Boolean类型可以进行运算,false就是0或null,非0非null是true,默认为1。

  ++--和Java一样哦。


九、JavaScript的语句

  判断语句中,条件如果直接写=号,那就是赋值操作。

  switch和Java中一样。

  for循环也和Java中的一样,但是要注意定义变量的时候使用var,而不是java中的int。


十、JavaScript的数组

  数组有两种定义方式:

    var arr = [1,2,3];定义一个数组,包含三个元素。

    var arr = new Array(5);定义一个数组,数组的长度是5。

    var arr = new Array(1,2,3);定义一个数组,包含三个元素。

  数组有属性length。

  数组的长度是可变的。

  数组可以存放不同的数据类型的数据。


十一、JavaScript函数

  函数定义的格式,关键字function。

  函数需要调用才能执行。

  定义函数参数列表的时候,不必使用var关键字。

  JavaScript中不存在重载形式。

  在每个JavaScript的函数中,都存在一个数组arguments,用于存储参数列表。

  如果调用方式的时候,忘记写(),则会把函数对象的引用传递给接收的变量,而打印出函数体的内容。



  
    js的函数
	
    
    
    
    
    
	
	 
	 	function add(a,b){
	 		return a + b;
	 	}
	 	var result = add(2,5);
	 	document.write(result);
	 
  
  
  
    
  


十二、js的动态函数、匿名函数以及全局变量和局部变量

  动态函数是通过js的内置对象Function,通过new Function(参数1,参数2)来创建动态函数。



  
    js的动态和匿名函数.html
	
    
    
    
    
    
	
		var add = new Function("x,y","var sum;sum=x+y;return sum;");
		var result = add(1,2);
		alert(result);
	
  
  
  
    This is my HTML page. 
  

  匿名函数就是没有名称的函数,通常是函数的简写形式。



  
    js的动态和匿名函数.html
	
    
    
    
    
    
	
		var result = function(){
			return 100;
		};
		alert(result());
	
  
  
  
    This is my HTML page. 
  

  全局变量:在                 



  
    01-js之String.html
	
    
    
    
    
    
	
		/*
			fontcolor()
			定义和用法:fontcolor()方法用于按照指定的颜色来显示字符串
			语法:
				stringObject.fontcolor(color)
		*/
		var str = "Hello World!";
		document.write(str.fontcolor("red"));
	
	
  
  
  
    
  


  
    01-js之String.html
	
    
    
    
    
    
	
		/*
			italics()
			定义和用法:italics() 方法用于把字符串显示为斜体。
			语法:
				stringObject.italics()
		*/
		var str = "Hello World!";
		document.write(str.italics());
	
	
  
  
  
    
  


  
    01-js之String.html
	
    
    
    
    
    
	
		/*
			link()
			定义和用法:link() 方法用于把字符串显示为超链接。
			语法:
				stringObject.link(url)
		*/
		var str = "baidu一下 我就知道";
		document.write(str.link("http://www.baidu.com/"));
	
	
  
  
  
    
  


  
    01-js之String.html
	
    
    
    
    
    
	
		/*
			fontsize()
			定义和用法:fontsize() 方法用于按照指定的尺寸来显示字符串。
			语法:
				stringObject.fontsize(size)
		*/
		var str = "Hello World!";
		document.write(str.fontsize(7));
	
	
  
  
  
    
  


  
    01-js之String.html
	
    
    
    
    
    
	
		/*
			charAt() 
			定义和用法:charAt() 方法可返回指定位置的字符。
			请注意,JavaScript 并没有一种有别于字符串类型的字符数据类型,所以返回的字符是长度为 1 的字符串。
			语法:
				stringObject.charAt(index)
		*/
		var str = "Hello World!";
		document.write(str.charAt(1));
	
	
  
  
  
    
  


  
    01-js之String.html
	
    
    
    
    
    
	
		/*
			toLocaleLowerCase() 
			定义和用法:toLocaleLowerCase() 方法用于把字符串转换为小写。
			语法:
				stringObject.toLocaleLowerCase()
		*/
		var str = "Hello World!";
		document.write(str.toLocaleLowerCase());
	
	
  
  
  
    
  

十三、js的对象之Array对象

  Array对象用于在单个的变量中存储多个值。

  创建Array对象的语法:

    new Array();
    new Array(size);
    new Array(ele1,ele2,ele3,……,elen)


  
    01-js之String.html
	
    
    
    
    
    
	
		/*
			concat()  
			定义和用法:concat() 方法用于连接两个或多个数组。
			语法:
				arrayObject.concat(arrayX,arrayX,......,arrayX)
		*/
		var a = [1,2,3];
		document.write(a.concat(4,5));
	
	
  
  
  
    
  


  
    01-js之String.html
	
    
    
    
    
    
	
		/*
			join()   
			定义和用法:join() 方法用于把数组中的所有元素放入一个字符串。
			语法:
				arrayObject.join(separator)
		*/
		var a = [1,2,3];
		document.write(a.join("-"));
	
	
  
  
  
    
  

十三、js的对象之Math对象

  Math对象中的方法全都是静态方法,所以不用new直接调用即可。



  
    01-js之Math.html
	
    
    
    
    
    
	
		/*
			ceil()   
			定义和用法:ceil() 方法可对一个数进行上舍入。
			语法:
				Math.ceil(x)
		*/
		document.write(Math.ceil(0.60));
	
  
  
  
    
  


  
    01-js之Math.html
	
    
    
    
    
    
	
		/*
			floor()   
			定义和用法:floor()方法可对一个数进行下舍入。
			语法:
				Math.floor(x)
		*/
		document.write(Math.floor(0.60));
	
  
  
  
    
  


  
    01-js之Math.html
	
    
    
    
    
    
	
		/*
			round()   
			定义和用法:round() 方法可把一个数字舍入为最接近的整数。
			语法:
				Math.round(x)
		*/
		document.write(Math.round(0.60));
	
  
  
  
    
  


  
    01-js之Math.html
	
    
    
    
    
    
	
		/*
			random()   
			定义和用法:random() 方法可返回介于 0 ~ 1 之间的一个随机数。
			语法:
				Math.random()
		*/
		document.write(Math.random());
	
  
  
  
    
  

十四、js的对象之Math对象

  正则表达式对象的两种写法

1 var reg = new RegExp("正则表达式");
2 var reg = /^正则表达式$/

  正则表达式对象提供了两个方法

exec() 如果采用1方式,字符串中包含匹配的内容会返回结果,如果采用2方式会返回null。
test() 如果采用1方式,字符串中包含匹配的结果会返回true,如果采用2方式会返回false。

 

十五、js的全局函数



  
    js之全局函数.html
	
    
    
    
    
    
	
		/*
			eval()函数
			定义和用法:eval()函数可计算某个字符串,并执行其中的JavaScript代码
			语法:eval(string)
		*/
		eval("alert('hello world')");
	
  
  
  
    
  


  
    js之全局函数.html
	
    
    
    
    
    
	
		/*
			isNaN()函数
			定义和用法:isNaN() 函数用于检查其参数是否是非数字值。
			语法:isNaN(x)
		*/
		document.write(isNaN(123));
	
  
  
  
    
  


十六、js之window对象

  window对象表示浏览器中打开的窗口。

  如果文档包含框架(frame或iframe),浏览器会为HTML文档创建一个window对象,并为每一个框架创建一个额外的window对象。

  window.frames 返回敞口中所有命名的框架。

  parent是父窗口(如果窗口是顶级窗口,那么parent==self==top)

  top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe)

  self是当前窗口(等价于window)

  opener是open方法的打开当前窗口的那个窗口。

window.alert(string)
window.confirm(string)
window.prompt(string)


十七、js之navigator对象

  navigator对象包含有关浏览器的信息。



  
    js之navigator
	
    
    
    
    
    
	
		
		document.write(window.navigator.userAgent);
	
	
  
  
  
    
  


十八、js之history对象



  
    js之history
	
    
    
    
    
    
	
		/* 
			history对象
			说明:history对象包含用户访问过的URL。history对象是window对象的一部分,可通过window.history属性对其进行访问。
			back() 前一个URL
			forward() 后一个URL()
			go() 功能和back()和forwar()类似
		*/
		function goBack(){
		  	window.history.back()
		 }

	
  
  
  
    
    
  


十九、js之Location对象



  
    js之Location
	
    
    
    
    
    
	
		/*
			Location对象
			Location对象包含有关当前URL的信息。
			Location 对象是 Window 对象的一个部分,可通过 window.location 属性来访问。
			
			属性:href
			定义和用法:href属性是一个可读可写的字符串,可设置或返回当前显示的文档的完整的URL。
			语法:
				location.href = URL
				
		*/
		window.location.href = "http://www.baidu.com/";