前段时间回答了一个关于定义变量时使用关键字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() //hello Bill con...
例子一: <table><tr><th>用户名</th><th>状态</th><tr><tr><td>张三</td><td data-uid="10000">正常</td><tr><tr><td>李四</td><td data-uid="10001">冻结</td><tr><tr><td>王二麻子</td><td data-uid=10002>冻结</td><tr> </table><script type="text/javascript"> $(document).ready(function(){var uid = 1001;$("td[data-uid = "+ uid +"]").html(正常); } </script>例子二:<script type="text/javascript">$(function(){ale...
/** * 判断是否null * @param data */ function isNull(data){ return (data == "" || data == undefined || data == null) ? "暂无" : data; }
我们先来看一段代码 function show(){ alert(abc); } var abc="defg"; show();有过C++或Java编程经验的人可能会说:“这程序,死定了,变量竟然在引用了该变量的函数后边定义,bug会灭掉你的。”放在浏览器上运行一下,结果怎样?完美运行!接下来我们就说一下这是咋回事——有var和没有var定义的变量的区别。 1、没有var 简明的说,定义变量时省略var是不安全的,不过是合法的。这时无论该变量是在什么位置定义的,解释器都会...
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script type="text/javascript"> //js判断变量初始化有三种形式 var x; if (x == null) { alert("x为null"); } if (typeof (x) == "undefined") { alert("x为undefined"); } //判断变量初始化推荐用这种形式 if(!x) { alert("不x"); //if(x){} 意思是:变量已经被初始化了(初始化了的意思就表示变量已经赋值了),或者变量不为空,或者变量不为undefined...
js的弱类型让人感觉很多东西都比较迷惑,例如变量在if条件中到底是true还是false,如果在强类型语言中将一个非boolean类型的变量放在if条件中时,是需要进行类型转换的,但是js不需要,下面来进行测试,测试常见的变量类型在if条件中的表现!function test1(){ <span style="color:#ff0000;">var a,b=-1,c= 1,d= 0,e=null,f=undefined,g=,h="";</span> if(!a){ console.log(a=+a) } if(!b){ console.log("b="+b) } if(!c){ ...
上周想要取得iframe中的元素和js变量值,一直没取得,查资料得知: 不能用$(document).ready()方法,而是要用$("#iframeId").load()方法,待iframe加载完成,才能取得 取iframe中的js变量值: document.frames[x].y这样便可以。 哎,很简单的问题,搞了很长时间,不应该啊!
为了避免变量之间的覆盖与冲突,可以生成命名空间,命名空间是一种特殊的前缀,在js中,通过{ }对象实现。 在不同的匿名函数中,根据功能声明一个不同的命名空间,每个匿名函数中GLOBAL对象的属性都不直接挂在GLOBAL上,而是挂在次匿名函数的命名空间下,如: 代码如下:<script type="text/javascript"> var GLOBAL={} </script> <script type="text/javascript"> (function(){ var a=123, a1=256; GLOBAL.A={} GLOBAL.A.str=a; }...
代码如下:<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/javascript"> /*I总结: 1.函数名可以做变量使用,可以赋值,可以传值 2.函数名当参数,传递给另一个函数 */ //==================js中函数的两种定义方式和函数变量赋值================ //在javascript中定义一个函数就可以理解成定义了一个变量 //js中的变量时弱类型的哦。 //----------1 //function add1...
js中定义一个变量 var params=null;判断params不为空的方法: 代码如下:if(params && params.hasOwnProperty("name")){} 其中:console.info(params);//结果为:Object {}
代码如下:var i=0; function addForm(){ i++; var textExtra=<p><input type="text" name=+"addInput"+i+ class="addInp"/></p>; $("#inforForm").append(textExtra); } 实现的效果是点击增加一个文本框进表单里面,自动命名name,被单引号双引号的嵌套搞得头大……
先看一段代码: 代码如下:jQuery.fn.extend( { myOwnMember: 3, getMyOwnMember: function () { return this.myOwnMember; }, setMyOwnMember: function (v) { this.myOwnMember = v; return this.myOwnMember; } } ); $("body").myOwnMember; //3 $("body").getMyOwnMember(); //3 $("body").setMyOwnMember(4); //4 $("body").getMyOwnMember(); //3 这段代码给jQuery对象扩展了一个成员myOwnMember,两个函数getMyOwnMember,...
一段js代码遇到一个bug,由于中间的隐式全局变量造成的, 由于代码较多,通过谷歌浏览器的js调试器才找到问题所在, 话说本人的电脑无论如何都装不上fiefox,从去年开始尝试了多次,均以失败告终, 不过谷歌的调试也挺好用的。 简化代码如下: 代码如下:$(function(){ var pageNo = 2;//这个参数是变化的 var pageSize = 10; test(); paginate(pageNo,pageSize);//由于 test() 方法覆盖pageNo,导致pageNo始终等于1 }); function te...
代码如下:function a(){ alert("fun a()"); } function b(){ alert("fun b()"); } var methodName = ""; //method1 methodName = "a"; function method1(methodName){ //初始化this.func属性, this.func = function(){}; try{ //这里用eval方法,把我们传进来的这个方法名所代表的方法当作一个对象来赋值给method1的func属性。 //如果找不到methodName这个对应的对象,则eval方法会抛异常 this.func = eval(methodName); }catch(e){...
目的是如果一个变量是已声明未赋值,就可以直接赋值;并且不能改变变量的作用域 如果未声明的话,就重新声明, 在网上搜了下,常见的方法是if(typeof(a)=='undefined'){var a='ss';}, 但是这种方法对未声明或已声明未赋值的变量都会返回true。而且如果是这样: 代码如下:var a; function f(){ if(typeof(a)==undefined) {var a=1;} } f(); console.log(a); 会显示undefined,因为f()里面只是声明了一个同名的局部变量。 但是如果...