javascript入门

JavaScript

一、 JavaScript概述

1、 JavaScript是什么,有什么作用?(了解)

*JavaScript是因特网上最流行的脚本语言

*脚本语言不能单独使用,必须嵌入到其他语言中组合使用

*JavaScript不能单独使用,必须和其他语言(HTML)结合使用

*浏览器解释执行

 

*作用是:可以控制前端页面的逻辑操作

 例如:JS可以控制CSS的样式;(一般)

JS可以对表单项进行校验(重点)

JS可以对HTML元素进行动态控制(使用较多)

 

*特点: 

  安全性(没有访问系统文件权限,无法用来做木马病毒)

  跨平台性(浏览器有JS的解析器,只要有浏览器就能运行JS代码,和平台无关)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>demo1.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

	<script type="text/javascript">
		var sum=0;// int sum=0;
		for(var i=1;i<=9;i++){// int i=1;
			sum+=i;
			alert(sum); //System.out.print(sum);
		}
		
	</script>
  </head>
  	
  <body>
    	
    	
  </body>
</html>


2、 JavaScriptJava的关系(了解)

ECMAScript

*JavaScriptJava一点关系都没有(雷锋和雷峰塔)

*JavaScriptJava的区别:

>JavaScript代码可以直接在浏览器执行,而Java必须先经过编译才能执行

>JavaScript是弱类型语言,Java是强类型语言

强类型语言:要求变量的使用严格符合定义。(例如:变量声明后都有一个固定的区域,int区域大小是32位)。编程时痛苦,调BUG时舒服

弱类型语言:不要求变量的使用严格符合定义。(例如:变量声明后没有一个固定的区域,任何类型的值都能放在该区域)。编程时舒服,调BUG时痛苦

 

<html>

  <head>

<script>

  var sum = 0;

  for(var i = 1; i <= 100; i++) {

      sum += i;

}

alert(sum);

</script>

  </head>

  <body>

  </body>

</html>

 

二、JavaScript语法及使用(重点)

注释

*单行注释

//

Myeclipse快捷键 ctrl+shift+c

*多行注释

/* */

Myeclipse快捷键 ctrl+shift+/

变量

*标示内存中的一块空间,用于存储数据,数据是可变的

 

*格式:

 var 变量名 = 变量值;

 

 JavaScript中的变量声明都用var关键字

 变量值的数据类型(原始数据类型和引用数据类型)

>原始数据类型:

string 字符串类型

“”’’都表示字符串

 

boolean 布尔类型

 true,false

 

number 数字类型

整数和小数

null 空,表示引用类型的对象不存在

 

undefined 未定义

变量声明未赋值时使用/对象的属性未赋值时使用

注:变量就像一个盘子,什么都能盛装。

变量的类型可以用typeof()来判断。例如:var str=”aa”;alert(typeof(str));//string

变量的大小写是敏感的,yyYY不是一个变量。

为什么 typeof 运算符对于 null 值会返回 "Object"。这实际上是 JavaScript 最初实现中的一个错误,然后被 ECMAScript 沿用了。现在,null 被认为是对象的占位符,从而解释了这一矛盾,但从技术上来说,它仍然是原始值。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>demo1.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

	<script type="text/javascript">
		/* 
			var 变量名=变量值;
		
			原始数据类型:
			string	字符串
					""  ''都表示字符串
					
			boolean	布尔类型
					true , false
					
			number	数字
					整数和小数
			
			null	空,对象为空(引用为空)
			
			undefined	未定义  变量没有赋值就使用/使用 对象.属性 的时候,属性没有赋值就使用
			
			//变量就是一个盘子,装什么东西都可以
			
			引用数据类型:
			typeof()  帮咱们判断变量是什么类型的
			
			变量名命名是大小写敏感的(区分大小写)
		*/
		/* var str = "aa";
		var str2 = 'aa';
		var str3 = true;//false
		var str4 = 15;
		var str5 = 15.55;
		var date = null;
		var aa;
		str =15;
		str = true;
		str = "aa";
		
		alert(str);//aa 15 */
		
		/* var str = "aa";
		str =15;//number
		//str = true;//boolean
		var ss;
		var obj= null;
		alert(typeof(obj)); */
		
		/* var sf="aa";
		alert(Sf); */
		
		/* 
			引用数据类型
			
			常用对象:
			String,Array,Date,Math,RegExp
			
			Object 所有对象的父对象
			
			
		*/
		var date = new Date();
		alert(date instanceof Object);
	</script>
  </head>
  	
  <body>
    	
    	
  </body>
</html>

 


>引用数据类型(了解)

即对象

例如:var obj = new Object();

 

常用对象:

String,Array,Date,Math,RegExp

 

注:instanceof可以用来判断对象是否属于某类型。返回truefalse .例如:

Var str = new String();

Alert(str instanceof String);//true

 

 

*两种变量

>全局变量

就是在<script>标签中定义的变量,在整个页面都有效

>局部变量

就是在函数体内定义的变量

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>demo1.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

	<script type="text/javascript">
		/* 
			全局变量
			就是在script标签中的变量,对整个页面都有效
		
			局部变量
			就是在函数体中定义的变量
		*/
		/* var str =10;
		
		for(var i=1;i<=3;i++){
			
		}
		alert(i);//4 */
		
		/* function aa(){
			var a=5;
			alert(a);
		} */
		var x = 4;
		function show(x){
		x = 8;
		}
		show(x);
		alert("x = "+x);
		/* A.8   
		B.4   
		C.undefined */

	</script>
  </head>
  	
  <body>
    	
    	
  </body>
</html>

 

练习:如下代码显示X值是多少?

var x = 4;

function show(x){

x = 8;

}

show(x);

alert("x = "+x);

 

A.8   

B.4   

C.undefined

 

函数(方法)

*用于代码封装,提高复用性

 

*格式 function 函数名(参数列表){

函数体;

return ;

}

*函数定义,关键字 function

*定义参数列表时,不必使用var关键字,否则报错

*如果没有需要返回的参数,return可以不写

*函数需要调用才能执行,和Java一样

*JavaScript不存在重载形式

>每个JavaScript,都存在一个数组arguments,用于存储参数列表

思考:如下调用方法会打印输出什么效果?

function getSum(){

return 100;

}

var sum = getSum;

alert(sum);

 

A. 100

B. undefined

C. function getSum(){return 100;}

 

*如果调用方法时忘记加(),那么会把函数对象的引用传给变量

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>函数.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
	<script type="text/javascript">
		//用来做加法的方法  a b  a+b
		
		/* public int sum(int a,int b){
			return a+b;
			
		} */
		//JavaScript不定义返回值的类型
		//javascript 方法不存在重载
			//因为在JavaScript方法中存在arguments隐藏对象(数组),就是用来获取传进来的参数列表的
		//JavaScript中如果调用方法不加括号,那么会把方法(对象)的引用传出来
		/* function sum(a,b){
			alert(arguments.length);
			alert(arguments[0]);
			alert(arguments[1]);
			alert(arguments[2]);
// 			alert(a);
// 			alert(b);
		}
		sum(5,6,7); */
		function getSum(){
			return 100;
		}
			var sum = getSum;
			alert(sum);

	</script>
  </head>
  	
  <body>
    
  </body>
</html>

 

*两种扩展函数:

>动态函数(了解会用)

通过JS的内置对象Function来动态创建

格式: new Function(参数一,参数二);

参数一是函数形参列表

参数二是函数体

 

>匿名函数(较常用)

没有名称的函数,函数的简化形式

格式:var str = function(参数列表){

函数体;

return;

};

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>demo1.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

	<script type="text/javascript">
		/* 
			动态函数(使用比较少)
				Function 对象
			匿名函数
		
		*/
		/* var par = "a,b,c";
		var par2 = "return a+b+c";
		var str =new Function(par,par2);
		alert(str(1,2,3)); */
		
		var str=function(a,b){
			return a+b;
		};
		alert(str(1,2));
	</script>
  </head>
  	
  <body>
    	
    	
  </body>
</html>

 

   

运算符

算术运算符(常用)

+号除了运算外,可以作为连接符

-号除了运算外,可以作为转换符

 

alert(true + 1); // 2

比较运算符(常用)

== 比较值

=== 又比较值和类型语句(流程控制语句)

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>demo1.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

	<script type="text/javascript">
		/* 
			算术运算符
			+	连接符
			-	转换符
			
				NaN意思是不是数字
			比较运算符
			==	只是比较值,即使类型不同也没关系
			===	不仅比较值,也同时比较类型
			
		*/
		/* var str=15;
		var str2="1";
		alert(str+str2);//151 */
		/* var str =15;
		var str2 = "1";
		alert(str-str2);//14 151 */ 
		/* var str= 15;
		var str2="a";
		alert(str-str2);//NaN */
		/* var str=8;
		//alert(str==8);//true
		//alert(str=="8");//true
		alert(str===8);//true
		alert(str==="8");//false */
		/* var str = (8==8)?8:0;
		alert(str); */
		
	</script>
  </head>
  	
  <body>
    	
    	
  </body>
