javascript中常用编程知识


Posted in Javascript onApril 08, 2013

1.null 与 undefined

* 从一个对象中获取某个属性,如果该对象及其 prototype 链 中的对象都没有该属性的时候,该属性的值为 undefined 。
* 一个 function 如果没有显式的通过 return 来返回值给其调用者的话,其返回值就是 undefined 。有一个特例就是在使用new的时候。
* JavaScript 中的 function 可以声明任意个形式参数,当该 function 实际被调用的时候,传入的参数的个数如果小于声明的形式参数,那么多余的形式参数的值为 undefined 。
* null为空对象,注意与空的对象({})的区别。
简单来说,对于所有变量,只要声明后还没有指定初始值 ,那么他就是undefined,如果是Object类型用来表示空引用的概念,那么就是用null来表示。

2.if 表达式

* Null总是为假(false)
* Undefined总是为假(false)
* Number+0,-0 或是 NaN 的时候为假,其它值为真
* String空字符串的时候为假,其它值为真
* Object总是为真(true)

3.Array

JavaScript 中的数组(Array)和通常的编程语言,如 Java 或是 C/C++ 中的有很大不同。在 JavaScript 中的对象就是一个无序的关联数组,而 Array 正是利用 JavaScript 中对象的这种特性来实现的。在 JavaScript 中,Array 其实就是一个对象,只不过它的属性名是整数,另外有许多额外的属性(如 length)和方法(如 splice)等方便地操作数组。

4.new 运算符

JavaScript 中并没有 Java 中的类(class)的概念,而是采用构造器(constructor)的方式来创建对象。在 new 表达式中使用构造器就可以创建新的对象。由构造器创建出来的对象有一个隐含的引用指向该构造器的 prototype 。

5.prototype

prototype是javascript原型继承的核心概念,大家一定在某个javascript类库里面见过 Array.prototype.push.call()这样的用法,所以归根结底prototype是一个对象。我们可以通过 prototype给native class添加一些有用的方法,也可以通过prototype实现继承。如果对prototype比较感兴趣,可以在ff里面通过__proto__来访 问指定对象的原型链。

6.scope chain

执行上下文(execution context)是 ECMAScript 规范中用来描述 JavaScript 代码执行的抽象概念。所有的 JavaScript 代码都是在某个执行上下文中运行的。在当前执行上下文中调用 function 的时候,会进入一个新的执行上下文。当该 function 调用结束的时候,会返回到原来的执行上下文中。如果 function 调用过程中抛出异常,并没有被捕获的话,有可能从多个执行上下文中退出。在 function 调用过程,也可能调用其它的 function,从而进入新的执行上下文。由此形成一个执行上下文栈。

