如何把局部变量变成全局变量? 把局部变量给window就可以了     函数的自调用---自调用函数 一次性的函数--声明的同时, 直接调用了 (function () { console.log("函数"); })(); 局部变量 页面加载后.这个自调用函数的代码就执行完了 (function (形参) { var num = 10;//局部变量 })(实参); console.log(num); 把局部变量给window, 则局部变量变成全局变量 (function (win) {…
今天遇到个bug,最后终于知道原因了,js方法入参和全局变量重名,用入参赋值全局变量失败,就是说方法入参不能和全局变量重名. 现在下面的例子也说明,局部变量和全局变量不可以同名不光是入参,只要同名赋值就会失败. <html> <body> <script type="text/javascript"> var test = 5; //全局变量 function a() { var test = 3;//局部变量 test =test; }; func…
两段JS代码的区别: <script type="text/javascript"> var a = "Hello"; function test(){ var a; alert(a); a = "World"; alert(a); } </script> <script type="text/javascript"> var a = "Hello"; function…
对js中局部变量.全局变量和闭包的理解 局部变量 对于局部变量,js给出的定义是这样的:在 JavaScript函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它.(该变量的作用域是局部的).可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量.只要函数运行完毕,本地变量就会被删除. 我们先来逐步理解: 只能在函数内部访问 function test() { var a = 0; return a; } console.log(a); //结果…
JS高级 1. 访问对象属性(方法也是属性)的通用方式:obj['属性名'] 1. 属性名包含特殊字符,如"-".空格,访问:obj['content-type'] 2. 属性名不确定:var name='age'; var value=18; obj[name]=value 2. IIFE:立即执行函数,用于隐藏实现.避免污染全局命名空间.编写JS模块 (function(){ ... })() ---> 即匿名函数自调用 3. this的指向 1. 任何函数本质上都是通过某个…
基于尚硅谷的尚硅谷JavaScript高级教程提供笔记撰写,加入一些个人理解 github源码 博客下载 原型与原型链 prototype : 显式原型属性,它默认指向一个Object空对象(即称为: 原型对象) 原型对象中有一个属性constructor, 它指向函数对象 给原型对象添加属性(一般都是方法) 作用: 函数的所有实例对象自动拥有原型中的属性(方法) // 每个函数都有一个prototype属性, 它默认指向一个对象(即称为: 原型对象) console.log(Date.prot…
原文链接:http://www.cnblogs.com/eric-qin/p/4166552.html JavaScript局部变量和全局变量的理解   1 2 3 4 5 6 7 8 9 10 <script type="text/javascript"> var a = 1; function hehe() {          window.alert(a);          var a = 2;          window.alert(a); } hehe()…
我们先来看一下js的异步提交. XHR我们在原生的时候常常用到,因为常用到,我们更多把封装到了工具库中 先看下他最常用的实现 // 旧方法 function createXHR() { var xhr; try{ xhr = new XMLHttpRequest(); }catch(e) { handleErr(e); try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); }catch(e) { try{ xhr = new ActiveXO…
刚开始学js,遇到了一个奇怪的问题,查找之后知道了答案 需要记住两句话 1 Javascript的变量的scope是根据方法块来划分的(也就是说以function的一对大括号{ }来划分).切记,是function块,而for.while.if块并不是作用域的划分标准 2 Javascript在执行前会对整个脚本文件的定义部分做完整分析(包括局部变量),从而确定实变量的作用域 示例 1 下面这段代码输出的是undefined 10 <script type="text/javascript…
js中函数运行过程不仅仅是单纯的局部变量覆盖全局变量.和函数里面的声明情况有关. 比方: <script> var a =1; function test(){ alert(a); //a为undefined! 这个a并非全局变量.这是由于在function scope里已经声明了(函数体倒数第4行)一个重名的局部变量, //所以全局变量a被覆盖了.这说明了Javascript在运行前会对整个脚本文件的定义部分做完整分析,所以在函数test()运行前, //函数体中的变量a就被指向内部的局部变…