javaScript变量之作用域

【博弈论】势博弈(potential game)、EPG以及最佳响应、Nash均衡和帕累托(pareto)最优的理解 文章目录前言一、Potential game二、Nash均衡和Pareto-optimal(帕累托最优)1.Nash 均衡2.Pareto最优三、Best response(最佳响应)四、Exact potential game(EPG)1.合作-傀儡博弈2.合作博弈3.傀儡博弈4.自激博弈5.双边对称交互博弈使用理解 前言 本文主要详细讲解potential game的概念以及Exact potential game 的定义和分类,以及这么博弈方法是如何在论文中引入并使用的,本文仅是对自己在该模块 阅读详情

javascript变量的作用域一直都是js程序员最困扰的难点之一。先通过概要来过一遍涉及到的知识。

一、全局变量

     全局变量包含:1.在函数体外定义的变量

                                  2.在函数体内部定义的无var变量(很多人很容易的误认为在函数体内定义的所有变量都是局部变量,这里需特变注意!)

     全局变量可以在任何位置被调用。

二、局部变量

        局部变量包含:1.在函数内部使用Var声明的变量

                                    2.函数的参数变量

        局部变量只能在当前函数体内部被调用。

三、优先级(符合就近原则)

        1.局部变量高于同名全局变量

         2.参数变量高于全局变量

         3.局部变量高于同名参数变量

四、特性

        1.忽略块级作用域

        2.全局变量是全局对象的属性

        3.局部变量时调用对象的属性

        4.作用域链:1)内层函数可访问外层函数局部变量

                               2)外层函数不能访问内层函数局部变量

        5.生命周期:1)全局变量:除非被显示删除,否则一直存在

                               2)局部变量:自声明起至函数运行完毕或被显示删除

                               3)回收机制:标志清楚+引用计数

接下来我们直接上代码,通过图示分析代码切身体会全局变量和局部变量的作用域。

var a=8; 
var b=true; 
function test(){ 
    alert(a);  //undefined
    alert(b);  //true
    b=false; 
    alert(b);  //false
    var a=20; 
    alert(a/2); //10
    alert(++Math.PI); //4.14159……
    alert(Math.PI++); //3.14159……
} 
test();
问题:a、b都是全局变量,但是第一个alert的结果却是defined,第二个的结果是true?

换句话说,b可以找到外面定义的全局变量,为什么a不能?

前面的概要中提到,局部变量的优先级大于全局变量。当js引擎在当前作用域(这个例子指test()函数体内)找不到此变量时,它就会往外但包含当前作用域的作用域找。

在这里我简单阐述一下关于js的作用域链的基本原理:

javascript需要查询一个变量时,首先会查找作用域链的第一个对象,如果第一个对象没有定义,则继续查找第二个对象……依次类推。

存在一个问题:当前的作用域中这个变量存在吗?

javascript是一种解释型语言,基本分为两个阶段:编译器与运行期。

在编译阶段,它是用函数来划分作用域,然后逐层为其以var声明的变量和函数的定义开辟内存空间,然后再对var变量进行特殊处理,统一赋初始值为undefined。

下面通过图片来看看以上例子编译后各个变量与作用域的关系:

分析:由上图我们知道当前网页拥有两个a,一个b,一个test函数。如果在运行期用到除此以外的东西,如X函数或y变量啦,都会报未定义错误(用eval等非正常手段生成变量与函数的情况除外),此外,它们最多出现未赋值警告。

javascript的运行期是在为var变量与函数定义分配空间后立即执行,并且是逐行往下执行的。

  • 第1行它为外围作用域的a赋值为100
  • 第2行它为外围作用域的b赋值为true
  • 第3行进行test的作用域
  • 第4行就立即调用test作用域的a,这时它还没有来得及赋值呢!不过它已经声明过了,因此默认为其赋值为undefined(在预编译阶段,见图),于是alert为undefined
  • 第5行就调用b时,JS引擎发现test的作用域内没有b,往test作用域外找,发现b了,而b在第二行就赋值为true,于是alert为true。
  • 第6行为一个赋值操作,把外围的b变量改赋为false。于是到第7行时,alert为false。剩下的代码同理。
讲到这里可能还是有小伙伴不能理解为什么有两个a,而只有一个b,下面再来个小测试:

以上例子的代码的第6行

  b=false;
改为:
  var b=false;
结果:第5行:alert(b)也变成了undefined

我们再来看看代码修改后编译出来的各个变量与作用域的关系:


这下恍然大悟了吧!在编译阶段,js引擎并不是和运行时一样按代码由第一行往下编译的,而是按var变量与函数定义分配空间,然后按顺序执行。在alert(a)、alert(b)时并未赋值,但是在编译时,在test()函数中已经声明过了,故结果为undefined。

掌握编译期为var变量与函数定义分配空间这一原理后,许多问题就会迎刃而解。

最后小结一下:

1.JavaScript的变量作用域是基于其特有的作用域链的。
2.函数体内部,局部变量的优先级比同名的全局变量高。
3.javascript没有块级作用域(在javascript中,函数不仅在块中有定义,在整个函数都有定义。)
4.函数中声明的变量在整个函数中都有定义。
(如果函数内部有定义变量,即使在定义之前输出也会先执行后面定义语句,然后判断输出结果.声明的变量在整个函数中都是起作用的。)
5.未使用var关键字定义的变量都是全局变量。
6.全局变量都是window对象的属性。



      


python爬虫抖音 个人资料 仅供学习参考 切勿用于商业 本文仅供学习参考 切勿用于商业 本次爬取使用fiddler+模拟器(下载抖音APP)+pycharm 1. 下载最新版本的fiddler(自行百度下载),以及相关配置 1.1.依次点击,菜单栏-Tools-Options-HTTPS,如图1红框打钩,HTTPS旁边Connections配置,如图2红框打钩 1.2.再次点击HTTPS栏,点击Actions选择第二个…to ... 阅读详情

相关推荐

告别Modern Standby噩梦:Win11睡眠断网冻结的根源剖析与S3睡眠回归实战

本文深入剖析了Windows 11中Modern Standby(现代待机)模式导致睡眠后断网、系统冻结等问题的根源,指出其与硬件驱动、后台活动的兼容性矛盾。文章提供了通过修改注册表键值强制系统回归稳定S3睡眠状态的详细实战步骤,帮助用户彻底解决睡眠故障,实现可靠的远程访问与挂机任务。

weixin_29210727的博客 606

JS作用域——三个黄金法则

词法作用域 VS 动态作用域 //在JS里,动态作用域和this机制息息相关。它的作用域诗是在运行的过程中确定的 var a = 1; function foo() { var a = 2; console.log( this.a ); } foo() //1 从上面的代码,我们可以看出: foo中打印a的值不是由写代码的位置确定的,而是取决于foo执行的位置。 ...

singsingasong 618

聊一聊固态电池和钠离子电池新技术

总之,固态电池是一种“安全又高效的未来电池”,它的好处非常明显,但目前还处于研发阶段,离普及还有一段距离。未来,这两种技术可能会与锂离子电池并存,分别满足不同的市场需求。我尝试用最通俗易懂的语言将复杂的技术讲给大家听。钠离子电池和锂离子电池的工作原理很相似,但它用的是。固态电池和钠离子电池是两种正在研发和推广的。,它们有潜力解决现有锂离子电池的部分缺点。,而不是锂(Li)。

weixin_33324696的博客 3333

[js] 在函数中调用变量的原则:就近原则

函数中有这个变量 就用函数自己的 函数中没有这个变量 就去父级函数程序中找 父级函数程序中有 就用父级函数程序的 父级函数程序中没有 就去 全局作用域变量中找 全局作用域变量中有 就用全局作用域变量的 都没有 执行结果是 是 报错 绝对不会 调用 后代程序中的变量 // var int = '北京'; function fun2(){ // var int = 200; function

qq_14993591的博客 392

Aloudata Agent :基于 NoETL 明细语义层的分析决策智能体

这是包括我们在内的一些厂商探索的一个新方向,这种方式先由大模型将自然语言转化为对指标语义层的查询请求(MQL,Metrics Query Language),再由指标平台将指标和维度的查询与计算逻辑转化为准确的 SQL 查询语句。用户查询经大模型语义解析后,将其转换为指标、维度及筛选条件的组合表达,并生成面向指标平台的 MQL,Aloudata CAN 指标平台的语义引擎将 MQL 转换为准确和可执行的查询 SQL,语义引擎内置函数体系与 SQL 解析器,确保语义转换的 100% 准确性。

Aloudata的博客 1664

基于Matlab/Simulink的三相并网逆变器dq阻抗扫频仿真与理论建模实践指南

本文详细介绍了基于Matlab/Simulink的三相并网逆变器dq阻抗扫频仿真与理论建模实践方法。通过搭建仿真模型、设计扰动注入策略和FFT分析,精确提取阻抗特性,有效预测系统稳定性,为新能源并网系统设计提供可靠指导。

gold的博客 775

