【javascript – 声明变量之间的区别】教程文章相关的互联网学习教程文章

浅说js变量

代码如下:/* 1, 变量类型: JavaScript 是弱类型, 变量可存储任意类型, 并且运行期间类型可变; -> 变量可进行类型转换; */ /* 2, 变量声明: */ var i; var index; var i, index; var i = 0, index = 2; /* 变量声明, 无初始值时, 值为 undefined; 并且 var 声明的变量, 不能使用 delete 操作符删除; 重复声明为产生覆盖, 不会造成错误; 遗漏声明, 则会把变量隐式声明此变量, 并做为全局变量; (下节介绍) */ /* 3, 变量作用域: 以...

JavaScript传递变量: 值传递?引用传递?

当变量A赋值给变量B时,会将栈中的值复制一份到为新变量分配的空间中。 如何理解? 代码如下:var x = y = 1; y = 2; alert(x); x的值为多少? 代码如下:var obj = {}; var sub = {}; sub[id] = 3; obj[sub] = sub; sub[id] = 4; alert(obj[sub][id]); obj[sub][id]的值又为多少?他们真的符合你的预期吗? 我们分别运行2段代码,发现第1段程序中x的值没有改变,而第2段程序中的obj[sub][id]的值却改变了。同样是一个赋值操作,...

javascript中运用闭包和自执行函数解决大量的全局变量问题

但是从全局看来,这样会导致出现一些让我们难以掌控的情况的出现:变量同名、多个函数共用一个全局变量后的值的变换……等等。所以,有时候,对于一些简单的全局变量,我们可以通过另一种方式来处理——用自执行函数+闭包的方法来解: 比如:我们要在网页加载时给出一个提示,在网页关闭时给出另一个提示 下面的代码,实现了以上功能 代码如下:var msg1 = "欢迎光临!"; // 定义一个全局变量 var msg2 = "再见!" //定了另一个全局...

javascript中检测变量的类型的代码

常用检查变量类型的方法有两种,下面是解说: 检查变量类型方法一:typeof 格式:typeof 变量 用法:if( typeof 变量 == "类型标识") { ... } 下面是一些常用数据类型对应的typeof值: {an:"object"}      :    object ["an","array"]      :    object function() {}      :    function "a string"        :    string 55           :    number true        ...

Javascript学习笔记二 之 变量

一.关于Javascript变量声明 在Javascript中,声明一个变量 var a=1; 也可以直接 a=1; 这两种表达是有区别的, 一个是当前作用域的局部变量,另一个则是当前作用域的全局变量;  Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。  代码如下:var n=999; function f1(){ alert(n); } f1(); // 999 另一方面,在函数外部自然无法读取函数内的局部变量。 代码如下:function f1(){   var n=999; } alert(n); // e...

关于JavaScript中var声明变量作用域的推断

一、迷思!由一段代码引发的疑惑 请看如下代码: 代码如下: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声明的变量可视为局部变量,那么能访问到这个变量的作用域就是这个变量的局部作用域。如上例,在...

有关js的变量作用域和this指针的讨论

一、变量作用域:[P71] 这一句话说的非常精辟:“在ECMAScript中,只有两种执行环境,全局环境和函数环境,每个函数都是一个执行环境,包括嵌套函数。换句话说,其他情况下即使变量声明在一对大括号中,在括号外部仍然可以访问这些变量”。以下给出例子: 代码如下:for(var i=0; i<5; i++) { var num = 20; // 在for语句中声明的变量 } alert(num); // 在for语句外部调用变量,仍然可以得到num的值 对异常语句也同样可以: 代码...

Javascript面象对象成员、共享成员变量实验【图】

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(); d...

不使用中间变量,交换int型的 a, b两个变量的值。

代码如下://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种则适用性更广。

理解Javascript_15_作用域分配与变量访问规则,再送个闭包【图】

作用域分配与变量访问规则   在 ECMAScript 中,函数也是对象。函数对象在变量实例化过程中会根据函数声明来创建,或者是在计算函数表达式或调用 Function 构造函数时创建。(关于'函数对象'请见《理解Javascript_08_函数对象》)。每个函数对象都有一个内部的 [[scope]] 属性,这个属性也由对象列表(链)组成。这个内部的[[scope]] 属性引用的就是创建它们的执行环境的作用域链,同时,当前执行环境的活动对象被添加到该对象列表...

javascript循环变量注册dom事件 之强大的闭包

今天遇到了这个问题: 代码如下://伪代码 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); } 利用必包保持对变量的持久引用,很强大的说! (...

JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题

代码如下:<script type="text/javascript"> function createArray() { var arr = new Array(); for (var i = 0; i < 10; i++) { arr[i] = function () { return i; } } return arr; } var funcs = createArray(); for (var i = 0; i < funcs.length; i++) { document.write(funcs[i]() + "<br />"); } //以上输出全部是i的最后一次的值(10),即会输出10个10,显然这不是我们想要的 //原因:因为每个函数都保存了createArray函数的...

Js检查变量类型的代码()

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).s...

js for循环,为什么一定要加var定义i变量

譬如下面。 代码如下: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倍的索引值。  代码如...

mysql输出数据赋给js变量报unterminated string literal错误原因

从mysql读取某一文本数据,付给js变量比如 代码如下:<script type="text/javascript">var strs="苏润葡萄种植园依托沪宁高速和扬溧高速两大交通走廊,紧邻镇荣公路上党镇薛村段,离镇江市仅20公里,交通便利苏润葡萄种植园引进新品种、 新工艺、新技术和现代经营管理体制,采用大棚种植。目前主要品种有五个:夏黑、美人指、贵公子、黄蜜、金手指。苏润葡萄种植园还 ..."; document.write(strs);</script> 却发现火狐下始终报 unt...

JAVASCRIPT - 技术教程分类
JavaScript 教程 JavaScript 简介 JavaScript 用法 JavaScript Chrome 中运行 JavaScript 输出 JavaScript 语法 JavaScript 语句 JavaScript 注释 JavaScript 变量 JavaScript 数据类型 JavaScript 对象 JavaScript 函数 JavaScript 作用域 JavaScript 事件 JavaScript 字符串 JavaScript 运算符 JavaScript 比较 JavaScript 条件语句 JavaScript switch 语句 JavaScript for 循环 JavaScript while 循环 JavaScript break 和 continue 语... JavaScript typeof JavaScript 类型转换 JavaScript 正则表达式 JavaScript 错误 JavaScript 调试 JavaScript 变量提升 JavaScript 严格模式 JavaScript 使用误区 JavaScript 表单 JavaScript 表单验证 JavaScript 验证 API JavaScript 保留关键字 JavaScript this JavaScript let 和 const JavaScript JSON JavaScript void JavaScript 异步编程 JavaScript Promise JavaScript 代码规范 JavaScript 函数定义 JavaScript 函数参数 JavaScript 函数调用 JavaScript 闭包 DOM 简介 DOM HTML DOM CSS DOM 事件 DOM EventListener DOM 元素 HTMLCollection 对象 NodeList 对象 JavaScript 对象 JavaScript prototype JavaScript Number 对象 JavaScript String JavaScript Date(日期) JavaScript Array(数组) JavaScript Boolean(布尔) JavaScript Math(算数) JavaScript RegExp 对象 JavaScript Window JavaScript Window Location JavaScript Navigator JavaScript 弹窗 JavaScript 计时事件 JavaScript Cookie JavaScript 库 JavaScript 实例 JavaScript 对象实例 JavaScript 浏览器对象实例 JavaScript HTML DOM 实例 JavaScript 总结 JavaScript 对象 HTML DOM 对象 JavaScript 异步编程 javascript 全部