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 相关文章推荐
Jquery Ajax请求代码(2)
Jan 07 Javascript
javascript定义变量时带var与不带var的区别分析
Jan 12 Javascript
AngularJS使用ngOption实现下拉列表的实例代码
Jan 23 Javascript
javascript关于继承解析
May 10 Javascript
jQuery实现的placeholder效果完整实例
Aug 02 Javascript
JavaScript学习笔记--常用的互动方法
Dec 07 Javascript
基于Vue开发数字输入框组件
Dec 19 Javascript
详解Vue webapp项目通过HBulider打包原生APP
Jun 29 Javascript
vue轮播组件实现$children和$parent 附带好用的gif录制工具
Sep 26 Javascript
vue与django集成打包的实现方法
Nov 11 Javascript
微信小程序封装多张图片上传api代码实例
Dec 30 Javascript
vue数据响应式原理知识点总结
Feb 16 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实现的双向队列类实例
2014/09/24 PHP
PHP 绘制网站登录首页图片验证码
2016/04/12 PHP
实例分析PHP将字符串转换成数字的方法
2019/01/27 PHP
JS 常用校验函数
2009/03/26 Javascript
jquery中加载图片自适应大小主要实现代码
2013/08/23 Javascript
Javascript基础教程之if条件语句
2015/01/18 Javascript
JavaScript模板引擎用法实例
2015/07/10 Javascript
JavaScript中eval()函数用法详解
2015/12/14 Javascript
js canvas实现擦除动画
2016/07/16 Javascript
bootstrap实现图片自动轮播
2016/12/21 Javascript
ES6使用let命令更简单的实现块级作用域实例分析
2017/03/31 Javascript
JS将unicode码转中文方法
2017/05/08 Javascript
基于LayUI分页和LayUI laypage分页的使用示例
2017/08/02 Javascript
vue 二维码长按保存和复制内容操作
2020/09/22 Javascript
如何利用vue实现波谱拟合详解
2020/11/05 Javascript
vue 项目@change多个参数传值多个事件的操作
2021/01/29 Vue.js
Python实现简单HTML表格解析的方法
2015/06/15 Python
简单实现python进度条脚本
2017/12/18 Python
python2.6.6如何升级到python2.7.14
2018/04/08 Python
django解决跨域请求的问题
2018/11/11 Python
python解析xml简单示例
2019/06/21 Python
Python图像处理PIL各模块详细介绍(推荐)
2019/07/17 Python
Python使用正则实现计算字符串算式
2019/12/29 Python
python 正则表达式参数替换实例详解
2020/01/17 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
Python将list元素转存为CSV文件的实现
2020/11/16 Python
python热力图实现简单方法
2021/01/29 Python
详解css3 object-fit属性
2018/07/27 HTML / CSS
科茨沃尔德家居商店:Scotts of Stow
2018/06/29 全球购物
乐高奥地利官方商店:LEGO Shop AT
2019/07/16 全球购物
TCP协议通讯的过程和步骤是什么
2015/10/18 面试题
有创意的广告词
2014/03/18 职场文书
房屋租赁协议书范本
2014/04/10 职场文书
商场消防安全责任书
2014/07/29 职场文书
2015年小学远程教育工作总结
2015/07/28 职场文书
《中国机长》观后感:敬畏生命,敬畏职责
2019/11/12 职场文书