代码质量-变量的作用域最小化原则与就近原则

代码质量-变量的作用域最小化原则与就近原则 一 变量的作用域 作用域或者可见性(visibility)指的是变量在程序内的可见和引用的范围。作用域可以看作是一种衡量变量的知名度的方法:它的名气有多大?一个作用域很小的变量只能在很小的范围内可见-比如说,循环下标变量只能用于一个循环的小范围内,一个作用域大的变量则在程序的很多地方都是可见的-比如说全局变量。 变量可以只对某一个代码块可见、

sureyonder的专栏 8358

树莓派4B(Raspbian buster系统)安装ROS Melodic(附带网络配置和远程桌面控制说明)

树莓派4B(Raspbian buster系统)安装ROS Melodic(附带网络配置和远程桌面控制说明) 一、硬件准备 二、软件准备 三、安装前的准备工作 四、开始ROS的安装 五、运行小乌龟 由于坑比较多希望大家安装的时候尽量不要跳步进行,一定要等每一步运行成功了再往下进行。 一、硬件准备 1、树莓派4B一个 2、SD卡一张(最好是16G以上的我的是用的64G的) 3、显示器、键盘、鼠标 二、软件准备 1、Raspberryimage (写系统使用的) 链接:https://pan.baidu.com

weixin_45315065的博客 1万+

JavaScript基本使用

JavaScript是一种被浏览器解释执行的脚本语言。如果你把浏览器看成是一个操作系统,那么JavaScript就是上面运行的一种编程语言(与c++、java...相似),只不过它采用的是事件驱动的方式,即用户进行某种操作(如按下鼠标、选择菜单等),浏览器就解释javascript然后出相应的响应。JavaScript设计的初衷,是让web页面能够拥有生命力,而不仅仅只是展现,一定程度上这降低了服

渔歌向晚 1966

Xilinx IP核 Block Memory Generator v8.4 的使用

