开始看到很多js函数里都带一个undefined的参数,很是疑惑,后来查了查,原来是这样.
假如我们定义了一个函数
function
a(){
  if(arg1===undefined)
alert("arg1未定义");
}
有在某一个地方,由于什么原因,存在一个一个变量undefined="xx"(undefined不是保留字)。这样当我们调用函数a();时就不会输出"arg1未定义",但事实上arg1确实未定义。
但当我们这样定义函数a,
function
a(undefined){
  if(arg1===undefined)
alert("arg1未定义");
}
在调用a();由于未传入参数,所以函数a的参数undefined等价于未定义,再判断arg1===undefined时就会返回true,得到正确结果。
所以,给函数在原有基础上增加一个undefined的参数,从某种程度上防止的undefined被变量污染。当然这个undefined也可以用其他标示符定义,但那样就不直观,就不容易理解了。

javascript 函数参数之中的undefined(zz)的更多相关文章

  1. 理解JavaScript函数参数

    前面的话 javascript函数的参数与大多数其他语言的函数的参数有所不同.函数不介意传递进来多少个参数,也不在乎传进来的参数是什么数据类型,甚至可以不传参数. arguments javascri ...

  2. javascript 函数参数

    1.javascript函数参数的个数以及类型没有强制规定,调用时不必严格按照函数的参数或类型,函数的参数只是在调用函数的时候提供了便利,但不是必须的! 2.参数在javascript内部是用数组ar ...

  3. JavaScript 函数参数是传值(byVal)还是传址(byRef)?

    对于“JavaScript 函数参数是传值(byVal)还是传址(byRef)”这个问题,普遍存在一个误区:number,string等“简单类型”是传值,Number, String, Object ...

  4. 深入理解JavaScript函数参数

    前面的话 javascript函数的参数与大多数其他语言的函数的参数有所不同.函数不介意传递进来多少个参数,也不在乎传进来的参数是什么数据类型,甚至可以不传参数. arguments javascri ...

  5. 深入理解javascript函数参数与闭包(一)

    在看此文章,希望先阅读关于函数基础内容 函数定义与函数作用域 的章节,因为这篇文章或多或少会涉及函数基础的内容,而基础内容,我放在函数定义函数作用域 章节. 本文直接赘述函数参数与闭包,若涉及相关知识 ...

  6. 第十篇--------javascript函数-参数

    javascript函数的参数:形参,实参 //function 参数 //形参列表 function test(a,b,c,d){ //alert(test.length); //形参个数,4个 / ...

  7. javascript函数参数、返回值类型检查

    实现带参数.返回值类型声明的js函数: 类型定义:window.Str = Type.Str = Type.define('STRING', Type.isStr);var Per = Type.de ...

  8. JavaScript函数参数与调用

    函数调用: /* 1. 函数调用 */ ,,,); /* 2. 方法调用 */ this.CName = "全局"; var o = { CName:"o类", ...

  9. javaScript函数参数

    <p>查找函数中参数最大的数</p> <p id="demo"></p> <script> x = findMax(1, ...

随机推荐

  1. .Net程序员安卓学习之路5:使用xutils注入View和事件以及图片的显示

    xUtils注入和图片显示 一.xUtils注入 引用官方介绍: ViewUtils模块: •android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定: •新的事件绑定方式,使用混淆工 ...

  2. 网页上的表格数据table

    格式: <table> <tr> <th> </th> </tr> <tr> <td> </td> &l ...

  3. ASP.NET MVC3 Areas 分离项目 同名控制器(同名Controller) 演示demo

    为什么需要分离? 我们知道MVC项目各部分职责比较清晰,相比较ASP.NET Webform而言,MVC项目的业务逻辑和页面展现较好地分离开来,这样的做法有许多优点,比如可测试,易扩展等等.但是在实际 ...

  4. Is Anchor magento

    如何在magento分类页的Layered Navigation中可以用magento后台已有的attributes进行筛选. 首先,进入后台 Catalog > Manage Categori ...

  5. httpd.conf

    修改配置文件-时会弹出一个文本式的文件 1.搜索:#LoadModule rewrite_module modules/mod_rewrite.so,去掉前面的# 2.全部替换AllowOverrid ...

  6. Aptana快捷键(方便查询)

    窗口类:Ctrl+ Shift +L 调出快捷键提示Ctrl+ W 关闭当前标签窗口Ctrl+ Shift + W 关闭当前标签窗口Ctrl+ F6 (或者是Aptana的Ctrl+Tab )下一个编 ...

  7. NSPredicate 根据谓语动词 进行 模糊查询

    /** *  模糊查询 */ NSString *filterString = textField.text; NSPredicate *predicate = [NSPredicate predic ...

  8. PySe-003-Se-WebDriver 启动浏览器之一 - Firefox

    此文主要演示 MacOX 下 WebDriver 启动 Firefox 浏览器,因 WebDriver 对 Firefox 浏览器是原生支持的,因而无需像启动其他浏览器一样需要相对应的 driver. ...

  9. python笔记 - day6

    python笔记 - day6 参考: http://www.cnblogs.com/wupeiqi/articles/5501365.html 大纲: 利用递归,实现阶乘: Python反射 pyt ...

  10. How to read the HTML DTD

    Contents How to read the HTML DTD 1. DTD Comments 2. Parameter Entity definitions 3. Element declara ...