黑马程序员学习笔记----javascript基础加强

----------------------Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

 

 

05.03

 

在JS中值为0 null undefined 都会返回false
排错:
用debugbar 用脚本提示
function定义方法 不需要声音明返回值
加参数的话也不用var
function add(n1,n2)
{
//判断两个参数是否有值
 if(ni && n2)
 {

  return n1+n2;
 }else{
  return "参数不全"
 }
}
调用:
var n=add(5);
alert(n);
当函数没有写return的时候 函数会返回undefined

函数命名的时候应该避免和系统函数重名。否则会覆盖掉
匿名函数:
就是不给函数取名。
var f=function(){ alert("1234")}
//把一个函数目赋给了一个变量
相当于C#里中的委托。
文档流:  position
position:static  默认的文档流
position:absolute 脱离文档流
JS面向对象
javascript中没有类的语法,是函数闭包模拟出来的。。。js中声明的类(类不是一个类,而是一个对象)
function person(name,sex)
{
 this.name=name; this.sex=sex;
  this.sayhi=function()
 {
   alert("name:"+name+"--"+"sex"+sex);
 }
   //this指当前对象
}
   //JS中是区方大小写的:
 var zs=new person("张三","男");
 zs.sayhi();

string 对象
substr(开始的位置,结束的位置)
substring();第一个参数开始的位置是从0开始
第二个参数是是结束的位置是从1开始
split分割 跟C#一样的
split(按什么分割);
match resplace search
var year-="2012年";
regexp();是一个对象
alert(year.matchxt(/\d{4}/));
g:是全局匹配
i:是忽略大小写
gi:以上组合
var china="我爱北京天安门 北京天安门爱我";
alert(china.resplce(/北京天安门/g,"赣州")
search:找出第一个字符出现的位置
如果找不到会返回-1

数组:Array对象
var arr=new array();
不需要声明它的长度。
它相当于C#里面的arraylist大杂刽一样
什么都可以话
arr[0]="张三"
arr[1]="张三"
arr[2]="张三"
一个一个赋值
还要用简单的写法。例如
var arr=[里面的元素];
然后再用for循环遍历出来

求最大值:
for(var i=0;i<arr.length;i++){
  alert(arr[i]);
}

function getMax(array)
{
  var max=array[0];
  for(var i=1;i<array.length;i++)
  {
    if(max<array[i])
    {
     max=array[i]
    }
  }
  return max;
}

var array=new array();
arr[0]=1;
arr[1]=2;
arr[2]=3;
alert(getmax(array));

数组引用类型传递

引用传递传的是地址。
值传递传的是整数  例如:
function change(a,b){
  var temp=a;
  a=b;
  b=temp;
}
var a=5; var b=6;
change(a,b);
alert(a);  alert(b);
它们的值不会变。。因为输出的还是a,b
跟方法里面的a,b没有关系
也就是说。如果它们的值发生了变化,
说明是引用传递。
如果没有改变的话说明就说值传递
以上的例子显然就是值传递。。
动态语言非常灵活
JS中Array是一个仅是一个数组。还是一个dictionary,还是一个stack

var dic=new Array();
dic["zs"]="张三";
dic["ls"]="李四";
dic["ww"]="王五";
//另一种赋值方式  dic.ww="王五";
for(var key in dic)  //遍历字典
{
   alert(key+"=="+dic[key]);
  //相当于字典了。
}
还可以这样赋值,字典的方式
var dic={"zs":"张三","ls":"李四","ww":"王五"}

后面再循环是一样的
JS中这数组就是个特殊的字典
instanceof  判断对象是不是同一类型
alert(arr instanceod array)
返回的值是bool值
alert(typeof(arr))
返回它的类型

json对象
json数据格式和xml数据格式是在做b/s开发常用的两种数据格式。
{"zs":"张三","ls":"李四","ww":"王五"}  这种数据据式就是json
json前台和后台交互的时候经常用的格式
JS中class是个保留的关键字

var json={
"class":"一班",
"student":[{"name":"zs","age":"18","sex":"男" },{"name":"Ls","age":"18",}
]
};
alert(json.clas);
alert(json.students[2].name);
读出第二项的名字
想读所有student下的所有学生信息:
for(var i=0;i<json.student.length;i++)
{
   alert(json.student[i].name+"=="+json.student[i].age);
}
学jquery的时候经常会见过的。


扩展方法:

String.prototype.test=function(str){
//判断STR是否赋值
if(!str){
  str="  
http://www.baidu.com"
}
returnthis this+str;

}

 

>---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ---------------------- 详细请查看:http://net.itheima.com/

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值