js学习笔记

 1、eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
补充:eval例子:
<script type="text/javascript">

eval("x=10;y=20;document.write(x*y)")

document.write(eval("2+2"))

var x=10
document.write(eval(x+17))
eval("alert('Hello world')")
</script>
输出:200 4 27  “hello world”
2、document.getElementById("").value为元素的值
3、 document.getElementById("search").innerHTML设置或获取位于对象起始和结束标签内的HTML。
例子(注意字符串中符号的引用):
var strHtml = "";
strHtml += "<ul>";
for (var i = 0; i < strArr.length; i++) {
strHtml += "<li><a href='javascript:void(0)' onclick=\"setVal('" + strArr[i] + "')\">" + strArr[i] + "</a></li>";}
strHtml += "</ul>";
document.getElementById("popupDiv").innerHTML = strHtml;
4、 xmlhttp.open("GET", "**.aspx?q="+str, true);可向后台传参数。其中变量为q,后台接受用request。open中第二个参数可以为文本。
5、width:100%:自适应宽度
6、onreadystatechange 事件
  xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
 
 
5、js
(1)五种数据类型
简单的:undefined,null,string,boolean,number
复杂的:object
类型:undefined:undefined;null:object;
(2)javascript 没有类 但可以var aa={};产生对象
(3)函数:
定义式函数:function a(){}
变量式函数:var myfunc=function(){}
注:js为一段一段分析执行的。如果在同一段中有相同的函数,则会被后面的覆盖。另外定义式会被提取出来优先执行
每个函数都可以动态添加或去除属性(用delete )
 
(4)对象:函数是种可以被调用的对象
eg:
function sing(){
alert();
}
sing.aaa="";sing.bbb=""(可动态加属性或方法)
sing();
 
