`
哈达f
  • 浏览: 114528 次
  • 性别: Icon_minigender_1
  • 来自: 广西
社区版块
存档分类
最新评论

javascript简介

阅读更多

JavaScript 概述

JavaScript是基于对象和事件的脚本语言。

特点:

1.   安全性(不允许直接访问本地硬盘),它可以做的就是信息的动态交互。

2.   跨平台性。(只要是可以解释Js的浏览器都可以执行,和平台无关。)

 

JavaScriptJava不同

1.   JSNetscape公司的产品,JavaSun公司的产品。

2.   JS是基于对象,Java是面向对象。

3.   JS只需解释就可以执行,Java需要先编译成字节码文件,再执行。

4.   JS是弱类型,Java是强类型。

 

JavaScriptHtml的结合方式

想要将其他代码融入到Html中,都是以标签的形式。

1.   JS代码存放在标签对<script>...</script>中。

2.   使用script标签的src属性引入一个js文件。(方便后期维护,扩展)

例:<script src=”test.js” type=”javascript”></script>

注:规范中script标签中必须加入type属性。

 

 

JavaScript语法

每一种语言都有自己的语法规则,JS语法与Java很像,所以学习起来比较容易。JS中也一样有变量,语句,函数,数组等常见语言组成元素。

1.   变量

通过关键字var来定义,弱类型既是不用指定具体的数据类型。

例:var x = 3; x = “hello”;

注:JS中特殊的常量值:undefined,当变量没有初始化就被使用,该变量的值就是undefined(未定义)。

2.   语句(Java语句格式相同)

—   判断结构(if语句)

    注:var x = 3;

        if(x==4)//可以进行比较运算。

        if(x=4)//可以进行赋值运算,而且可以同样进行判断。不报错。

        因为在Js0就是false,非0就是true(通常用1表示)。

        所以if(x=4)结果是true

—   选择结构(switch语句)

—   循环结构(while语句,do…while语句,for语句)

注:不同的是,没有了具体数据类型的限制,使用时要注意。

3.   函数

—   一般函数

格式:

function  函数名(形式参数...)

{

    执行语句;

    return 返回值;

}

函数是多条执行语句的封装体,只有被调用才会被运行。

注意:调用有参数的函数,但没有给其传值,函数一样可以运行,或者调用没有参数的函数,给其传值,该函数也一样运行。说的简单点:只要写了函数名后面跟了一对小括号,该函数就会运行。那么传递的参数呢?

其实,在函数中有一个参数数组对象(arguments),该对象将传递的参数都封装在一个数组中。

例:

function demo()//定义函数。

{

    alert(arguments.length);

}

demo(“hello”,123,true);//调用函数。

那么弹出的对话框结果是3,如果想得到所有的参数值,可以通过for循环遍历该数组。

for(var x=0; x<arguments.length; x++)

{

    alert(arguments[x]);

}

为了增强阅读性,最好按照规范,按定义好的形式参数传递实际参数。

函数在调用时的其他写法:

var show = demo();//show变量接收demo函数的返回值。

var show = demo;//这种写法是可以的,意为showdemo代表同一个函数。

              //那么该函数也可以通过show()的方式运行。

 

—   动态函数

    通过Js的内置对象Function实现。

    例:var demo = new Function(“x,y”;”alert(x+y);”);

       demo(4,6);

       如同:

       function demo(x,y)

       {

           alert(x+y);

       }

       demo(4,6);

    不同的是,动态函数,参数以及函数体都可以通过参数进行传递,可以动态指定。

 

—   匿名函数

       格式:function(){...}

        例:var demo = function(){...}

            demo();

        通常在定义事件属性的行为时较为常用。

        例:

        function test()

        {

            alert(“load ok”);

        }

        window.onload = test;

        可以写成匿名函数的形式:

        window.onload = function()

        {

            alert(“load ok”);

        }

        匿名函数就是一种简写格式。 

 

4.   数组

    方便操作多元素的容器,可以对其中的元素进行编号。

    特点:可以存任意元素,长度是可变的。

    格式:

    var arr = new Array();

    arr[0] = “hello”;

    arr[1] = 123;

    var arr = [‘hello’,123,true,”abc”];

    通过遍历即可对数组进行基本操作。

    for(var x=0; x<arr.length; x++)

    {

        alert(arr[x]);

    }

 

5.   对象

Js除了已经提供的内置对象外,也可以自定义对象。

例:

    function  Person()//很象java中的构造函数。P不一定要大写。

    {

    }

    var p = new Person();

    p.name = “zhangsan”;//定义成员变量。

    p.age = 20;

    //定义成员函数。

    p.run = function()

    {

        alert(“run”);

    }

    p.run();

或:

    function Person(name,age)

    {

        this.name = name;

        this.age = age;

    }

    var p = new Person(“zhangsan”,20);

Js用于操作对象的语句

—   with语句。

格式:

    with(对象)

    {

    }

    应用:当调用一个对象中多个成员时,为了简化调用,避免对象.”这种格式的重复书写。

    var p = new Person(“zhangsan,20);

    alert(p.name+”,”+p.age);

    可以写成:

    var p = new Person(“zhangsan”,20);

    with(p)

    {

        alert(name+”,”+age);

    }

    with语句定义了某个对象的作用域,在该域中可以直接调用该对象的成员。

—   for...in语句

    用于遍历对象属性。

    例:

    var p = new Person(“zhangsan”,20);

    for(x in p)

    {

        alert(x);//结果是两个对话框,一个是name,一个是age

        alert(x+”:”+p[x]);//可以得到属性与属性的值。p[x]:p对象就是个数组,要通                                  过指定的元素名获取元素的值。

    }

 

Javascript:
	是Netscape公司语言,基于对象和事件驱动。
	和java的不同之处。
	1,所属公司不一样。java是sun公司,现在是Orcale公司.
	2,js是基于对象,java是面向对象。
	3,js是由浏览器解释并执行,java是由jvm解释并执行。
	4,js是弱类型的语言,java是强类型。
	5,js是非严谨的,java是严谨的。
	javascript运行在客户端。


	javascript需要被浏览器所解释执行,就必须要将代码和html相结合。
	结合方式是什么样的呢?
	1,通过定义<script>标签将js代码存入其中。并指定type属性。方便与浏览器启动指定的解析引擎。
	2,也可以通过<script>标签,使用src属性连接一个指定的js文件进来。


	Javascript的基本语法:
	1,变量。
		通过var关键字定义变量,该变量可以赋予不同类型的常量。
		var x = 3;
		x = "abc";
		特殊的常量:undefined
	2,语句。
		if,switch,while,do while,for.
		使用逻辑运算符进行布尔表达式连接的时候,需要是短路与和短路或。 && ||
		因为在js中,非0即为true,0为false。非null为true,null为false。

		js特有的语句:
		with(对象){}:可以确定对象所使用的范围。在范围内,可以直接使用指定对象的属性和行为,而不用,对象. 的形式调用。简化了对象的操作。

		for(变量 in 对象):可以对对象的属性及行为进行遍历。


	3,数组。
		对于js的数组特点在于:该数组的长度是可变的,相对与java中的集合。
		该数组中可以存放的元素类型是可以不同的 。

		定格格式:
			var arr = [3,true,"abc"];
			var arr = new Array();
			
			var arr = [[3,1,9],[3,4]];
		操作形式和java一样。都是通过for进行遍历,同时也使用了指针思想。

	4,函数。
		通过function关键字定义函数。
		a,一般函数。
			格式:function 函数名(形式参数...)
				{
					执行语句;
					return 返回值;
				}
			通常了提供代码复用可以将代码封装成函数。
			两个明确:
				#,明确该功能实现后的结果。
				#,该功能在实现过程中是否有未知内容参与运算。
			
		b,动态函数。
			使用的Function对象。
			var show = new Function("x","y","return x+y;");
			动态函数的特点:可以将参数列表,和方法体作为参数传递。

		c,匿名函数。
			一般函数的简写形式。
			function(){}
			匿名函数通常可以用于事件的处理的。
			如:
			window.onload = funciton(){alert('onload over');}


		在函数使用时需要注意的部分:
		function show()
		{
			return "show run";
		}

		var method = show();
		var method = show;  
		两句代码都是正确的,
		第一句表示的是show方法运行后的结果赋值给method变量。
		第二句表示的是将show指向的对象的地址赋值给method。那么method也指向了该对象。
		那么就可以通过method();的形式来调用这个show方法。



	------------------------------
	
	js可以通过对象形式将数据进行封装。
	首先对对象进行描述,通过函数来完成。
	function Person(name,age)
	{
		this.name = name;
		this.age = age;
	}

	var p = new Person("lisi",30);

	alert(p["name"]+".."+p.age);

	p.show = function()
	{
		alert("show run");
	}

	--------------------------------------

	Javascript中的已定义好的一些对象。
	1,String,Math,Date,Array,Function
	这些对象都有一个属性叫做prototype原型.
	prototype可以获取指定的对象引用
	可以通过该引用给已有的对象赋予一些新的功能。

	那么在使用该对象时,可以直接调用定义好的新功能。

	function getMax()
	{
		var max = 0;

		for(var x=1; x<this.length; x++)
		{
			if(this[x]>this[max])
				max = x;
		}
		return this[max];
	}

	var arr = [3,4,16,7];
	arr.sort();//直接调用Array对象的sort方法对数组进行排序。
	那么可不以象调用sort方法一样调用getMax方法呢?
	就需要将getMax方法添加到Array对象当中。

	Array.prototype.getMax = getMax;

	var x = arr.getMax();
	alert("max="+x);


	var str = "abc";

	str.substring(1,2);
	str.bold();//<b>str</b>
	/*//模拟一下String中fontcolor方法。
	function mycolor(color)
	{
		return "<font color='"+color+"'>"+this+"</font>";
	}

	String.prototype.color = mycolor;

	str.color("red");
	*/
	//给字符串对象定义一个新功能,去掉字符串两端空格。
	function trim()
	{
		var start,end;

		start = 0;
		end = this.length-1;

		while(start<=end && this.charAt(start)==" ")
			start++;
		while(start<=end && this.charAt(end)==" ")
			end--;

		return this.substring(start,end+1);
	}
	
	String.prototype.trim = trim;

	var s = "  ab c   ";

	s = s.trim();
	alert("--"+s+"--");//ab c

	--------------------------------------
	常见的全局方法。
	parseInt(numstr,[radix]);//将数字格式的字符串转成整数。
			如果指定了基数,那么numstr,就会按照执行基数进行转换。
	var num = parseInt("110",2);//表示“110”这个字符串会按照二进制进行转换。
	alert("num="+num);//num = 6;
	
	var x = 6;
	alert(x.toString(2));//110.//获取6对应的二进制表现形式。


	----------------------------------------

	
	





		
		
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics