目的是如果一个变量是已声明未赋值,就可以直接赋值;并且不能改变变量的作用域 如果未声明的话,就重新声明, 在网上搜了下,常见的方法是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()里面只是声明了一个同名的局部变量。 但是如果...
核心代码 //是否存在指定函数 function isExitsFunction(funcName) {try {if (typeof(eval(funcName)) == "function") {return true;}} catch(e) {}return false; } //是否存在指定变量 function isExitsVariable(variableName) {try {if (typeof(variableName) == "undefined") {//alert("value is undefined"); return false;} else {//alert("value is true"); return true;}} catch(e) {}return false; }更多的判断可以参考这...
1、Javascript变量作用域 javascript中,变量主要分为局部变量和全局变量两种,对应的作用域也是局部作用域和全局作用域。 1 局部变量和作用域 局部变量一般在函数体内部声明使用: function func(){var i=12;//局部变量...... }局部变量的作用域在声明这个变量的函数体范围内使用。 局部变量的声明周期从函数被调用执行开始初始化,在函数调用执行完毕之后被销毁。 2、全局变量和作用域 全局变量一般在函数体外面声明: var i=12...
在JS中调用JSP中的变量: 代码如下:<% int coblid=Integer.parseInt(request.getParameter("blid")); %> <script> var coblid=<%=coblid%> ; </script>
变量的作用域指的是变量的可见性,而生命周期则(存活期)则是从另一个角度考察变量。 JS中变量的作用域分为全局变量和局部变量,函数内定义的称为局部变量,函数外的称为全局变量。(“函数外的称为全局变量”是相对的,另此处讨论的前提是用var显式声明的变量,函数内不用var定义的变量默认是全局变量,当然忽略var声明变量是不赞成的)。 代码如下:var glob = 4;//函数外声明全局变量 function fun() { var height = 20; //...
在学习JavaScript的变量作用域之前,我们应当明确几点: ?JavaScript的变量作用域是基于其特有的作用域链的。 ?JavaScript没有块级作用域。 ?函数中声明的变量在整个函数中都有定义。 1、JavaScript的作用域链首先看下下面这段代码: 代码如下:<script type="text/javascript"> var rain = 1; function rainman(){ var man = 2; function inner(){ var innerVar = 4; alert(rain); } inner(); //调用inner函数 } rainman(); //调用...
这个标题实在拗口,Javascript命名变量所遵循的规则 1、第一个字符必须是字母、汉字字符、 下划线(_)或美元符号($) 2、剩下的可以是下划线、汉字字符、 美元符号和任何字母、数字 以下声明变量是正确的 代码如下:var p,$p,_p; var 长,宽; 以下是错误的 代码如下:var .p;//只能是字母、数字、下划线或美元符号 var -p;//只能是字母、数字、下划线或美元符号 var p*;//只能是字母、数字、下划线或美元符号 var 4p,4长;//不能以数字开...
相信你对全局变量一定不陌生,在函数作用域里用a=1这种形式定义的变量会是一个全局变量,在全局作用域里,用下面3种形式都可以创建对全局可见的命名: 代码如下:<script>var a = 1;b = 2;window.c = 3;</script>对于b=2这种方式, 它其实和c是一样的,在执行这个赋值语句的时候,会沿着作用域链寻找名字叫做b的变量,一直找到作用域链的顶端还没有找到,于是给window添加一个属性b然后赋值。 var与不var有两个区别: 1 var的全局变...
变量及变量声明是一门语言最基本的概念,初学者都会很快掌握。JavaScript中声明变量也是如此,很简单var(关键字)+变量名(标识符)。 方式1 var test;var test = 5;需注意的是该句不能包含在function内,否则是局部变量。这是第一种方式声明全局变量。 方式2 test = 5;没有使用var,直接给标识符test赋值,这样会隐式的声明了全局变量test。即使该语句是在一个function内,当该function被执行后test变成了全局变量。 方式3 window....
工作中我们经常需要判断某个变量/属性是否为undefined。通常有两种写法 代码如下:// 方式1 typeof age === undefined; // 方式2 age === undefined 这两种写法有什么区别吗? 应该使用哪一种呢?看看下面的例子 代码如下:typeof age === undefined; // true 标识符 age 没有声明过,输出true。 再看另一个例子 代码如下:age === undefined; // 报错 Firebug提示age is not defined, 这就是两者的区别, 即不确定age是否声明或定义...
javascript中定时器setTimeout的用法一般如下,调用beginrotate之后就进入定时执行rotateloop的一个过程,如下代码: 代码如下:var angle = 0; function rotateloop() { if (angle < 360) { angle++; //use angle //...... setTimeout("rotateloop()", 100); } } function beginrotate() { //do something //...... setTimeout("rotateloop()", 100); } 这段代码有一个问题,就是产生了一个全局变量angle,这显然不是好的编程习惯...
在编写JavaScript程序时往往需要检测某一变量是否存在,这是一件非常简单的工作,但如果不细心也会遇到一些问题。主要有一些几点: 1、普通变量 代码如下:<script type="text/javascript"> if(variable){ alert(rain man); } </script> 这时会出现‘variable is not defined的错误,如果改成下面就会弹出预期的对话框: 代码如下:<script type="text/javascript"> if( typeof variable == undefined ){ alert(rain man); } </sc...
上周四吃完午饭,leader发了一道JavaScript的题目给我们做,我们Team里面有做前端的,有做后台的,也有坐mobile web的,所以大家对题目的理解各自都不一样,然后在QQ讨论组里面进行讨论。发现虽然很基础,但是通过讨论收获不少,分享出来。当然在有开发经验的开发者看来,这些都是学习JavaScript最基础的东西。因为平时都是用jQuery或者第三JS组件,所以对JavaScript基础学习不够重视。题目如下,问题是:2次alert分别输出什么结果...
JavaScript中this的使用 在JavaScript中this变量是一个令人难以摸清的关键字,this可谓是非常强大,充分了解this的相关知识有助于我们在编写面向对象的JavaScript程序时能够游刃有余。 对于this变量最要的是能够理清this所引用的对象到底是哪一个,也许很多资料上都有自己的解释,但有些概念讲的偏繁杂。而我的理解是:首先分析this所在的函数是当做哪个对象的方法调用的,则该对象就是this所引用的对象。 示例一、 代码如下:var ...
只要是写过点JS代码,很简单一个var 就完事了。那对于JS编译器背后它又发生了什么呢?那就一步步通过代码来讲起。 代码如下:x = 1; alert(x); var y = function() { alert(x); var x = 2; alert(x); } y(); 上面的代码也会你答对了它会分别输出:1,undefined,2。对于我来说,第一反应它会输出:1,1,2。为什么第二个会输出undefined?在上面我明确定义了一个全局变量x,为何找不到? 那是因为:js编译器在执行这个y函数的时候,会...