javascript学习

7、词法规则:大小写敏感,空格回车分割,忘了写分号一般没问题。但是

Javascript代码 复制代码
  1. return  
  2. "hello";//会被自动转为return; "hello"   
  3. i =    
  4. 12;//OK!  
return
"hello";//会被自动转为return; "hello"
i = 
12;//OK!


大意是,如果截断的那块自成一条语句的话,javascript会“聪明”的给你加一个分号分割。
8、常见IE和FF的javascript的差异,调错经验。
1)当然这2个对dom的解析就不完全一样,这个就很多了。window和document对象属性不太一样。
2)数组或者对象中最后一个元素,IE下不要多逗号,FF可以容忍不报错。IE不会。
3)对于一些全局变量,有时候IE会认为某某对象未定义,FF不会。这是2者从局部往上找变量的定义的时候的差异造成的。具体我还没研究,一般IE下要在定义的时候加个var,如果还不行,调用的时候在对象前面加"window.",即这个变量是全局变量了。
9、怎样扩展javascript中已定义的类型的方法,比如那个Array的uniq()方法,学会它的写法。
10、string中双引号和单引号表示string都可以,双引号套单引号,单引号套双引号都可以,但不能单引号套单引号,双引号套双引号,除非用/反斜杠escape
11、函数function的参数相关//TODO,待补全和完善
1)javascript的函数,一个可以顶多个参数变化的形式。

Javascript代码 复制代码
  1. function doit(x,y){   
  2. //-----   
  3. }   
  4. //可以响应如下调用,因此可能就没有高级语言的重载了(可能说的不对)   
  5. doit();   
  6. doit(a);   
  7. doit(a,b);   
  8. doit(a,b,c);  
function doit(x,y){
//-----
}
//可以响应如下调用,因此可能就没有高级语言的重载了(可能说的不对)
doit();
doit(a);
doit(a,b);
doit(a,b,c);


2)funciton的范围和样式 参见8.8
3)全局函数eval()的用法
4)arguments属性的一些用法
--判断参数有没有,设置缺省参数

Javascript代码 复制代码
  1. function hello(arg1){   
  2.     realarg = arg1||"defaultArg";//缺省参数设为"defaultArg"   
  3.     //如果在调用hello()时,没有传递参数过来,那么就是用缺省参数。否则使用传进来的参数   
  4. }  
function hello(arg1){
    realarg = arg1||"defaultArg";//缺省参数设为"defaultArg"
    //如果在调用hello()时,没有传递参数过来,那么就是用缺省参数。否则使用传进来的参数
}


5)apply(),call()的区别

12、函数closure

Javascript代码 复制代码
  1. //觉得好像差不多可以成功的一个例子,出来的效果是点击,弹出的都是5.   
  2. function addLinks () {   
  3.     for (var i=0, link; i<5; i++) {   
  4.         link = document.createElement("a");   
  5.         link.innerHTML = "Link " + i;   
  6.         link.onclick = function () {   
  7.             alert(i);   
  8.         };   
  9.         document.body.appendChild(link);   
  10.     }   
  11. }   
  12. window.onload = addLinks;   
  13. //-下面这个是正确的实现   
  14. function addLinks () {   
  15.     for (var i=0, link; i<5; i++) {   
  16.         link = document.createElement("a");   
  17.         link.innerHTML = "Link " + i;   
  18.         link.onclick = function (num) {   
  19.             return function () {   
  20.                 alert(num);   
  21.             };   
  22.         }(i);//!!!!!!!!!!!!!注意这里   
  23.         document.body.appendChild(link);   
  24.     }   
  25. }   
  26. window.onload = addLinks;  
//觉得好像差不多可以成功的一个例子,出来的效果是点击,弹出的都是5.
function addLinks () {
	for (var i=0, link; i<5; i++) {
		link = document.createElement("a");
		link.innerHTML = "Link " + i;
		link.onclick = function () {
			alert(i);
		};
		document.body.appendChild(link);
	}
}
window.onload = addLinks;
//-下面这个是正确的实现
function addLinks () {
	for (var i=0, link; i<5; i++) {
		link = document.createElement("a");
		link.innerHTML = "Link " + i;
		link.onclick = function (num) {
			return function () {
				alert(num);
			};
		}(i);//!!!!!!!!!!!!!注意这里
		document.body.appendChild(link);
	}
}
window.onload = addLinks;

this的作用域
以上的例子,告诉我们1个事实:
1)对于绑定了事件响应的那些function,在绑定的时候,并没有执行到里面去。所以必须在绑定的时候,就把参数传进去,用到的是self-invoking的funciton,即在定义的时候已经填好参数准备调用了。如上面的注释那块。

