JavaScript变量的特殊情况

简介: JavaScript变量的特殊情况
let num= 20 ;
function fn(){
num= 10 ; //局部变量来看,强烈不允许的书写
}
fn ();
cosole. log(num);
function fun(x,y){
//形参可以看做是函数的局部变量
cosole.log(x);
}
fun(1,2);
console.log(x)   //错误的

有一种特殊情况是全局变量是那种?我们提倡吗?

➢局部变量或者块级变量没有let声明直接赋值的当全局变量看,我们强烈不提倡。

➢还有一种特殊情况,函数内部的形参可以当做局部变量看。

变量的访问原则

●只要是代码,就至少有一个作用域

●写在函数内部的局部作用域

●如果函数中还有函数,那么在这个作用域中就又可以诞生一个作用域

●访问原则:在能够访问到的情况下先局部,局部没有在找全局


案例一:

function f1() {
       let num= 123
       function f2() {
             console.log( num )
        }
       f2()
}
let num = 456
f1()

结果是多少呢?

结果是123。

案例二:

let a = 1;
function fn1(){
       let a = 2 ;
       let b = '22'
       fn2()
       function fn2 () {
              let a = 3;
              fn3();
              function fn3 (){
              let a =4
              console.log( )     //a的值
              console.log()     //b的值
           }
      }
}

a为4,b为22

谢谢大家阅读,欢迎评论区讨论。

相关文章
|
1月前
|
JavaScript 前端开发
js变量的作用域、作用域链、数据类型和转换应用案例
【4月更文挑战第27天】JavaScript 中变量有全局和局部作用域,全局变量在所有地方可访问,局部变量只限其定义的代码块。作用域链允许变量在当前块未定义时向上搜索父级作用域。语言支持多种数据类型,如字符串、数字、布尔值,可通过 `typeof` 检查类型。转换数据类型用 `parseInt` 或 `parseFloat`,将字符串转为数值。
22 1
|
1月前
|
JavaScript
变量和函数提升(js的问题)
变量和函数提升(js的问题)
|
1月前
|
前端开发 测试技术
测Nuxt.js入坑,配置dev、test、pro三种环境的变量env
先下载一个cross-env模块,比较好控制环境
49 5
|
1月前
|
存储 JavaScript 前端开发
【JavaScript技术专栏】JavaScript基础入门:变量、数据类型与运算符
【4月更文挑战第30天】本文介绍了JavaScript的基础知识,包括变量(var、let、const)、数据类型(Number、String、Boolean、Undefined、Null及Object、Array)和运算符(算术、赋值、比较、逻辑)。通过实例展示了如何声明变量、操作数据类型以及使用运算符执行数学和逻辑运算。了解这些基础知识对初学者至关重要,是进阶学习JavaScript的关键。
|
1天前
|
自然语言处理 JavaScript 前端开发
JavaScript闭包是函数访问外部作用域变量的能力体现,它用于封装私有变量、持久化状态、避免全局污染和处理异步操作。
【6月更文挑战第25天】JavaScript闭包是函数访问外部作用域变量的能力体现,它用于封装私有变量、持久化状态、避免全局污染和处理异步操作。闭包基于作用域链和垃圾回收机制,允许函数记住其定义时的环境。例如,`createCounter`函数返回的内部函数能访问并更新`count`,每次调用`counter()`计数器递增,展示了闭包维持状态的特性。
15 5
|
3天前
|
设计模式 JavaScript 前端开发
JS 代码变量和函数的正确写法大分享
在开发中,变量名,函数名一般要做到清晰明了,尽量做到看名字就能让人知道你的意图,所以变量和函数命名是挺重要
11 2
|
4天前
|
JavaScript 前端开发
JavaScript语法关键点:变量用`var`、`let`、`const`声明
【6月更文挑战第22天】JavaScript语法关键点:变量用`var`、`let`、`const`声明;七种数据类型包括`Number`、`String`、`Boolean`、`Null`、`Undefined`、`Symbol`和`Object`;运算符如算术、比较、逻辑和赋值;流程控制有`if...else`、`switch`和各种循环。了解这些是JS编程的基础。
20 3
|
7天前
|
设计模式 JavaScript 前端开发
JS 代码中变量和函数的正确写法总结
**代码规范与最佳实践摘要** 1. 使用可读性强的变量名,如`currentDate`代替`yyyymmdstr`。 2. 对同一类型变量使用相似命名,如`getUser()`代替`getUserInfo()`。 3. 变量名应具有描述性,避免使用难以理解的数字,如`MILLISECONDS_IN_A_DAY`代替`86400000`。
21 2
|
27天前
|
JavaScript
JS判断变量是不是数组?方法大全!
JS判断变量是不是数组?方法大全!
|
1月前
|
JavaScript 前端开发
JavaScript 作用域详解:如何影响变量生命周期
JavaScript 作用域详解:如何影响变量生命周期