注:如果对scope chain比较感兴趣,可以在ff里面通过__parent__属性来访问函数的scope chain,比较遗憾的是ff的js引擎SpiderMonkey对这个属性的支持不是很完美,出现内部函数的时候会出错,所以建议用Rhino (http://developer.mozilla.org/en/docs/Rhino)。

注:这里需要提的是注意函数表达式和函数声明对scope chain的影响。

7.closure

闭包也算是js比较常用的特色功能了,一般我们在java里面执行完毕的一个函数,内部变量将全部被回收,但在javascript中,我们可以通过某些方法,使执行完的函数的内部变量依然存在,并且可访问,这样就构成了一个闭包。

当然,什么东西都有两面性,闭包给我们带来好处的时候,也会带来不少的麻烦,比如一个不留神就产生了内存的泄漏,所以我们需要合理的应用这些技术。如果要 深入学习闭包,建议去看几个js library(prototype,jquery,mootools),里面有一些很经典的闭包应用,比如bind方法等,这里就不多赘述。

Javascript 相关文章推荐
JS 页面自动加载函数(兼容多浏览器)
May 18 Javascript
jquery 双色表格实现代码
Dec 08 Javascript
javascript开发随笔一 preventDefault的必要
Nov 25 Javascript
jQuery 计算iframe 窗口大小的方法
May 13 Javascript
深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制
Jun 10 Javascript
Javascript中3种实现继承的方法和代码实例
Aug 12 Javascript
js操作table元素实现表格行列新增、删除技巧总结
Nov 18 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
Aug 05 Javascript
jQuery Form表单取值的方法
Jan 11 Javascript
Angular中管道操作符(|)的使用方法
Dec 15 Javascript
Layui 数据表格批量删除和多条件搜索的实例
Sep 04 Javascript
vue动态路由:路由参数改变,视图不更新问题的解决
Nov 05 Javascript
利用webqq协议使用python登录qq发消息源码参考
Apr 08 #Javascript
setInterval,setTimeout与jquery混用的问题
Apr 08 #Javascript
JQueryEasyUI Layout布局框架的使用
Apr 08 #Javascript
jquery 实现二级/三级/多级联动菜单的思路及代码
Apr 08 #Javascript
JQueryEasyUI datagrid框架的基本使用
Apr 08 #Javascript
Jquery中使用setInterval和setTimeout的方法
Apr 08 #Javascript
JQueryEasyUI datagrid框架的进阶使用
Apr 08 #Javascript
You might like
PHP Laravel 上传图片、文件等类封装
2017/08/16 PHP
php利用array_search与array_column实现二维数组查找
2019/07/08 PHP
javascript getElementsByClassName 和js取地址栏参数
2010/01/02 Javascript
jQuery 一个图片切换的插件
2011/10/09 Javascript
模拟电子签章盖章效果的jQuery插件源码
2013/06/24 Javascript
js实现DOM走马灯特效的方法
2015/01/21 Javascript
jquery使用each方法遍历json格式数据实例
2015/05/18 Javascript
JS排序方法(sort,bubble,select,insert)代码汇总
2016/01/30 Javascript
多种js图片预加载实现方式分享
2016/02/19 Javascript
jQuery 跨域访问解决原理案例详解
2016/07/09 Javascript
js判断价格,必须为数字且不能为负数的实现方法
2016/10/07 Javascript
基于vue的下拉刷新指令和滚动刷新指令
2016/12/23 Javascript
原生js实现类似fullpage的单页/全屏滚动
2017/01/22 Javascript
Vue 动态添加路由及生成菜单的方法示例
2019/06/20 Javascript
Javascript原生ajax请求代码实例
2020/02/20 Javascript
Element Carousel 走马灯的具体实现
2020/07/26 Javascript
jquery实现抽奖功能
2020/10/22 jQuery
[02:32]DOTA2亚洲邀请赛 VG战队巡礼
2015/02/03 DOTA
[00:30]明星选手化身超级英雄!2018DOTA2亚洲邀请赛全明星赛来临!
2018/04/06 DOTA
Python中生成器和迭代器的区别详解
2018/02/10 Python
使用Python实现微信提醒备忘录功能
2018/12/04 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
2019/08/12 Python
Python 正则表达式爬虫使用案例解析
2019/09/23 Python
Python 使用 environs 库定义环境变量的方法
2020/02/25 Python
HTML5 和小程序实现拍照图片旋转、压缩和上传功能
2018/10/08 HTML / CSS
中国最大的团购网站:聚划算
2016/09/21 全球购物
印度网上药店:1mg
2017/10/13 全球购物
波兰运动鞋网上商店:e-Sporting
2018/02/16 全球购物
CHARLES & KEITH加拿大官网:新加坡时尚品牌
2020/03/26 全球购物
日本整理专家Marie Kondo的官方在线商店:KonMari
2020/06/29 全球购物
文明礼仪小标兵事迹
2014/01/12 职场文书
医科大学毕业生自荐信
2014/02/03 职场文书
单位法定代表人授权委托书
2014/09/20 职场文书
2015年客房服务员工作总结
2015/05/15 职场文书
校长新学期致辞
2015/07/30 职场文书
2016年五一促销广告语
2016/01/28 职场文书