js一些要点

js中:

undefined == null   --> true

false == null          --> false

false == undefined --> false

关于js立即执行函数:

function (){ /*codde*/ }();
function aa(){/*codde*/}();

这样不会执行并且抛出异常

(function aa(){/*codde*/}());
(function aa(){/*codde*/})();

都是正确方式,推荐第一种。

js中普通对象 和 new函数()对象 以及 普通函数() 区别

1,普通函数(),表示执行一次函数,返回结果为内部return的结果。没有为undefined

2,var a = new 函数(),也会执行一次函数,但会将执行完后的函数上下文作为一个对象返回给a,可以通过a.i 调用函数内部this.i声明的内部变量(这就是声明属性的方法)。(单纯的var i只是局部变量,不是属性)。

3,var a = {}普通对象,通过a.i引用内部i:value方式的值。

函数内变量作用域:

函数内 var i=0;是局部变量,能屏蔽全局上的i变量。

但函数内直接使用 i=0;表示一个全局变量。

js中闭包的典型用法:

1 <input type=‘button‘ id=‘b1‘/>
2 <input type=‘button‘ id=‘b2‘/>
3 <input type=‘button‘ id=‘b3‘/>  

上面3个button,功能一样——每当被点击,就alert出自己目前为止一共被点击了多少次; 
那么这个记录点击次数的变量放在哪里?这3个button的功能完全一样,事件函数可以写成一个,但却需要分别设立变量来存储自己被点击了多少次,那么这个时候闭包的作用就来了:把他们的事件监听函数设置为同一个函数的闭包,这样一来3个button的点击次数就独立变化了,且没有全局变量产生;

就像下面这样的代码:

function genCount(){
    var i = 0;
    return function(){
        i++;
        alert(i);
    }
}
var a = genCount();
var b = genCount();
a();
b();
b();
b();
a();

上述例子,来自该贴中pf_miles的回帖:http://www.iteye.com/topic/569395

还有一个例子,代码比较长,地址在这里:http://blog.chinaunix.net/uid-13164110-id-3066361.html

以后还是得多写博客,不然记得好好的东西说忘就忘

时间: 2024-11-17 13:33:56

js一些要点的相关文章

「标准」的 JS风格

「标准」的 JS风格 2016-10-31 10:09 by 聂微东, 2099 阅读, 21 评论, 收藏, 编辑 首先,这份 JS风格指南已经在我司的前端团队实行半年多了: 其次,在程序员的世界里,从入行到资深都需要面对几个世界级的难题,如: 世界上最好的编辑器是什么? 是用空格还是 TAB?用空格还特么衍生出 2空格 VS 4空格. JS到底要不要写分号? ... 最后,PHP是世界上最好的语言. 一.规范VS自由 对程序员的每个个体来说,有代码规范其实不一定是好事,因为肯定会影响到写码的

js通过ajax发送header信息php接收

一.js: 要点: 完整代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="jquery.min.js"></script> </head> <body> <scrip

.保护Express应用程序

毫无疑问,Node.js已经变的愈加成熟,尽管这样,开发者仍然缺乏大量的安全指南.在这篇文章中,我将分享一些有关Node.js安全要点给大家,希望大家能够谨记于心. 1.避免使用Eval Eval并不是唯一一个需要避免的函数,在后台,下面这几个表达式可以使用eval: setInterval(String, 2)setTimeout(String, 2)new Function(String) 为什么要禁止使用eval?因为它 会打开代码引起注入攻击,并且降低运行速度. 2.请用严苛模式(Str

链接怎么设置点击一次..数据库点击量加1

点击一个链接时要将数据库中的相对应的访问数量+1的话,只能在当前页面写一个方法用js去访问 通过js获取要点击的链接的参数 用ajax将参数传到控制器 ,在控制器中获取传过来的参数 查找数据库中是否有记录,若有可以将此条数据获取之后再对应的字段+1 <a href='<?=Url::to(['aaa', 'id' => 1])?>' class = 'count_add'>点击</a> <script>$(funcation() { $(documen

【Git】认识各种开源协议及其关系

开源许可协议 License是软件的授权许可,里面详尽表述了你获得代码后拥有的权利,可以对别人的作品进行何种操作,何种操作又是被禁止的. 开源协议的种类 现今存在的开源协议很多,而经过Open Source Initiative 组织通过批准的开源协议目前有60多种http://www.opensource.org/licenses/alphabetical.我们在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议. Apache License, 2.0(Apache-

js的基础要点

javascript作为一种脚本语言可以放在html页面中任何位置,但是浏览器解释html时是按先后顺序的,所以前面的script就先被执行.比如进行页面显示初始化的js必须放在head里面,因为初始化都要求提前进行(如给页面body设置css等):而如果是通过事件调用执行的function那么对位置没什么要求的. 1. 在JS中区分大小写,如变量mychar与myChar是不一样的,表示是两个变量. 2. 变量虽然也可以不声明,直接使用,但不规范,需要先声明,后使用. 函数是完成某个特定功能的

JS基础,你需要掌握的要点!

[循环控制语句]1.break:终止本层循环,继续执行循环后面的语句: 当循环有多层时,break只会跳过一层循环:2.continue:跳过本次循环,继续执行下一次循环: 对于for,continue执行后,继续执行循环变量更新语句n++ 对于while,do-while,continue执行后,继续执行循环条件,判断:所以使用这两个循环时必须注意 continue一定要在n++之后,否则会造成死循环. [嵌套循环特点]外层循环控制行数,内层循环控制每行元素个数 [做图形题思路]1.确定图形一

React.js 基础入门四--要点总结

JSX语法,像是在Javascript代码里直接写XML的语法,实质上这只是一个语法糖,每一个XML标签都会被JSX转换工具转换成纯Javascript代码,React 官方推荐使用JSX, 当然你想直接使用纯Javascript代码写也是可以的,只是使用JSX,组件的结构和组件之间的关系看上去更加清晰. 1. HTML 标签 和 React 组件 在JS中写HTML标签,也许小伙伴们都惊呆了,那么React又是怎么区分HTML标签,React组件标签? HTML标签: var myDivEle

JS高级程序设计2nd部分知识要点5

JS Regexp 字面量模式 用\反斜杠转义 构造函数中的字符串 也用\转义正则也用\ RegExp实例属性 global -布尔值  /g ignoreCase -布尔值 /i lastIndex -整数 表示开始搜索下一个匹配项的字符位置,从0算起. multiline -布尔值 /m source -正则表达式的字符串 RegExp实例方法 exec() 接受一个参数(要应用模式的字符串) ,然后返回包含第一个匹配信息的数组,没匹配近回null,返回的数组包含两个额外的属性:index