JavaScript强化
前端小组第三次培训2023/11/4
基本格式
JavaScript
不同于Python
语言,它有括号,每行语句后要加分号。
注:所有的符号一律用英文格式的符号,中文格式的符号会报错
如下是实现相同功能两者代码的区别:
def bubble_sort(nums: list[int]): |
function bubbleSort(nums) { |
Python
主要靠缩进来控制代码结构和作用域,JavaScript
则通过大括号{}
控制。
对于括号,如()
[]
{}
,都要成对出现。不然会报语法错误。
{}代码块与作用域
每个变量/常量都有其作用域与生命周期
页面全局变量
页面全局变量即在页面函数Page()
中传入的页面对象
中的data对象
中的变量,它们的作用域
为当前页面
,也就是说只能
在本页面中可以访问到,除非将其作为页面参数
传递到下一页面,生命周期
伴随此页面的生成与销毁(切换跳转到另一个页面并不算页面的销毁,页面的切换与跳转依靠栈实现,所有的数据仍在栈
中)。
关于Page()
函数该传入什么参数,详见开发文档框架接口 / 页面 / Page (qq.com)
示例代码
Page({ |
代码解释
代码中,函数Page()
中()
包裹的{}
即为页面对象
,页面对象
包含了页面全局变量data对象
与名为voidfunc
的空函数,各字段用,
隔开,data对象
中包含了名为num
值为7410
、名为count
值为0
、名为str
值为A string.
的三个页面全局变量,且各字段用,
隔开。
局部变量
在函数代码块
中声明的变量我们称其为局部变量
,局部变量的生命周期
由声明方式
决定,作用域
由代码块{}
决定。
函数体
function() { //此{}内即为函数体 |
var与let
由var
关键字声明的变量在本函数体内
可见。
由let
关键字声明的变量在本代码块
,即{}内
可见。
示例代码
function() { |
运行结果
10 |
打印a、b、d正常,但打印c报错(引用错误,c未定义),因为let
关键字声明的变量只在if后的{}内可见
,且生命周期只在{}内
。
同时,上级代码块{}
中声明的变量在下级代码块{}
中可见
,上述代码中if代码块
中仍可打印a、b。
对象(Object)
对象的概念详见JS入门与函数、数据绑定 | whaleghostの小窝的对象部分,此处不再赘述。
对象由{}
进行包裹,但此处的{}
并不算代码块,代码块一般指函数/方法中的{}
。
对象内包含若干字段
,字段后接:
其后跟值or函数/方法
,且每个字段声明结束
后都要加,
。
示例代码
Page({ //匿名对象 |
this—当前对象的引用
数组(Array)的基本操作
数组的概念详见JS入门与函数、数据绑定 | whaleghostの小窝的数组部分,此处不再赘述。
数组由[]
包裹,各个元素间用,
隔开。
数组元素访问
数组的下标
从0
开始,0表示第1个元素,1表示第2个元素,以此类推。
下标 | 位序 |
---|---|
0 | 1 |
1 | 2 |
2 | 3 |
3 | 4 |
4 | 5 |
如果要访问第2个元素,则参考以下代码
示例代码
let arr = [1,"Bonjour",5,true,3.14]; |
运行结果
Bonjour |
常见内置函数/方法
push()
将一个或多个元素添加到数组的末尾,并返回新数组的长度。
示例代码
let arr = [1,2,3,4]; |
运行结果
[1,2,3,4,5] |
pop()
删除数组的最后一个元素,并返回被删除的元素。
示例代码
let arr = [1,2,3,4]; |
运行结果
[1,2,3] |
unshift()
将一个或多个元素添加到数组的开头,并返回新数组的长度。
注:不推荐使用,时间复杂度为O(n),性能开销极大。
示例代码
let arr = [1,2,3,4]; |
运行结果
[0,1,2,3,4] |
shift()
删除数组的第一个元素,并返回被删除的元素。
注:不推荐使用,时间复杂度为O(n),性能开销极大。
示例代码
let arr = [1,2,3,4]; |
运行结果
[2,3,4] |