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

---------------------- 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" οnclick="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/

  • 15
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值