一个js 变量作用域问题

一个js 域问题,有一本书 叫 javasrcip pattert 好像是,写的很好,,

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>

<div class="header">
    <h1>test</h1>
</div>
<script>
    /*var scp="glob";
    window.onload = function f(){
        alert(scp);
        console.log(scp);    //输出"undefined",而不是"glob"
        var scp="loca";        //在这里初始化
        console.log(scp);    //输出"loca"
        alert(scp+"22222");
    }
*/
    var scp="glob";
    function f(){
        alert(scp);
        console.log(scp);    //输出"undefined",而不是"glob"
        var scp="loca";        //在这里初始化
        console.log(scp);    //输出"loca"
        alert(scp+"22222");
    }
    f();
</script>
</body>
</html>

参考地址:http://www.cnblogs.com/zqzjs/p/4796242.html

高性能JavaScript--加载和执行(简要学习笔记一)

时间: 2024-11-03 21:04:24

一个js 变量作用域问题的相关文章

js变量作用域

? 1 2 3 4 5 6 7 8 9 10 for(var i =0;i<100;i++)   {        } alert(i);//100 if(true){     var i="91d";   } alert(i);//91d ? 1 2 3 4 5 6 function add(ad1,ad2){   sum=ad1+ad2;   return sum;//如果没有用var声明局部变量,会提升为全局的变量 } alert(add(3,5)); alert(&quo

[刘阳Java]_步步窥探JS变量作用域

今天的这个文章题目名称甚是让人会突发异想.JS变量作用域是务必需要搞懂的,单从面试过程就会让面试者烧脑壳.所以,我们还是写一篇关于JS变量作用域的技术专题,让所有小伙伴能够借此文章去整理JS的基础学习.说不定很多人会比我理解这方面基础知识有更好地见解 黄金守则第一条: JS没有块级作用域(你可以自己闭包或其他方法实现),只有函数级作用域,函数外面的变量函数里面可以找到,函数里面的变量外面找不到 <!doctype html> <html lang="en"> &

js变量作用域--变量提升

1.JS作用域 在ES5中,js只有两种形式的作用域:全局作用域和函数作用域,在ES6中,新增了一个块级作用域(最近的大括号涵盖的范围),但是仅限于let方式申明的变量. 2.变量声明 1 var x; //变量声明 2 var x=1; //变量声明并赋值 3 x = 1; // 定义全局变量并赋值 3.函数声明 function fn(){}; //函数声明并定义 var fn = function(){}; // 实际上是定义了一个局部变量fn和一个匿名函数,然后把这个匿名函数赋值给了fn

JS 变量作用域

变量作用域 有作用范围和生命周期. 静态作用域: 词法作用呀,由程序的定义位置决定,在编译的时候就决定了生存周期和作用范围. 跟代码执行顺序无关,通过代码嵌套来解析. 例子: var x = 10; function fun () { //编译的时候,X已经初始化了. alert(x); } function foo () { var x = 20; fun(); //运行fun的时候,x已经编译过了,就是10 } foo(); //10 动态作用: 程序运行时决定的.类似于C++的动态绑定.

js变量作用域及访问权限的探讨(2)

每一种语言都有变量的概念,变量是用来存储信息的一个元素.比如下面这个函数: 复制代码 代码如下: function Student(name,age,from)  {   this.name = name;    this.age = age;   this.from = from;    this.ToString = function()   {    return "my information is name: "+this.name+",age : "+t

javaScript的闭包 js变量作用域

js的闭包 js的变量作用域: var a=90; //定义一个全局变量 function test(){ a=123; //使用外层的 a变量 } test(); document.write("a="+a); var a=90; //定义一个全局变量 function test(){ var a=123; //定义一个局部变量 } test(); document.write("a="+a); a=90; //没有var ,就会试着去找(父函数 的 a),如果找

原型模式故事链(5)--JS变量作用域、作用域链、闭包

上一章 JS执行上下文.变量提升.函数声明 传送门:https://segmentfault.com/a/11... 本次我们主要讲讲变量作用域和闭包变量作用域:顾名思义:变量起作用的范围.变量分为全局变量和局部变量.全局变量:在任何地方都能用,在所有函数之外.局部变量:只能在定义它的函数中,以及它的子函数中使用. 当前作用域没有定义的变量,称为自由变量. 举例子: <!DOCTYPE html> <html> <head> <title>dsfg</

js 变量作用域 与 this

首先说下js作用域链:由于js变量都是对象的属性,对象又可以是对象的属性,最终到达window,所以变量-------window就是一条作用域链: 先说下变量作用域: var a=10;function test(){ console.log(a);----------undefined var a = 5; console.log(a);----------5}test(); test() 方法内:console.log(a)中变量a寻找自己的定义,发现var a = 5;已经有定义了,所以

js变量作用域和闭包的示例

<script> /* js是函数级作用域,在函数内部的变量,内部都能访问, 外部不能访问内部的,但是内部可以访问外部的变量 闭包就是拿到本不该属于他的东西,闭包会造成内存泄漏,你不知道什么时候会用这个闭包,然后这个资源会一直占据内存,造成内存泄漏 */ /*1 --函数内部可以访问外部的变量*/ /*var i = 10; function test() { console.log(i); } test();*/ /*2 在函数外部,我们就不能访问函数内部的变量,不然会报变量没有被定义*/