13、正则表达式的使用。参见TODO
14、对象访问方式,可以point.x,也可以point["x"]这种类似数组的方式
15、undefined和null的异同。参见3.7,3.8,或者google一下文章。
16、javascript的内建主类型Primitive Type:String,Number,Boolean,Object还有游离之外的undefined和null。而javascript中还有其他一些基于Object的类型,比如比较基础的Date,Math,Function,Array,RegExp
17、一些特殊的语句操作符
1)参见6.9 for/in 注意,可以遍历数组或者Object中属性,但访问方式不一样。
2)参见6.18 with  ,这个是访问对象的属性时,简单的省略了这些的属性的宿主对象的名字
3)参见6.16,6.17,javascript也有异常机制,基本和java类似。不过没有throws,只有throw。记一下写法。
18、参加7.2.3,可以delete一个对象的属性。这个操作符比较特别
19、typeof ,instanceof都是干嘛的,异同。google看看相关文章。
20、常见类型的常见方法
Array://TODO
String://TODO
21、事件。html各个元素可以响应的事件类型,参见17.1
22、escape(),encodeURI(),encodeURIComponent()三个为了防止汉字乱码的函数。参见
http://jiake0504.javaeye.com/blog/198048
不过我最近写的应用里,一个也没用到,也没乱码,参考我另外一篇文章《乱码的相关问题》http://blademan-stu.javaeye.com/blog/290410
23.javascript里面实现private和public,用上面12里说到的self-invoking function来实现

Javascript代码 复制代码
  1. var person = function () {   
  2.     // Private   
  3.     var name = "Robert";   
  4.     return {//return里面的都是public的   
  5.         getName : function () {   
  6.             return name;   
  7.         },   
  8.         setName : function (newName) {   
  9.             name = newName;   
  10.         }   
  11.     };   
  12. }();   
  13. alert(person.name); // Undefined   
  14. alert(person.getName()); // "Robert"   
  15. person.setName("Robert Nyman");   
  16. alert(person.getName()); // "Robert Nyman"  
var person = function () {
	// Private
	var name = "Robert";
	return {//return里面的都是public的
		getName : function () {
			return name;
		},
		setName : function (newName) {
			name = newName;
		}
	};
}();
alert(person.name); // Undefined
alert(person.getName()); // "Robert"
person.setName("Robert Nyman");
alert(person.getName()); // "Robert Nyman"


24this用法
参见http://www.cnblogs.com/daniel-shen/archive/2006/07/12/449280.html
25setTimeout()和setInterval()的异同,都是可以用来作定时执行的。

2Jquery快速学习
参考文档[url]http://jquery.org.cn/visual/cn/index.xml [/url]  ----------------*
0.看这篇*文档的时候,需要注意的地方。
这篇API文档又好查,有好用。初学者可能不会注意到这样一个地方。比如Ajax那个分支里面。有的是
$.ajax
有的是
ajaxStart
有的标明了$.  有的没有。这是什么意思呢?
$.  相当于jquery的全局函数。而ajaxStart这个API说的是一般的jquery对象,可以调用的方法。比如$("#loadingDiv").ajaxStart(...)

1.DOM和JQuery对象的区别。比如document是DOM,$(document)就是jquery对象了。封装成为jquery对象后,才可以按照jquery的规则,调用它支持的函数。在这之前,它只是普通的javascript对象。$()支持的参数有:
1)DOM对象
2)CSS查询和xpath查询表达式,这样查出来的,再封装好的jquery对象,是一组对象、
用上面2种语法的选择器还是有些复杂,有css底子应该没什么问题
http://jquery.com/docs/Base/Expression/CSS/
http://jquery.com/docs/Base/Expression/XPath/
常见最简单的,比如$("#someId"),$("a"),表示选中的是某个id为“someId”的dom对象转化后的jquery对象 ,后面那个是所有的a标签代表的jquery对象数组。

2.DOM属性的操作,以及CSS,参加*中的DOm>attributes,CSS这2个分支。
3对javascript的一些扩展。,参见*中的Javascript那个分枝。
4Effects那节可以不看,其实主要就是一些,选中了一个dom之后,它能闪闪,或者来回动之类的。
5Events那节,主要是bind,unbind以及其他一组成对的事件函数。bind和unbind就是绑定和解绑dom对象和某个事件以及某个响应函数之间的关系。
后面一组成对的事件函数说明的都是一个问题,click()和click(fn)为例。click(fn)等同于bind("click",fn),而click()就是触发这个事件。
6jquery plugins的写法。
2种写法,都是需要作2件事,一个是定义新的fn,另外一个是在jquery的命名空间里增加这个plugin,使得调用的时候能访问到。
一种是
$.fn.haha = function(){//}
$.haha = function(){}
另外一种是用extend,参见*的Core的$extend(prop)方法
7AJAX
参见*的ajax,那组函数里面,最基本的是第一个$.ajax(properties),后面的大多是自定义了很多不同的properties,根据不同的场景,使得写代码写的更简练一些。有一个$.ajaxSetup(settings),比如你下面要做到的一大组ajax调用参数都很相似,用这个setup可以简写。这块重点是在$.ajax(properties)里面properties的那些变量,分别是不同的值时,分别对应的不同的行为。另外就是注意一下本文0中对这个文档的一个说明。能容易看明白它的文档。

参考:
1、一些面试题
http://www.jobhere.net/html/19375.shtml
2、Javascript的OO
http://www.javaeye.com/topic/155109

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值