- 浏览: 529920 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (119)
- java总结 (43)
- Spring (2)
- 反编译工具 (1)
- hibernate (1)
- Tomcat (1)
- WebLogic (2)
- 随笔 (4)
- Word问题小记 (2)
- web前端 (26)
- Oracle (10)
- DOS (1)
- 面试笔试 (3)
- Servlet (1)
- jQuery (1)
- Linux/Unix (2)
- JSTL (1)
- struts2 (2)
- JSON (2)
- Velocity (0)
- 生活 (3)
- MyEclipse使用小结 (1)
- 操作系统 (2)
- jqgrid (1)
- ajax-dwr (1)
- javascript (18)
- dreamweaver (2)
- html (10)
- css (5)
- 正则表达式 (1)
- IO (3)
最新评论
-
a363722188:
幽默者 写道老兄,Collections.copy(dest1 ...
由java中深度复制一伸出Collections.copy的使用 -
幽默者:
老兄,Collections.copy(dest1, src1 ...
由java中深度复制一伸出Collections.copy的使用 -
raymao:
java 中 split 是正则表达式
java 和 javascript split 的区别! -
413899327:
面试前端javascript
阿里电话面试 -
yzsunlight:
你面试前台UI?
阿里电话面试
javascript中一些数据类型以及奇怪的特性。具体情况直接运行就知道了!
输出结果:
时间戳: 2013-6-7 15:47:07
错误: TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them
多谢提醒!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Data Types And Definitions</title> <style type="text/css"></style> <script type="text/javascript"> /* */ function factorial(x) { if (x < 0) throw new Error("factorial: x must be >= 0"); if (x <= 1) { return 1; } else { return x * factorial(x-1); } } //factorial(-2); var fa = factorial(2); console.log(" fa = " + fa ); var factorial = function(x) { if (x < 2) { return 1; } else { return x * arguments.callee(x-1); } } var y = factorial(5); // Returns 120 console.log(" y = " + y ); function myFunc(arg1,arg2){ console.log(" myFunc.length = " + myFunc.length); console.log(" arguments.length = " + arguments.length); console.log(" arguments.callee.length = " + arguments.callee.length); } myFunc(); console.log(" myFunc.length = " + myFunc.length);//显示函数形参的个数 结果为2 var isArray = function(obj) { return Object.prototype.toString.apply(obj) === '[object Array]'; } function myfunc2(){ var s=""; //arguments.callee指的就是函数自己 注意 callee是 arguments的属性,不是函数的的 console.log(" isArray(arguments) = " + isArray(arguments) ); // false console.log(" apply(arguments) = " + Object.prototype.toString.apply(arguments) ); // [object Arguments] console.log(" typeof arguments = " + arguments); // [object Arguments] console.log(" arguments.callee = " + arguments.callee); console.log(" typeof arguments.callee = " + typeof arguments.callee);//function var len=arguments.length; for (var i=0;i<len;i++){ s+=arguments[i];//此处要注意 arguments并非真正的数组,如果需要变为数组,下面有方式方法。 var args=Array.prototype.slice.call(arguments);//将arguments转变成真正的数组,并赋予args } console.log(s + " args = " + args); } myfunc2(4,4,"s","444"); var obj = new Object(); function a(){} console.log(typeof (typeof a)); //alerts 'string' console.log(" typeof a = " + typeof a); //alerts 'function' console.log(" typeof obj = " + typeof obj); //alerts 'object' console.log(" typeof null = " + typeof null); //alerts 'object' console.log(" typeof false = " + typeof false); //alerts 'object' console.log(" typeof new Array() = " + typeof new Array()); //alerts 'object' console.log(" new Array() = " + (new Array()) ); //alerts 空白 console.log(" []= " + ( [] ) ); //alerts 空白 console.log(" null instanceof Object = " + null instanceof Object); //evaluates false(null instanceof Object); //evaluates false console.log(" false instanceof Boolean = " + false instanceof Boolean); // false console.log(" new Array() == false => " + (new Array() == false) ); //evaluates true console.log(" [] == false => " + ([] == false) ); //evaluates true var emptyArray = []; //empty array console.log(" emptyArray == false => " + ( emptyArray == false) ); //evaluates true if (emptyArray) { console.log(" if(emptyArray) ==> true "); //ture } else { console.log(" if(emptyArray) ==> false "); } var zero = 0; console.log(" 0 == false => " + ( zero == false) ); //evaluates true – zero is a falsy console.log(" 0 === false => " + ( zero === false) ); //evaluates false – zero is a number, not a boolean var someVar = 'hello'; setTimeout(function() { alert(someVar); }, 1000);//out put goodbye var someVar = 'goodbye'; var someVar = 'hello'; setTimeout((function(someVar) { return function() { alert(someVar); }//out put hello 参数早就传进去了 })(someVar), 1000); someVar = 'goodbye'; //http://coding.smashingmagazine.com/2011/05/30/10-oddities-and-secrets-about-javascript/ </script> </head> <body> </body> </html>
输出结果:
评论
2 楼
413899327
2013-06-07
rambolovepanda 写道
代码在 严格模式下 callee不管用的
时间戳: 2013-6-7 15:47:07
错误: TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them
多谢提醒!
1 楼
rambolovepanda
2013-06-07
代码在 严格模式下 callee不管用的
发表评论
-
java 和 javascript split 的区别!
2013-09-18 10:52 1572java 和 javascript split 的区别! ... -
javascrip如何创建命名空间
2013-09-18 10:49 1152看代码,废话不多说! <!DOCTYPE ht ... -
阿里电话面试
2013-09-10 22:16 2460今天晚上接到阿里电话面试! 问到的问题大 ... -
setTimeout 和 setInterval最小执行时间问题
2013-09-08 22:43 16633setTimeout 和 setInterval 经常被用 ... -
IE6用setAttribute添加事件无效
2013-09-08 11:51 1385<!DOCTYPE html PUBLIC &q ... -
在IE6下 a标签添加行间onclick事件导致页面跳转失败原因分析
2013-09-08 11:43 3352<!DOCTYPE html PUBLIC & ... -
如何禁用浏览器的后退/刷新,backspace退格键
2013-06-09 13:01 7432在这个页面中加入的JavaScript代码可 用来产生点击前 ... -
javascript阻止事件冒泡和浏览器的默认行为
2013-06-09 09:41 2176在使用javascript编程时会遇到一个问题,就是当你给 ... -
JavaScript中两个等于号和三个等于号之间的区别
2013-06-07 14:59 1753为真的: 0 == 0 、"" == ... -
javascript中为5种为假的情况测试
2013-05-24 15:42 1237Javascript假的5种情况: Falsy values ... -
javascript中变量声明提升(Hoisting)的理解 ---What is hoisting in Javascript?
2013-05-24 11:24 1350<!DOCTYPE html PUBLIC &quo ... -
JavaScript中两个等于号和三个等于号之间的区别
2013-05-12 22:41 1149<!DOCTYPE html PUBLIC " ... -
javascript的函数参数arguments 并不是数组
2013-03-22 12:34 1448arguments 并不是数组,只是碰巧用数字做索引,以及一个 ... -
弹出层居中问题版1
2013-03-21 22:51 17341、居中弹出层css控制问题版 <!DOCTYPE ... -
javascript中字符串格式json如何转化成json对象
2013-02-13 16:34 12104什么是JSON JSON(JavaScript Object ... -
javascript 内存和性能闲聊
2013-01-14 22:25 1136我想问你这样更省内存,所有的aBtn[i].onclick共用 ... -
javascript 定时器 实现时间自动更新的特效
2012-12-19 14:15 2158图片自己找几个替换下就OK了! <!DOCTYPE ...
相关推荐
JavaScript语法和数据类型(源代码)JavaScript语法和数据类型(源代码)JavaScript语法和数据类型(源代码)JavaScript语法和数据类型(源代码)JavaScript语法和数据类型(源代码)JavaScript语法和数据类型(源...
JavaScript有哪些数据类型,它们的区别? 等一些js理论
认识JavaScript的数据类型;学习目标;认识JavaScript的数据类型; 1.变量的数据类型;基本数据类型-数字型;认识JavaScript的数据类型;认识JavaScript的数据类型;认识JavaScript的数据类型;认识JavaScript的数据类型;...
ECMAScript 中有 5 种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number和 String。还有 1种复杂数据类型——Object,Object 本质上是由一组无序的名值对组成的。ECMAScript 不支持任何创建...
基本数据类型有数值数据类型、字符串数据类型、逻辑数据类型以及undefined和 null 两个特殊的数据类型。在数值数据类型中,还有NaN等特殊值。JavaScript 是一种松散类型、动态类型的语言,在声明变量时无需指定数据...
JavaScript优势简介及数据类型Introduction to JavaScript, Advantages, Data Types – Variables – Operators - Control Statements – Functions - Objects – Array – Strings – Math – Boolean – Global - ...
javascript中的数据类型检测方法详解.docx
javascript的数据类型
数据类型 JavaScript中有5种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number和String。还有1种复杂数据类型——Object,Object本质上是由一组无序的名值对组成的。 typeof操作符 介于...
javaScript基本数据类型
javascript技巧,JavaScript中数据类型转换总结,轉載自腳本之家
JavaScript获取变量数据类型案例源码
是JavaScript之数据类型 的基本讲解,适用于javascript的初学者学习javascript的数据类型,应该有帮助
第3节 JavaScript数据类型.rar第3节 JavaScript数据类型.rar第3节 JavaScript数据类型.rar第3节 JavaScript数据类型.rar第3节 JavaScript数据类型.rar第3节 JavaScript数据类型.rar第3节 JavaScript数据类型.rar第3...
javaScript通用数据类型校验,邮件,字符串程度,数字验证
javascript数据类型
javascript数据类型
javascript基础之数据类型和变量思维导图.xmind