黑马程序员_javascript基础

 

                     --------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

1、学习javascript的特有语法,为Dom编程和JQuery打基础。

什么是javascript。html是描述网页长相的标记语言,没有计算、判断能力,如果所有计算、判断(比如判断文本框是否为空,判断两次密码是否一致)都放到服务器端执行的话,页面会非常慢,对服务器的压力很大。因此要求能在浏览中执行一些简单的运算、判断。javascript就是一种在浏览器端执行的语言。

javascript简称JS,是解释型语言,js和java没有关系,无需编译就可以随时运行,这样哪怕语法有错误,没有语法错误的部分也还是能正确运行。(即中间有错误,会跳过中间这句,继续执行后面的语句),这和编译型语言有很大的不同。

2、VS2010中有javascript和JQuery的自动完成功能,VS2008需要安装VisualStudio 2008SP1。

3、JS入门

<scripttype="text/javascript">

alert("Hello World!");

</script>

JS代码放入<script>标签中,script可以放到<head>、<body>等任意位置,而且可以有不止一个<script>标签。除了可以在页面中声明javascript以外,还可以将javascript写进单独的js文件中,然后在页面中引入:<scripttype="text/javascript" src="js1.js"></script>.声明到单独的js文件的好处是多页面也可以共享(代码重用)、减小网络流量。

放到<head>中的<script>在<body>加载之前就已经运行,而放在<body>中的代码在<body>中顺序执行。

<script language=....> 这种写法已经不推荐使用。

4、事件

在超链接的点击里执行js,<ahref="javascript:alert(88)">哈哈!</a>,js中也有事件的概念,当按钮被点击的时候也可以执行javascript:

<input type="button"οnclick="alert(99)" value="久久" />和<a href="#" οnclick="alert(88)">哈哈!</a>。超链接中的javascript才需要加 ”javascript:“,因为它不是事件,而是把”javascript:“看成像http、ftp、thunder//、ed2k//一样的网络协议,交由js解析引擎处理。只有href中是个特例。

5、js中的变量

js中既可以使用双引号声明字符串,也可以用单引号声明字符串。主要为了方便和html集成,避免转义符的麻烦。

js中有null和undefined两种特殊变量。null表示变量的值为空,undefined表示变量没有指向任何的对象,未初始化。

js中的变量是弱类型,声明变量的时候无法:int i=0;只能通过var i=0;声明变量,和C#中的var不同,不是C#中那样的类型推断。

js中也可以不用var声明变量,直接用,这样的变量是全局变量,因此除非确实想用全局变量,否则声明的时候最好加上var。//不用var声明的变量是模拟全局变量

js是动态类型的,因此var i=0;i="abc";是合法的。var i=10;表示声明一个变量,名字为i,指向10这个整数,一旦指向10,i就是int类型了。//嫁鸡随鸡,嫁狗随狗。

js判断变量、参数是否初始化的三种方法:

var x;

(1)、if(x==null){alert("null");}

(2)、if(typeof(x)=="undefined"){alert('undefined');}

(3)、if(!x){alert('不x');}

推荐用最后一种方法。

6、函数的声明

function add(i1,i2)//只是声明,不会立即执行

{

 return i1+i2;

}

不需要声明返回值类型、参数类型。函数定义以function开头。

var r=add(1,3);alert(r);

r=add("你好","Tom");alert(r);//参数可以是任意类型的,自动重载,比较爽!

js不像C#中那样要求所有路径都有返回值,没有返回值的话,返回值就是undefined。

7、匿名函数

var f1=function(i1,i2){

return i1+i2;

}

alert(f1(1,3));//匿名函数的使用

alert(function(i1,i2){return i1+i2;}(1,3));//直接声明一个匿名函数,并立即使用。

这种匿名函数的用法在JQuery中非常多。

8、js面向对象基础

js中没有类的语法,是用函数闭包(closure)模拟出来的,js中的String、Date等类被叫做对象。js中声明类:

function Person(name,age){//声明一个函数,当成类来使用

this.Name=name;//同C#中动态增加属性:dynamic

this.Age=age;

this.SayHello=function(){

alert("你好,我是"+this.Name+",我"+this.Age+"岁了!");//匿名函数

};

}

var p1=new Person("Tom",20);

p1.SayHello();

必须要声明类名,functionPerson(name,age)可以看做是声明构造函数,Name、Age这些属性也是使用者动态添加的。

9、Array对象

js中的Array对象是数组,首先是一个动态数组,而且是一个像C#中数组、ArrayList、Hashtable等的强综合体。无需预先制定大小。

var names=new Array();

names[0]="Tom";

names[1]="Jerry";

names[2]="Lucy";

for(var i=0;i<names.length;i++)

{

 alert(names[i]);

}

array1.join("|");//将数组数据用“|”连接起来。

Array是一个宝贝,不仅是一个数组,还是一个Directory,还是一个Stack。

var person=new Array();

person["人"]="ren";/字典类型数组

person["口"]="kou";

person["手"]="shou";

alert(person["人"]);或者alert(person.人);

像Hashtable、Directory那样用,而且像它们一样高效。

js中用for进行遍历:for(var nin array){alert(n);}//同C#中的foreach,数组取到的是key的值,而不是value,Directory类型数组取出的是value值

Array的简化:var arr=[1,4,54,32,34,55];//普通数组简化初始化

            var arr=["tom":30,"jerry":40];//字典风格的简化创建

获得文档对象的所有成员,(对象的所有成员是以key的形式出现的)

for(var a in document){alert(a);}


                   ---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值