</html>

流程控制语句

对程序运行流程控制的表达式

n 判断语句

IF

if(8 == num){

赋值的问题,需要注意。

}else{

}

0-0null""falseundefined NaN,为false

否则为true 

和Java中一样。

switch(n)

   {

   case 1:

     执行代码块 1

     break

   case 2:

     执行代码块 2

     break

   default:

     如果n即不是1也不是2,则执行此代码

   }

练习:以下代码输出结果为:

var a=15;

if(a=15){

 alert(15);

}else{

 alert(“else”);

}

A. 15

B. Else

 

n 循环语句

 

For循环(较常用)

for(var i=0;i<=8;i++){

// 循环体

}

增强FOR循环(不灵活,使用少,但开发中会有使用)(了解会用,工作中自己进行尝试即可)

for(变量 in 对象){

// 循环体

}

*里面的变量代表下标

*使用 in关键字

*遍历数组(或对象),里面要用数组[下标]

* 例如

Var s= new Array();

s[0]=1;

s[1]=2;

for(x in s){

alert(s[x]);

}

 while(表达式){

// 循环体

}

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>demo1.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

	<script type="text/javascript">
		/* 
			判断语句
			IF
			0、-0、null、""、false、undefined 或 NaN,为false
			否则为true 
			
			FOR循环	var 
					99乘法表
			while do while
				
			增强for
		*/
		/* function str(){
			return null;
		}
		var x=8;
		var aaaa=str();
		if(aaaa){
			alert(1);//1
		}else{
			alert("else");
		} */
		/* for(var i=0;i<3;i++){
			
		} */
		/* if(-0){
			alert(1);
		}else{
			alert("eeee");
		} */
		
		var i=new Array();
		i[0]=1;
		i[1]=2;
		for(x in i){
			alert(i[x]);
		}
	</script>
  </head>
  	
  <body>
    	
    	
  </body>
</html>



对象

l String对象(了解会用)

* var str = "abc";

* var str = new String("abc");

* 属性:length 字符串的长度

* 方法

* javaString对象类似的方法(基本相同,需要练习)

* charAt(index) 返回指定位置的字符(常用)

* indexOf(searchvalue,fromindex) 检索字符串

* lastIndexOf() 从后向前的

* replace() 替换字符串(较常用)

* substring(start,stop) 从哪开始,到哪结合(包含开始不包含结束)

* substr(start,length) 从哪开始,截取长度

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>demo1.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

	<script type="text/javascript">
		/* 
			String对象
			
			var s = new String("aaa");
			var s = "aaa";
			
			document.write();//会把值输出到浏览器页面上
		*/
		/* var str ="abc";
		var str2 ="你好么";
		document.write(str2.blink());
		document.write(str2);
		document.write(str.charAt(1)); */
		var str = "ABC";
		document.write(str.toLowerCase());
		
	</script>
  </head>
  	
  <body>
    	
    	
  </body>
</html>


Array对象(重要)

* js的数组

* var arr = [1,2,3];

*var arr = new Array();数组长度默认为0

* var arr = new Array(4); 数组长度是4

* var arr = new Array(1,2); 数组元素是1,2

* 数组的长度

* length

* 数组的长度是可变的

* 数组元素可以是任意类型(注意)

* 方法

* concat() 链接数组或者元素都可以(较少)

* join(separator) 转化成字符串

* push() 向末尾添加一个元素,返回新的长度

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>demo1.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

	<script type="text/javascript">
		/* 
			Array对象
			var str = [1,2,3]; 长度是3,长度可变
			var str = new Array();长度默认是0,长度可变
			var str = new Array(5);长度默认是5,长度可变
			var str = new Array(1,2);长度是2,长度可变
			
			join(分隔符)  默认是 
			push   就是把元素添加进数组末尾
		*/
		/* var str=[1,2,3];
		var str2=[4,5,6];
		alert(str.concat(str2)); */
		
		/* var str2=[1,2,3];
		var str=str2.join();
		alert(str); */
		var str2=[1,2,3];
		var str=5;
		str2.push(str);
		alert(str2);//
		
		
	</script>
  </head>
  	
  <body>
    	
    	
  </body>
