对象直接量创建一个对象: 代码如下:var obj = {x:[1,2],y:23}; 代码跟下面是一样的。 代码如下: var obj=new Object(); obj.x=new Array(1,2); obj.y=23; 测试: 代码如下: for(var i in obj) alert(obj[i]); 函数直接量:它是一个表达式而不是语句。 代码如下:(function(){})() 如下例: 代码如下: (function(){ document.write("some script code"); })() var a=(function(s){return s})("abc"); alert(a); var b=functi...
这个功能需要写一点代码来实现。下面的函数可以得到一个变量的类型,调用时传递一个变量进去,会返回用字符串形式描述的变量类型。 代码如下: //得到x的类型,返回类型名称 function getType(x) { //如果x为null,则返回null if (x == null) return "null"; var t = typeof x; //如果x为简单类型,则返回类型名称 if (t.toLocaleLowerCase() != "object") return t; //调用object类的toString方法得到类型信息 //object.toString方法...
今天小编给大家整理些关于javascript判断变量是否是数组(Array)的相关知识,主要通过以下四点给大家展开话题,具体内容如下所示: 1. typeof真的那么厉害吗??//首先看代码 var ary = [1,23,4]; console.log(typeof ary); //输出结果是Object上面的办法并不能实时的检测出是否是数组,只能判断其类型,所以说typeof判断基本类型数据还是挺好的,但是不能准确测试出是否是数组(typeof的具体用法以后提及,现在回归正题) 2.instan...
小编觉得这道题对理解JavaScript 作用域还是很有帮助的,特此又把自己的解题思路梳理了一遍,希望对其它人有所帮助。 首先看下面试题:var arr = [1, 2, 3];for (var i = 0, j; j = arr[i++];) {console.log(j);}console.log('---------');console.log(i);console.log('---------');console.log(j);console.log('---------');在解题前,我们先回顾下 JavaScript 中,变量域相关的知识。 全局变量(Global) 全局变量是指在任何地方都...
1.今天在看JavaScript学习指南的时候做的课后习题,也因此详细的对函数的传入参数进行比较深入的研究.题目如下:函数如何才能修改其作用域之外的变量?编写一个函数,由1~5的数字组成的数组作为参数,调用该函数后将把其中的数字项替换为相应的字符串表示形式.需要注意知识点:在JavaScript中函数参数的传递,对于基于原始值的参数进行值传递(数字,字符串,布尔值),函数中的修改不会影响实际参数值.而传递给函数的参数而言,对象是一个引用,...
譬如下面。 代码如下: for(i=0;i<10;i++){//就不写成: var i=0 alert(i); } 但是,这真的不是个好习惯,下面我就说说为什么写Js的for循环一定要加var,否则会时不时给你带来烦人难查的bug。 譬如现在我们要实现这样的功能:输出 10 20 30 40 50 60 70 80 90 100 通过下面code实现,WriteNumber从1到10循环,每次循环调用TenTimes方法返回10倍的索引值。 代码如...
JavaScript检查变量的类型,并判断是整形或是字符串或是其它类型等等。 检查变量的类型 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]2、toString 本来是用来做字符串转换的,不过现在流行用来做变量类型的检查了。舜子这里也写了一个函数,方便检查变量的类型,可以用来代替 typeof 代码如下: function getType(o) { var _t; return ((_t = typeof(o)) == "object" ? o==null && "null" || Object.prototype.toString.call(o)....
代码如下: 输出全部是i的最后一次的值(10),即会输出10个10,显然这不是我们想要的 //原因:因为每个函数都保存了createArray函数的活动对象,所以他们引用的都是同一个i(按引用传的值) //解决方案:把按引用传参修改为按值传参 function createArray() { var arr = new Array(); for (var i = 0; i < 10; i++) { arr[i] = function (num) { return function () { return num; } } (i);//调用此匿名函数返回内部匿名函数,这里多...
今天遇到了这个问题: 代码如下: //伪代码 for (var i=0; i<n; i++) { addEvent(obj[i], "click", func(i)); } 结果出现了问题,所有的dom都被注册了 i=n 的时候的事件,查了一些资料,说是在循环过程过this被改变,注册过的事件也被随之改变,找到了一种解决方法; 代码如下: for (var i=0; i<n; i++) { (function (i){addEvent(obj[i], "click", function (){func(i);});})(i); } 利用必包保持对变量的持久引用,很强大的说!...
作用域分配与变量访问规则 在 ECMAScript 中,函数也是对象。函数对象在变量实例化过程中会根据函数声明来创建,或者是在计算函数表达式或调用 Function 构造函数时创建。(关于'函数对象'请见《理解Javascript_08_函数对象》)。每个函数对象都有一个内部的 [[scope]] 属性,这个属性也由对象列表(链)组成。这个内部的[[scope]] 属性引用的就是创建它们的执行环境的作用域链,同时,当前执行环境的活动对象被添加到该对象列表...
代码如下: //by ppchen var a = 10, b = 2; a = a + b; b = a - b; a = a - b; 代码如下: //by Mr.司马 var a = 10000,b=245 a = a^b; b = b^a; a = a ^b; 代码如下: //by cloudgamer var a = 33,b=44 a=[a,b] b=a[0] a=a[1] 代码如下: //by Mr.司马 var a = 23,b=454; a = {a:b,b:a}; b = a.b; a = a.a; 评:1、2种解法是普遍解,只能交换数字,而3、4种则适用性更广。
1)Javascript对象成员实验: 代码如下: var f = function d() { this.a = "a";/*这句运行后不存在f.a也不存在d.a存在一个window.a*/ var b = "b";/*局部变量*/ }; var o = { ff: function () { var a = "a"; /*局部变量*/ this.b = "b"; /*这句运行后存在o.b*/ } }; function Man(){ this.age = 30; }; Man.prototype.sex = 1; Man.prototype.name = function () { }; debugger;/*第一处断点*/ f(); o.ff(); var m = new Man(); ...
一、变量作用域:[P71] 这一句话说的非常精辟:“在ECMAScript中,只有两种执行环境,全局环境和函数环境,每个函数都是一个执行环境,包括嵌套函数。换句话说,其他情况下即使变量声明在一对大括号中,在括号外部仍然可以访问这些变量”。以下给出例子: 代码如下: for(var i=0; i<5; i++) { var num = 20; // 在for语句中声明的变量 } alert(num); // 在for语句外部调用变量,仍然可以得到num的值 对异常语句也同样可以: 代码...
一.关于Javascript变量声明 在Javascript中,声明一个变量 var a=1; 也可以直接 a=1; 这两种表达是有区别的, 一个是当前作用域的局部变量,另一个则是当前作用域的全局变量; Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。 代码如下: var n=999; function f1(){ alert(n); } f1(); // 999 另一方面,在函数外部自然无法读取函数内的局部变量。 代码如下: function f1(){ var n=999; } alert(n); //...
一、迷思!由一段代码引发的疑惑 请看如下代码: 代码如下: for(var i=0;i<3;i++) { console.log(j+","+k); for(var j=0;j<3;j++) { var k = j+1; } } console.log(i); 输出结果: undefined,undefined 3,3 3,3 3 如果你是搞c、java等语言的,可能你会不解,为何j、k这种局部变量可以被作用域外的代码访问呢? 如果JavaScript中用var声明的变量可视为局部变量,那么能访问到这个变量的作用域就是这个变量的局部作用域。如上例,在...