本文主要介绍如何使用并初始化 Xilinx 提供的IP核 Block Memory Generator v8.4`,为了确保成功初始化,还对其进行了一个简单的仿真,更多细节请参考官方手册。

高阶近似的博客 1万+

MoCap 动作捕捉开源库教程

数据通过 tf2 和支持不同 QoS 设置的 /poses 主题直接发布。该软件包最初是为 Crazyswarm 开发的,用于跟踪多达 50 个飞行机器人。

机器人控制与仿真应用 1307

函数作用域

1.函数作用域声明提前 函数作用域内var和function会声明提前 var a = 10 function fun(){ console.log(a)//打印undefined var a = 35 } fun() 在函数作用域中也有声明提前的特性,var和function都提前,所以相当于以下代码 var a = 10 function fun(){ var a console.log(a) a = 35 } fun() 2.函数作用域的就近原则 函数作用域

bo646424926的博客 144

NXP S32k3 MCAL ADC配置

S32K3 配置MCAL ADC

Leon_0125的博客 5072

【JavaScript】JS中变量的作用域

前几天在项目开发过程中发现两个if语句当中定义相同的变量,居然会相互影响。代码大概如下所示: if (1 == 1){ var obj = {name: "hello"}; $("body").click(function () { alert(obj.name) }) } if (2 == 2){ var obj = {name: "Hi"} } 点击事件触发后,发现输出的是Hi。我当时就考虑到应该和JS变量的作用域有关,所以就去学习了一下,并写下

心生的小鱼专栏 847

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

JavaScript---变量作用域

也就是在函数内部声明的变量,在函数外部无法访问,在函数内部,该变量都可以被访问。类似,在块级作用域内声明的常量,仅在该块级作用域内可访问。如果内联 JavaScript 代码创建了新的变量,这些变量会成为。在同一函数内部的顶部声明,那么三者具备相同的作用域”循环等)内声明的变量,仅在该块级作用域内可访问。”,它允许在变量声明之前就使用该变量。,这意味着在块级作用域(如。具备不同的作用域,但它们都。甚至在声明之前也可访问(声明常量,就必须同时进行。

zheshiyangyang的博客 1328

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

JavaScript-变量作用域原理详解-js编码核心

函数可以记住并访问其词法作用域,即使该函数在其词法作用域之外执行本质上是通过作用域链实现的。

插件开发 969

【JavaScript学习笔记8】JS中变量的作用域(面试常考点)

引言 无论是在JS还是在其他编程语言中,变量都有特定的作用域。引入一个叫块级作用域的说就是,任何一对花括号中的语句都属于一个块,在这里面定义的所有变量在代码块外都不可见的。 但是JS与其他编程语言在这方面还是有所差别 这里仅仅简单介绍全局变量与局部变量,详细记录JS中需要注意的变量作用域。 JS中的全局变量 JS中的全局变量指的是:定义在script或者不属于某个函数的变量 例: 上面例子中的n...

RayCongLiang的博客 317

JavaScript 基础篇:细说 js 中的变量和作用域

细说 JS 中的变量和作用域

RQ桑的博客 1118

JavaScript的变量及作用域详解

假如你没去过天安门、故宫、长城相当于你没到过北京。假如你搞不懂JS变量的作用域,相当于你没学过JS。关于JS变量作用域的重要性自己好好悟吧!提示:查看本文章记得看注释哦! JS是一门弱类型(松散型)的语言,这也就是说其天生就与众不同,独领风骚! 在讲解变量作用域之前,我们先来了解一下JS中的变量。JS中的变量与其它语言有很大的不同,由于JS变量拥有松散(不强制)的本质,从而决定了其只是一个在...

高先生的猫 642

Javascript:JS的作用域和变量

文章目录一、根据所在位置进行分类1.全局变量2.局部变量二、生命周期1.全局变量2.局部变量三、作用域链1.定义2.代码Demo3.执行结果 一、根据所在位置进行分类 Javascript的作用域和变量可以按照其所在位置进行分类。 针对作用域,通俗地来说,在标签中和处于外部的==.js==文件中便是全局作用域,处于函数内部的则是局部作用域;而根据作用域进行延申,有以下几种全局变量和局部变量的情况: 1.全局变量 在全局作用域下,函数外部声明的变量 特殊情况下,在函数内不使用var声明的变量也是全局变量(

qjyws的博客 150

js中变量作用域

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js变量作用域</title> </head> <body> </body> <script> var test...

Gaia_qi的博客 451

彻底明白JS变量作用域

JS变量作用域牢记一段句话下面来理解下这段话作用域(以下均摘自javascript高级程序设计)没有块级作用域变量作用域总结参考 牢记一段句话 JS没有块级作用域,只存在作用环境,一个函数就是一个最小的作用环境,一般不在函数作用域里面的那就是在全局作用域中。于是得到,只要在函数以外定义的变量都是全局变量,在函数内部定义的就是只在这个函数作用域中的变量即局部变量。 注意两个点:不加var声明的变量不管在哪里都为全局变量。 2、由于JS不存在块级作用域,对于for和if中定义的变量隶属于函数作用域 下面来理解下

weixin_46146288的博客 515

js,javascript作用域, 全局局部作用域, 全局变量和局部变量, 块级作用域, 作用域链

1.javaScript作用域 2.全局作用域(函数作用域)局部作用域(函数作用域) 3.全局变量和局部变量 4.块级作用域 5.作用域链 </head> <body> <script> //1.javaScript作用域:就是代码名字(变量)在某个范围内起作用和效果, //目的就是为了提高程序的可靠性更重要的是减少命名冲突 //2.js的作用域es6之前:全局作用域局部作用域 ...

weixin_42270374的博客 372

JavaScript变量的作用域介绍

JavaScript变量的作用域介绍

cnds123的专栏 1187

重学js之JavaScript变量、作用域和内存问题

注意: 本文章为 《重学js之JavaScript高级程序设计》系列第四章【变量、作用域和内存问题】。 关于《重学js之JavaScript高级程序设计》是重新回顾js基础的学习。 1. 基本类型和引用类型的值 ES变量包含两种不同数据类型的值:基本类型值和引用类型值。 将一个值赋给变量的时候,解析器必须确定这个值是基本类型还是引用类型 1.1 基本类型值 指的是那些保存在栈内存中的简...

执行上下文的博客 161

JavaScript之变量函数作用域

前言:在此专栏中将会讲到 js 基础性的知识,包括但不仅限 es5、es6。将知识点与实际应用相结合,从理解到开发。每一次学习都有所收获,每一次重温知识点都加深印象,每一次掌握一种新知识都像打开了新世界的大门。希望在自己学习的同时能够帮助更多的人学习和理解。同时也欢迎各位猿友提出宝贵的建议和交流,有不对的地方还请赐教。 1.使用 2.变量 3.函数 4.作用域 一. 开门见山 基本上每种语言的...

hello,是翠花呀 345

JS变量作用域

js作用域介绍

屈帅波的技术博客 2329
上一篇: Javascript变量之变量类型
下一篇: 速来膜拜!20位活跃在Github上的国内技术大牛
freedom1993
博客等级 码龄12年 25粉丝 57原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值