您的位置:首页 > 职场人生

黑马程序员_Java Script简单知识总结(JS特有的)

2012-11-11 20:36 597 查看
----------------------
Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------

JavaScript和Java没直接关系,唯一的关系就是JavaScript原名LiveScript,后来吸收了Java的一些特性,升级为JavaScript,有事被简称JS

JavaScript是 解释型语言,无需编译就可以随时运行,这样哪怕语法有错误,没有语法错误的部分还是能正确运行


VS中自动完成快捷键Ctrl+J

声明方法

一种方法,声明在原页面中 跟声明css样式一样,

语法

<script type="text/javascript">

alert(new Data().toLocaleDataString());

</script>

alert相当于C#中得messagebox,弹出一个提示框

new Date()是创建一个Data类的对象,默认值就是当前时间

javascript代码放到<script>标签中,script可以放到<head>、<body>等任意位置,而且可以不止一个<script>标签

放到<head>中得<script>在body加载之前就已经运行,放到<body>标签中是随着页面的加载而一个个执行的

另一种方法,跟css一样也可以单独写在一个js文件中,然后再页面中引入: 新建,添加一个JScript文件

<script src="文件名.js" type="text/javascript"></script>

声明到单独文件的js文件的好处是多页面也可以共享,减小网络流量

事件 onclick

在超链接的点击里执行javascript

<a href="javascript:alert('88')">88</a>

javascript中也有时间的概念,当按钮被点击的时候也可以执行javascript

<input type="button" onclick="alert(99)" value="99" />

只有超连接的href中得javascript中才需要加"javascript:" 因为它不是事件,而是将"javascript:"看成想"http:"、"ftp:"...一样的网络协议,交由js解析引擎处理,只有href中是一个特例

变量

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

javascript中有null、undefined

null表示变量的值为空、undefined则表示变量还没指向任何对象,为初始化

javascript是弱类型 不能像C#里边一样直接定义变量的类型,它是没有类型这个说法的, 所有的变量定义都使用var

javascript中也可以不用var声明变量,直接用,这样的变量时 全局变量(只是模拟的,javascript没有全局变量这个概念) ,因此除非确实想用全局变量,否则使用时最好加上var

JS是动态类型的,因此var i=0;i="123a";是合法的

判断变量的初始化

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

var x;

1. if(x == null){

alert("null");

}

2. if(typeof(x) == "undefined"){

alert('undefined');

}

3. if(!x){alert('x');} (这种方法比较推荐)

if(x){}//变量被初始化了或者变量不为空(或者变量不为0)

函数 function

声明方式:

function add(i1,i2){ //add为自己定义的函数名字

return i1+i2;

}

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

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

匿名函数



声明方法

var f1 = function(i1,i2){

return i1+i2;

} 相当于C#里边将一个函数传给委托



JS面向对象基础



javascript中没有类的语法,使用函数闭包(closure)模拟出来的,javascript中string、data等‘类’都被叫做‘对象’

javascript中声明类

function Person(name,age){

this.name=name;

this.age=age;

this.SayHello=function(){

alert("你好,我是"+this.name+",我"+this.age+"岁了");

}

}
调用:

var p1=Person("tom",20);

p1.SayHello();

Array对象

javascript中得Array对象就是数组,它是一个动态数组,不像C#中将静态数组和动态数组是分开的,无需制定大小

var names = new array();

name[0]="1";

name[1]="2";

...

for(var i=0;i<names.length;i++) for也可以当foreach来用

{

alert(name[i]);

}

JS中得Array不仅是一个数组,还是一个Dictionary,还是一个Stack(可以把数组当做Dictionary的一个特例)

var dict = new Array();

dict["人"] = "ren";

dict["口"] = "kou";

dict["手"] = "shou";

Array的简化声明
var arr=[1,2,3,4]; 普通数组的简化声明

这可以看做是dict["人"] = "ren";的特例,也就是键/值对 key为0、1、2、3

var arr={"tom":30,"jim",20}; 字典风格的简化创建方式

对于数组风格的Array来说,可以使用join方法拼接为字符串

var arr=["tom","jim","lily"];

alert(arr.join("|"));

获得一个对象的所有成员(对象的成员就是一对象的key的形式出现的)

for(var e in document){

alert(e);

}

扩展方法

通过类对象的prorotype设置扩展方法

为string对象增加kuozhan(两边加字符)方法

String.prorotype.kuozhan=function(i){

if(!i){

i="|";

}

return i+this+i;

}

alert("abc".kuozhan); alert("abc".kuozhan("|"));

扩展方法的声明要在使用扩展方法之前执行。JS的函数没有专门的函数默认值的语法,但是可以不给参数传值,不传值的参数值就是undefined,自己做判断来给默认值

----------------------
Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: