func()
会出现local variable ‘x’ referenced before assignment的错误是因为全局
变量
与局部
变量
同名时,当你想在函数内部中修改外部
变量
的值,python首先会认为该
变量
是局部
变量
,函数内部没有定义局部
变量
a=value,而内部作用域想要改变外部作用域的值,就要用到global关键词。
a = 13
def func():
为什么全局
变量
在
赋值
之
前
调用会
报错
参考文献 https://www.cnblogs.com/highshao/p/5442460.html
声明:本文且是作者写给自己看的不公开,如若你看到了,文章里可能会有一些内容会误导你(因为作者还是个小菜鸟)
一、在声明局部
变量
前
,调用局部
变量
返回undefind
function f() {
alert(a);
var a = 3;
1.ts是由微软
开发
的开源变成
语言
(
vscode
和ts都是微软提供的,vs里面很多ts的适配,里面有很多ts的插件,让写法更佳舒适)
2.ts是js的超集(超集的理解:ts在js之上,包含js所有最新的语法特性,包含es6、es7所对应的写法)
3.ts是
开发
大型应用的基石(为什么要学ts?很多大型项目都是基于ts来
开发
的,比如
vscode
,vue 3.0,react;越来越多的特性都偏向ts,大型应用基本都用ts语法做支持)
4.ts提供了更丰富的语法
提示
5.ts在
代码存在语法错误(错误并不影响项目的编译运行),并且校验功能是开启状态就会出现下滑红线的
报错
。1)
关闭
校验2) 逐个
解决
语法错误类型“
xxx
”不存在“
xxx
”属性
解决
思路:对对应类型进行声明时增加一个any属性
具体例子:类型"res"不存在"data"属性
解决
方法:将原本的let res ->let res:any已声明"
xxx
",但从未读取其值
解决
思路:删除或注释掉
报错
变量
(该
变量
未被
使用
)类型"
xxx
"的参数不能
赋值
给类型"
xxx
"参数
1、let所声明的
变量
,只在let命令所在的代码块内有效。
2、不存在
变量
提升:所声明的
变量
一定要在声明后
使用
,否则
报错
。
一定要先声明,再去
使用
。let x=x;这样就是错误的
ES6明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的
变量
,从一开始就形成了封闭作用域。凡是在声明之
前
就
使用
这些
变量
,就会
报错
。
3、不允许重复声明:let不允许在相同作用域内...
1、函数内部的
变量
名如果第一次出现,且出现在=
前
面,即被视为定义一个局部
变量
,不管全局域中有没有用到该
变量
名,函数中
使用
的将是局部
变量
,例如:
num = 100
def func():
num = 123
print(num)
func()输出:
说明函数中定义的num是一个局部
变量
,会将全局
变量
覆盖。再例如:
num = 100
def func(