</html>


Date对象(比较常用)

* var date = new Date(); 当前的时间

* toLocaleString() 根据本地的日期格式转化成字符串(了解)

* getDate() 返回一个月中的某一天(了解)

* getMonth() 获取月份(0-11)(了解)

* getFullYear() 获取年(了解)

* getTime() 获取毫秒数(比较重要)

* setTime() 通过毫秒数设置日期(比较重要)

同时也可以通过构造器设置  new Date(毫秒数);

* Date.parse(datestring) 解析字符串,返回毫秒数(重要的)

* 2015-4-29 解析不了

* 2015/4/29 是可以解析的

l Math对象(了解)

round(x) 四舍五入

random() 随机生成0~1数字

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>demo1.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

	<script type="text/javascript">
		/* 
			Date对象
			var aa = new Date();
		*/
		var aa = new Date();
// 		alert(aa.toLocaleDateString());
		/* alert(aa.getDate());
		alert(aa.getMonth());
		alert(aa.getFullYear()); */
		/* var long1 = aa.getTime();
		var long2=long1-(1000*60*60*24);
		
		aa.setTime(long2);
		alert(aa.toLocaleString()); */
		
		var bb = Date.parse("2015/5/21");
		//aa.setTime(bb);
		var cc = new Date(bb)
		alert(cc.toLocaleString());
	</script>
  </head>
  	
  <body>
    	
    	
  </body>
</html>


RegExp对象(重要)

*正则对象     正确的规则

* var reg = new RegExp("表达式"); (开发中基本不用)

* var reg = /^表达式$/ 直接量(开发中常用)

直接量中存在边界,即^代表开始,$代表结束

* test(string) (经常使用)符合规则返回true,不符合返回false

例如:

if(reg.test("12345")){

//

}else{

//

}

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>demo1.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

	<script type="text/javascript">
		/* 
			RegExp对象
			var s = new RegExp("表达式");
			var s = /^表达式$/;
			
			test()
		*/
		var reg = /^\s*$/;//验证空
		var checkText = "";
		alert(reg.test(checkText));
		
	</script>
  </head>
  	
  <body>
    	
    	
  </body>
</html>

练习:判断字符串是否为空

var msg=””;

var reg = /^\s*$/;

alert(reg.test(msg));

 

 

l 全局函数

Global

浏览器内存中游离的函数,直接拿过来用。

eval() 可以解析字符串,执行里面的javascript的代码(学习JSON)(最常用)

isNaN() 是否 不是 数字  (常用)

encodeURI() 编码

decodeURI() 解码

(不用看)escape不编码字符有69个:*+-./@_0-9a-zA-Z

(了解)encodeURI不编码字符有82个:!#$&'()*+,-./:;=?@_~0-9a-zA-Z

(了解)encodeURIComponent不编码字符有71个:!'()*-._~0-9a-zA-Z

 

三、JavaScriptHTML的结合方式(了解)

 

l 两种使用方式

>内部使用

*<script type=”text/javascript”>JavaScript的代码</script>

>外部引用

*<script type=”text/javascript” src=”javascript文件路径”></script>

*外部引用时script标签内不能有script代码,即使写了也不会执行

 

注意:<script>标签写在任意地方都可以,但是要注意HTMLJAVASCRIPT的加载顺序

<body οnlοad=””> 在网页加载完毕后 做什么事

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>demo1.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

	<script type="text/javascript" >
		function aa(){
			alert(document.getElementById("a").innerHTML);//打印 你好啊
			alert("1");
			alert("2");
		}
		
		
	</script>
  </head>
  	
  <body οnlοad="aa();">
    	<span id="a">你好啊</span>
    	
  </body>
</html>

 

四、JavaScript的组成(了解)

JavaScript的组成

*ECMAScript (核心)

*DOM 文档对象类型

*BOM 浏览器对象类型

 

 

 

 

 

 

 

 

 

 

 

练习:

1、99乘法表

22015-01-012015-09-01有多少天

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1、答案

<script type="text/javascript">

   for(var i=1;i<=9;i++){

   for(var j=1;j<=i;j++){

   document.write(j+"*"+i+"="+j*i+"\t");

   }

   document.write("<br/>");

   }

  </script>

 

2答案:245

<script type="text/javascript">

   var dlong1=Date.parse("2015/01/01");

   var dlong2=Date.parse("2015/09/03");

   alert((dlong2-dlong1)/1000/60/60/24);

  </script>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值