<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body> <script>
//1 ====================================================
var a;
if ('a' in window) {
var a = 10;
}
alert(a); //
// 注: in 是一个关键字 用于判断 '属性' in 对象 当前这个属性是否是对象的属性
//2 ====================================================
var foo = 1;
function bar() {
if (!foo) {
var foo = 10;
}
alert(foo); // // 预解析阶段:
// var foo;
// 代码执行阶段:
if(!foo){
foo = 10;
}
alert(foo); }
bar(); // 代码拆分:
// 预解析阶段:
var foo;
function bar(){}
// 代码执行阶段:
foo = 1;
bar(); //3 ============================================================
var num = 123;
function f1(num) {
// var num = 456;
console.log(num); //
}
function f2() { var num = 456;
f1(num);//f1(456)
}
f2(); //4 ===================================================================== function fn(){
var a = 1, b = 1, c = 1;
// var a = 1;
// var b = 1;
// var c = 1;
}
fn();
console.log(c); //1 e
console.log(b); //1 e
console.log(a); //e e function fn1(){
var a = b = c = 1;
var a = 1;
b = 1;
c = 1;
}
fn1();
console.log(c); //
console.log(b); //
console.log(a); // e //5 ================================================================
var a ;
function a(){
console.log('呵呵')
function a(){
a = 4;
console.log('哈哈')
}
a();
console.log(a); //
}
a();
console.log(a); // 外面的a //6 ===================================================================
var a = 1;
function a(){
a++;
}
console.log(a) // // 7 =====================================================================
var a = { x : 1 }
var b = a;
a.x = a = { n : 1};
console.log(a.x); // undefined
console.log(b.x); // {n : 1} </script>
</body>
</html>

JavaScript词法作用域经典练习题的更多相关文章

  1. 网易JS面试题与Javascript词法作用域说明

    调用对象位于作用域链的前端,局部变量(在函数内部用var声明的变量).函数参数及Arguments对象都在函数内的作用域中--这意味着它们隐藏了作用域链更上层的任何同名的属性. 2010年9月14日, ...

  2. JavaScript词法作用域与调用对象

    关于 Javascript 的函数作用域.调用对象和闭包之间的关系很微妙,关于它们的文章已经有很多,但不知道为什么很多新手都难以理解.我就尝试用比较通俗的语言来表达我自己的理解吧. 作用域 Scope ...

  3. JavaScript 词法作用域不完全指北

    在 JavaScript 作用域不完全指北 中,我们介绍了作用域的概念以及 JavaScript 引擎.编译器和作用域的关系.作用域有两种主要的工作模型:词法作用域和动态作用域.其中最为普遍的也是大多 ...

  4. JavaScript词法作用域—你不知道的JavaScript上卷读书笔记(一)

    前段时间在每天往返的地铁上抽空将 <你不知道的JavaScript(上卷)>读了一遍,这本书很多部分写的很是精妙,对于接触前端时间不太久的人来说,就好像是叩开了JavaScript的另一扇 ...

  5. JavaScript的作用域与作用域链

    作用域 作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期.可以说,变量和函数在什么时候可以用,什么时候被摧毁,这都与作用域有关. JavaScript中,变量的作用域有全局 ...

  6. javascript一个作用域案例分析

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. JavaScript闭包之“词法作用域”

    大家应该写过下面类似的代码吧,其实这里我想要表达的是有时候一个方法定义的地方和使用的地方会相隔十万八千里,那方法执行时,它能访问哪些变量,不能访问哪些变量,这个怎么判断呢?这个就是我们这次需要分析的问 ...

  8. 你不知道的Javascript(上卷)读书笔记之二 ---- 词法作用域

    在前一篇文章中,我们把作用域定义为"管理.维护变量的一套规则",接下来是时候来深入讨论一下Js的作用域问题了,首先我们要知道作用域一般有两种主要的工作类型,一种是词法作用域,一种是 ...

  9. 深入理解javascript作用域系列第二篇——词法作用域和动态作用域

    × 目录 [1]词法 [2]动态 前面的话 大多数时候,我们对作用域产生混乱的主要原因是分不清楚应该按照函数位置的嵌套顺序,还是按照函数的调用顺序进行变量查找.再加上this机制的干扰,使得变量查找极 ...

随机推荐

  1. 十四 关于interrupt, interrupted, isInterrupted

    1 判断线程是否是停止状态? interrupt() : interrupt方法用于中断线程.调用该方法的线程的状态为将被置为"中断"状态. 注意:线程中断仅仅是置线程的中断状态位 ...

  2. iframe高度从内向外撑起

    index.html: <div style="height: 200px;"></div> <iframe id="gys" s ...

  3. gil基本介绍

    一 引子 定义: In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple native t ...

  4. django之分页器

    view from django.shortcuts import render,HttpResponse # Create your views here. from app01.models im ...

  5. C++获取本机的ip地址程序

    #include <WinSock2.h> #pragma comment(lib,"ws2_32") //链接到ws2_32动态链接库 class CInitSock ...

  6. Asp.net 的工作原理

     转:http://www.cnblogs.com/linjiancun/archive/2010/09/14/1825662.html 1.1.1          Asp.net 的工作原理 ...

  7. leetcode445

    /** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNo ...

  8. django模版 常用变量

    在request中有很多有用的东西,如下: 获取当前用户: 1 {{ request.user }} 如果登陆就显示内容,不登陆就不显示内容: 1 2 3 4 5 {% if request.user ...

  9. “数据提供程序或其他服务返回 E_FAIL 状态”

    “数据提供程序或其他服务返回 E_FAIL 状态” 的问题 ADO 连接SQL SERVER

  10. python:窗口化和制作图形

    #圆 from tkinter import * canvas = Canvas(width=800, height=600, bg='yellow')#声明窗口属性 canvas.pack(expa ...