初识javascript与作用域
程序员文章站
2024-01-04 11:59:16
...
javasecipt成员简介
- 数据与操作是jsvascript代码中的2个主要成员
- 程序:描述任务的操作流程,默认是”顺序执行”
- 顺序执行: 计算机中专业的叫法”同步执行”
- 同步执行: 代码执行顺序与书写顺序一致
数据
- 字面量:直接可以看到值例如
10,20
- 变量:实现数据复用,且值可以随时变化,使用变量第一步:变量声明,第二步:执行, 赋值(第一次叫:初始化)例如下列代码
let a;
let b;
a = 10;
b = 20;
操作
- 代码块一段由”大括号 {…}”包裹的代码,例如下列代码
{
a + b;
}
- 函数:实现操作复用,使用function声明,函数名(参数)调用
例如下列代码定义了函数:
function sum(a, b) {
return a + b;
// 下面这条语句永不执行,因为上面return
// console.log(123);
}
作用域
- 块作用域:变量只在当前块中可以访问例如下列代码
{
let a = 123;
console.log(a);
}
console.log(a); //错误,在外部无法访问块中得变量
上述代码中,第一个console.log(a)
在块中,执行结果为123
第二个’console.log(a)’在块之后,无法访问,执行结果为undefined
- 2.函数作用域:变量只在函数中可见,例如下列代码
function sum(a, b) {
// 在函数中声明一个变量
// 私有变量
let res = a + b;
// 函数内部声明的成员可以内部访问
console.log(res);
}
sum(30, 50);
// 但是在函数外部访问不到
console.log(res);
上述代码中,第一个console.log(res)
在函数中,可以正常访问a+b
第二个’console.log(res)’在函数之外,无法访问,执行结果为undefined
- 3.全局作用域:在块/函数内部声明的成员, 仅限内部使用, 外部不可见
let qq = "498668472";
// ! 全局成员(变量/函数)在代码的任何地方,都是可用的
{
console.log(qq);
}
{
{
{
console.log(qq);
}
}
}
function f1() {
console.log(qq);
}
f1();
function f2() {
return function () {
return function () {
console.log(qq);
};
};
}
// 因为函数嵌套了三层,所以调用了三次
f2()()();
上述代码中所有位置的console.log(qq)
都可以正常访问qq
,输入结果都是498668472