js学习笔记
1、eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
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、callback函数: 一种以参数形式传递给另一个函数的函数。
补充: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”
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(){
dd();
function dd(){
alert(aaa);//但函数内无定义aaa时从上层找"dfkajsdfk",否则输出undefined
var aaa="";
var aaa="";
alert(aaa);
}
}
(3)
var aaa="dfkajsdfk";
dd();
function dd(){
alert(aaa);//undefined
var aaa="dfaskf";
alert(aaa);//dfaskf
}
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指上级对象
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);
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(){
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) 收藏 举报
浙公网安备 33010602011771号