博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JaveScript变量作用域说明
阅读量:6696 次
发布时间:2019-06-25

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

JaveScript变量作用域说明

   
一:将var类型的变量视为变量,不带var类型的变量视为常量(但是注意php的常量不可以重新定义,而javascript中不带var类型的变量可以重新定义)
1:关于变量:
①全局变量:整个页面包括函数内部都可以使用(和PHP不同,PHP全局变量在函数内部中获取不到,只是在函数外部的整个页面中有效)
②局部变量:只在函数内部使用,外部接受不到。如果函数内外有一样名称的变量,视为两个不相干的变量。(这个和PHP一样)
2:关于常量:
①常量作用范围整个页面,包括函数内部(和PHP一样)
②若在函数内部定义了常量,如果不调用此函数那么外部得不到此常量的值,如果调用了此函数,函数外部也可以获得该常量的值(和PHP一样)
例子: 

scope = "global";                      

function checkscope2(){
    scope= "local";
    myscope = 'local'; }
checkscope2();
console.log(scope);//"local"
console.log(myscope);//"local"

 

scope = "global";                      

function checkscope2(){
    var  scope= "local";
    myscope = 'local'; }
checkscope2();
console.log(scope);//“global"
console.log(myscope);//"local"

 

3:JavaScript中一个特殊的地方:   
变量的预定义特效
JavaScript没有块级作用域,函数中声明的变量在整个函数中都是有定义的,具体例子如下:
[javascript]  
  1.   
  2. var scope = "global";  
  3. function checkScope() {  
  4.     document.write(scope);  //语句4.1  
  5.     var scope = "local";    //语句4.2  
  6.     document.write(scope);  
  7. }  
  8. checkScope();           //输出"undefined local"  
  9.  
  10. 由于语句4.2(var scope = "local";)声明的变量在整个checkScope函数作用域内都有效,因此在语句4.1(document.write(scope); )执行的时scope引用的是局部变量,而此时局部变量scope尚未定义,所以输出”undefined”。因此一个好的编程习惯是将所有的变量声明集中起来放在函数的开头。
  11. 分解后相当于:
  12. function checkScope() {  
  13.     var scope;
  14.     document.write(scope);  //语句4.1 undefined 
  15.     var scope = "local";    //语句4.2  
  16.     document.write(scope);  //"local"
  17. }  
  18. 补充一点:声明了变量但未赋值,则其类型和其值都是undefined  ;    但如果为声明变量就调用则会报错

转载地址:http://gwvoo.baihongyu.com/

你可能感兴趣的文章
11.10 (下午)开课二个月零六天(ajax验证用户名,ajax调数据库)
查看>>
PXC 避免加入集群时发生SST
查看>>
JS基础语法
查看>>
python 的一些tip 02
查看>>
int转字符串 stringstream
查看>>
pip升级时报错--- No module named 'pip._internal'
查看>>
大白话搞懂什么是同步/异步/阻塞/非阻塞
查看>>
Fiddler抓包工具总结二(转自小坦克)
查看>>
JSP----动态网页开发的基础
查看>>
CentOS 6.5下部署日志服务器 Rsyslog+LogAnalyzer+MySQL
查看>>
[TFS]安装/升级TFS2012
查看>>
HLG 1408 漩涡
查看>>
径向渐变旋转的圆球
查看>>
LoadRunner使用之变量参数化
查看>>
asp.net运行原理
查看>>
canvas实现芝麻信用评分效果
查看>>
053(五十三)
查看>>
【Spark篇】---Spark中yarn模式两种提交任务方式
查看>>
最短路专题解题报告
查看>>
什么是FSO
查看>>