职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 417|回复: 7

重新认识JAVASCRIPT

[复制链接]
叫我小乖 发表于 2011-8-10 09:39 | 显示全部楼层 |阅读模式
小组内组织培训。我自己编写的js培训材料。
主要是一些生僻的js语法和比较怪异的部分。
对于编写js时减少出错和内存泄漏应该有些帮助。
欢迎大家斧正。
http://runfriends.iteye.com/blog/1121186


broken 发表于 2011-8-10 09:39 | 显示全部楼层
“使用function  fname (){} ,会在任意作用域声明一个全局函数。”
这个好像这样说不妥吧,比如:
function f(){
    function a(){
    }
}

f();
alert(a);
很明显函数a的作用域仅限于函数f中。你用的那个function的例子我觉
得除了让新手感觉很费解之外没有什么特别的作用,因为一般的开发中
很少那样用。
    在上一家公司做了一次小的培训,一般我喜欢基于问题来讲解,告、
诉大家哪些特性是用来处理哪些问题的。比如调用一个对象的方法即可
使用点也可以使用[],那么什么时候用[]呢,举个动态调用的例子就可
以了,这样大家就知道什么时候需要用点什么时候需要用[]。
    看了下楼主写的培训我觉得一个很大的缺点就是没有告诉大家每一个
语法特性可以用来很方便的处理哪些问题。比如那个arguments,平实用
的最多的应该是用它来动态获取输入的参数个数,那么可以用这个有用的
特性来很方便的实现动态参数和模拟函数重载。这时候如果举个例子,比如:
function sum(){
    var i, len, ret = 0, args = arguments;
    for(i = 0, len = args.length; i < len; i++){
        ret += args[i];
    }
    return ret;
}

alert(sum(5));
alert(sum(1, 2, 3, 4, 5));
那么新人就会比较容易接受的多。

JS的很多特性比较古怪,如果没有写出一个很好的例子来
告诉新人这个古怪的特性是用来做什么的,我觉得还不如
不告诉他,免得让他疑惑。JS包含的东西蛮多的,不可能
指望,一两次培训就学到所有的东西。少介绍一些特性,
就几个特性举几个开发中重用的例子更实惠些。

秋秋 发表于 2011-8-10 09:39 | 显示全部楼层
楼上说的我记下了,以后我会完善的
关于arguments的用法我用的最多的就是使用arguments.callee实现递归。用它判断参数个数的时候还真不多。除非要实现js库的时候要模拟重载才会考虑到使用arguments.length。不过我一般都会使用具名参数,一个函数的参数数量最多不会超过具名参数的数量,只要判断每个参数的类型和是否定义就行了。使用arguments.length反而觉的不够直观。
不过楼上说的古怪特性最好不要告诉新人,我也刚刚注意到。说了确实很麻烦。刚开始只是想让人能对这些生僻语法有个概念,将来说不定能用到。
关于函数作用域的问题,是我记错了。两种方式我都用过,
具名函数能在一个函数内的任意位置访问
函数变量只能定义赋值后才能访问。
不过我看过的一些书里推荐在任意作用域都使用函数变量而不要使用具名函数。这是我一直迷惑的地方,个人感觉还是具名函数更好用一些。
最后还是谢谢楼上的指正。

gz-vps 发表于 2011-8-10 09:39 | 显示全部楼层
刚开始做ppt的时候考虑到组内还有js水平不错的,就想到把这些生僻用法列出来让大家都有个感性认识。至于说基本用法,当时想到网上资料很多,完全可以去浏览这些网页完成。所以就没想做成是一个基础培训,而且一开始就说明这篇文章是介绍一些怪异特性的,不过确实没想到会给经验不足的同学造成困扰。最近由于工作上的事才发现有些高级特性最好还是不要说太多。另外一个特性怎么用让人去自由挖掘不是更好吗?

找不到我 发表于 2011-8-10 09:39 | 显示全部楼层
其实有时候抓生僻的比抓基础的可能更加有效果

ksdal 发表于 2011-8-10 09:40 | 显示全部楼层
java_fei 写道
其实有时候抓生僻的比抓基础的可能更加有效果
打错了应该反一反...不过楼主的不错,对进一步学习有帮助

曾经的小孩 发表于 2011-8-10 10:45 | 显示全部楼层
呵呵,找个机会...
shmilyyu 发表于 2011-8-12 10:12 | 显示全部楼层
给我点愤怒.
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-4-27 06:39 , Processed in 0.134523 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表