一、js
1、js函数 call属性为调用当前函数的上层函数
2、JSON用法(javas 对象表示法:
eg:var person={name:"Angel",age:18,married:false}
3、new 创建对象
eg:
function myfunc(){};
var anObj1=new myfunc();
var anObj2=new myfunc();
 
4、prototype 原型
可给prototype添加任意的属性和方法
 
5、增强javascript的功能
如trim方法;
String.prototype.trim=function String$trim(){
if (argumments.length!==0)throw Error.parametertCount();
return this.replace(/^\s+|\s+$/g,'');
}
 
6、js函数参数不对应也可以调用
 
7、aspx 页面如果要用到后台的元素需要加<%=%>
 
二、js的一些函数
 
1、join()和split()方法
join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。 指定分隔符方法join("#");其中#可以是任意
split()方法:用于把一个字符串分割成字符串数组. 语法:stringObject.split(a,b) 
a、是必须的决定个从a这分割  b、不是必须的,可选。该参数可指定返回的数组的最大长度 。
2、reverse()方法:用于颠倒数组中元素的顺序。
3、sort():用于对数组的元素进行排序。
4、slice()方法  可从已有的数组中返回选定的元素. 语法 arrayObject.slice(start,end)
 
5、splice()方法 用于插入、删除或替换数组的元素。语法 arrayObject.splice(index,howmany,element1,.....,elementX)
 
6、concat()方法  用于连接两个或多个数组。注意:该方法不会改变现有的数组 ,而仅仅会返回被连接数组的一个副本。语法arrayObject.concat(arrayX,arrayX,......,arrayX)它返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。
 
7、push() 方法 可向数组的末尾添加一个或多个元素,并返回新的长度 。
     pop() 为删除最后一个元素,且返回最后一个元素
 
 

5、callback函数: 一种以参数形式传递给另一个函数的函数。
滚动条操作
 window.onscroll = function () {}
 
 
<body onload=“init()”><./body>
页面加载完后调用
 
通过Id删除标签
eg:
  var tr = document.getElementById(t);
   tr.parentNode.removeChild(tr);
 
IE 操作table innerHTMl会报错,直接用DIV则不会
关于变量:
函数定义式先执行
(1)var a="dfas";//根变量
a="dfasdf"//根属性
alert(a);//输出dfasdf 两者在一起是属性先输出
(2)
var aaa="dfkajsdfk";
dd();
function dd(){
alert(aaa);//但函数内无定义aaa时从上层找"dfkajsdfk",否则输出undefined
var aaa="";
alert(aaa);
}
 
(3)
var aaa="dfkajsdfk";
dd();
function dd(){
alert(aaa);//undefined
var aaa="dfaskf";
alert(aaa);//dfaskf
}
alert(aaa);//dfajsdfk
 
 
 
 this用法:
a、纯粹函数调用。
this就是指全局变量
eg1:
var x = 1;
function test() {
alert(this.x);}
test();//1
eg2:
var x = 1;
function test() {
    this.x = 0;}
test();
alert(x);//0
b、作为方法调用
this指上级对象
function test() {
    alert(this.x);
}
var o = {};
o.x = 1;
o.m = test;
o.m(); //1
c、作为构造函数调用。this指当前这个对象
eg:
function test() {
    this.x = 1;
}
var o = new test();
alert(o.x);//1
d、apply调用
this指向的是apply中的第一个参数,当apply没有参数时表示为全局对象,所以值为0;
var x = 0;
function test() {
alert(this.x);
}
var o = {};
o.x = 1;
o.m = test;
o.m.apply(); //0
o.m.apply(o);//1
call 调用
BillGate.fun.call(stevejon) 将stevejob作为this调用billgate的方法fun
关于函数变量:
http://www.cnblogs.com/idche/archive/2010/04/28/1722704.html



1、scroll函数:


一、悟透javascript总结(待续)
1、js为单线程
2、数据类型:
typeof(x)=typeof x
typeof 123:number
typeof typeof 123:string
typeof(undefined):undefined
typeof(null):object
typeof(NaN) typeof(Infinity):number
"123"=123     true
=== :全等
3、函数:
分为定义式及变量式
(1)function fun(){}
(2)var fun=function(){}
 
4、javasript执行顺序为一段一段执行的,定义式函数会被提取出来优先执行。前面定义的会被覆盖
除此之外,var定义的变量也一样 叫预编译,会被赋予undefined
 
5、代码时空:
var myName="adfa" 定义了window作用域的一个变量myName
myName=“打发斯蒂芬”定义window对象的一个属性myName
 
myName会被子函数改变。 var 子函数初始值为undefined
 
7、函数的caller、callee、this、arguments callback还不熟悉,待看
caller 调用当前函数的上层函数,没有调用或被全局代码调用则为null 使用方法:函数名.caller(opera不支持)
a
 
二、关于笔试
1、鼠标点击页面中的任意标签,alert该标签的名称

eg:document.onclick=function(e){ 

     var e=(e||event); 

     var o=e["target"]||e["srcElement"]; 

     alert(o.tagName.toLowerCase()); 

js的对象,都是以一种类似数组的形式存在
 
2、可引用类型数组来存数据
eg:
var temp=[];
temp.push("");
temp.push("");
temp.join("");
3、常见笔试试题
 
4、增加节点例子:
eg:在div里面增加span:
 <div id="page"></div>
  var newnode=document.createElement("span");
  newnode.innerHTML="dadfadfd";
  page.appendChild(newnode);
 
创建及访问对象:
var newObject=new Object();
newObject.first="first";
newObject.last=function(){
     alert(this.first);
}
firstName=newObject[this.first];
newObject["last"]();
 
对象层次,用.访问:
如newobject.last.sfsdfs.say();
 
函数可当成是类,但创建多个实例时不同内存。
原型则是同个内存
 
function newClass(){
     this.firstName="frank";
     lastName="zhang";
     this.toString=function(){retuen this}
}
var nc=new newClass();
alert(nc.firstName);//frank
alert(nc.lastName);//undefined  lastname在实例外不可访问。
 
//从其他对象借函数
function newClass(){
     this.firstName="frank";
     this.toUC=String.toUpperCase;     
     this.toString=function(){retuen  this.toUC(this.firstName);}
}
var nc=new newClass();
alert(nc);//FRANK
 
 
 
 
 
 

posted on 2012-11-04 18:48  zhangyh2010  阅读(117)  评论(0)    收藏  举报

导航