为了避免变量之间的覆盖与冲突,可以生成命名空间,命名空间是一种特殊的前缀,在js中,通过{ }对象实现。 在不同的匿名函数中,根据功能声明一个不同的命名空间,每个匿名函数中GLOBAL对象的属性都不直接挂在GLOBAL上,而是挂在次匿名函数的命名空间下,如: 代码如下: var GLOBAL={} (function(){ var a=123, a1=256; GLOBAL.A={} GLOBAL.A.str=a; })(); (function(){ var b1=123, b2=256; GLOBAL.B={} GLOBAL.B.str=a; })...
上周想要取得iframe中的元素和js变量值,一直没取得,查资料得知: 不能用$(document).ready()方法,而是要用$("#iframeId").load()方法,待iframe加载完成,才能取得 取iframe中的js变量值:document.frames['x'].y这样便可以。 哎,很简单的问题,搞了很长时间,不应该啊!
js的弱类型让人感觉很多东西都比较迷惑,例如变量在if条件中到底是true还是false,如果在强类型语言中将一个非boolean类型的变量放在if条件中时,是需要进行类型转换的,但是js不需要,下面来进行测试,测试常见的变量类型在if条件中的表现!function test1(){ var a,b=-1,c= 1,d= 0,e=null,f=undefined,g='',h=""; if(!a){ console.log('a='+a) } if(!b){ console.log("b="+b) } if(!c){ console.log("c="+c) } if(!d){ ...
我们先来看一段代码function show(){ alert(abc); } var abc="defg"; show();有过C++或Java编程经验的人可能会说:“这程序,死定了,变量竟然在引用了该变量的函数后边定义,bug会灭掉你的。”放在浏览器上运行一下,结果怎样?完美运行!接下来我们就说一下这是咋回事——有var和没有var定义的变量的区别。 1、没有var 简明的说,定义变量时省略var是不安全的,不过是合法的。这时无论该变量是在什么位置定义的,解释器都会赋...
/** * 判断是否null * @param data */ function isNull(data){ return (data == "" || data == undefined || data == null) "暂无" : data; }
//js判断变量初始化有三种形式 var x; if (x == null) { alert("x为null"); } if (typeof (x) == "undefined") { alert("x为undefined"); } //判断变量初始化推荐用这种形式 if(!x) { alert("不x"); //if(x){} 意思是:变量已经被初始化了(初始化了的意思就表示变量已经赋值了),或者变量不为空,或者变量不为undefined } 获取当地时间
例子一:用户名状态张三正常李四冻结王二麻子冻结$(document).ready(function(){var uid = 1001;$("td[data-uid = "+ uid +"]").html('正常'); }例子二:例子三、jQuery中选择器参数使用变量应该注意的问题 这是原来的代码var li_index = $(this).index();var $content_index = li_index + 2;var $content_progress = $(“div.content:eq(” + $content_index + “)”);var $newavalue = $(this).find(“a”).attr(“name”);var $...
前段时间回答了一个关于定义变量时使用关键字var与否的区别,总结回顾一下。 1.在函数作用域内 加var定义的变量是局部变量,不加var定义的就成了全局变量。 使用var定义:var a = 'hello World'; function bb(){var a = 'hello Bill';console.log(a); } bb() //'hello Bill' console.log(a); //'hello world'不使用var定义:var a = 'hello World'; function bb(){a = 'hello Bill';console.log(a); } bb() //'hell...
1,对象属性删除function fun(){this.name = mm;}var obj = new fun();console.log(obj.name);//mmdelete obj.name;console.log(obj.name); //undefined2,变量删除var name = 'lily'; delete name; console.log(name); //lily直接用delelte删除不了变量 3,删除不了原型链中的变量fun.prototype.age = 18; delete obj.age; console.log(obj.age) //18
typeof都返回object 在JavaScript中所有数据类型严格意义上都是对象,但实际使用中我们还是有类型之分,如果要判断一个变量是数组还是对象使用typeof搞不定,因为它全都返回object代码如下: var o = { name:lee }; var a = [reg,blue]; document.write( o typeof is + typeof o); document.write( ); document.write( a typeof is + typeof a);执行:代码如下: o typeof is object a typeof is object 因此,我们只能放弃这种...
闭包是指有权访问另一个函数作用域中的变量的函数,但作用域的配置机制有一个需要注意的地方,即闭包只能取得包含函数中任何变量的最后一个值。 如以下案例:function create(){var arr = new Array(); for (var i=0; i"); }执行结果:表面上看,似乎每个函数返回的i值都不相同,比如c_arr[0]的值应该是0,c_arr[1]的值应该是1,以此类推。可结果每个函数都返回10。为什么呢? 因为每个函数的作用域链中保存着create()函数的活...
本文来论述JavaScript中变量声明有var和没var的区别,关于Js中的变量声明的作用域是以函数为单位,所以我们经常见到避免全局变量污染的方法是(function(){ // ... })();在函数内部,有var和没var声明的变量是不一样的。有var声明的是局部变量,没var的,声明的全局变量,所以可以借此向外暴露接口东东。 在全局作用域内声明变量时,有var 和没var看起来都一样,我们知道,声明的全局变量,就是window的属性,究竟是否一样,我们...
基本类型值有:undefined,NUll,Boolean,Number和String,这些类型分别在内存中占有固定的大小空间,他们的值保存在栈空间,我们通过按值来访问的。 (1)值类型:数值、布尔值、null、undefined。 (2)引用类型:对象、数组、函数。 如果赋值的是引用类型的值,则必须在堆内存中为这个值分配空间。由于这种值的大小不固定(对象有很多属性和方法),因此不能把他们保存到栈内存中。但内存地址大小是固定的,因此可以将内存地址...
在JavaScript中,var用来声明变量,但是这个语法并不严格要求,很多时修改,我们可以直接使用一个变量而不用var声明它。代码如下: var x = "XX"; y ="xxx"; 诸如此类。这有一个问题,比如说在代码中的某一行,我想使用的一个已声明的变量x,结果由于打字或者拼写错误,这个变量被写成y了,结果相当于“隐式”声明了一个变量y,在实际编程过程中,这种错误有时比较难以发现。 当你在当前上下文内进行这种“隐式”声明时,JavaScri...
看下面的代码:代码如下: if (!("aa" in window)) { alert(oh my god);var aa = 1; } alert("aa" in window); alert(aa);回答以下问题: 会报错吗?会弹出几次? 第2个alert是true还是false? 第3个alert弹出什么? 为什么? 思考下,然后测试下,如果你回答正确,那么后面的文章就不用看了。 ----------------------------- 在JS里定义变量太简单了,直接一个var ,甚至不用var都可以:代码如下...