博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js随笔-变量作用域
阅读量:5011 次
发布时间:2019-06-12

本文共 789 字,大约阅读时间需要 2 分钟。

1.函数中定义的变量只在函数中起作用,所以两个函数定义相同的变量互不影响

function fun(){  var i=0}console.log(i);//i is not defined

2. 函数中内嵌函数时,内部的函数可以访问外部函数的变量,外部函数则不能访问内部的变量

function fun(){  var i=0;  function fun2(){     var j=1;     console.log(i);  }  fun2();}fun();//0

  

function fun(){  var i=0;  console.log(j)  function fun2(){     var j=1;     console.log(i);  }  fun2();}fun();//j is not defined

3.当内部函数与外部函数定义同样的变量的时候,内部函数会把外部函数的变量覆盖掉,所以变量查找,都会先在当前作用域中查找,如果找不到会不停的向上查找,最后如果在全局作用域中也没有找到,则报ReferenceError错误。

4.因为js会提升变量声明,不会提升变量赋值,因此在变量声明前使用变量也不会报错,因此最好在函数内部首先申明所有变量

5.减少命名冲突的办法,是把所有的变量和方法都绑定到自己的全局变量上

// 唯一的全局变量MYAPP:var MYAPP = {};// 其他变量:MYAPP.name = 'myapp';MYAPP.version = 1.0;// 其他函数:MYAPP.foo = function () {    return 'foo';};

6.let可以声明一个块级作用域,const可以定义常量  

转载于:https://www.cnblogs.com/Anne3/p/7110584.html

你可能感兴趣的文章
Path元素
查看>>
php_soap扩展应用
查看>>
第二百三十一节,Bootstrap 介绍
查看>>
vi/vim 三种模式的操作
查看>>
JAVA面向对象三大特性总结
查看>>
guid
查看>>
Python中出现“TabError: inconsistent use of tabs and spaces in indentation”问题的解决
查看>>
ajax请求
查看>>
js学习总结----DOM增删改和应用
查看>>
希尔伯特矩阵(Hilbert matrix)
查看>>
(20)sopel算法
查看>>
学习总结 javascript 闭包
查看>>
实验吧一个小坑注入
查看>>
【 D3.js 高级系列 — 8.0 】 打标
查看>>
Mac必备软件推荐
查看>>
Android Gson深入分析
查看>>
display:flow-root
查看>>
判读字符串是否为空的全局宏-分享
查看>>
iOS中Block的基础用法
查看>>
mac 终端 使用ftp命令
查看>>