菜鸟学习微信小程序之文件作用域

本文介绍了JavaScript中文件作用域的概念,即在一个文件中声明的变量和函数仅在该文件内有效,不同文件间可定义同名变量而互不影响。此外还探讨了如何通过全局函数getApp()获取应用实例及全局数据的设置与使用。最后,文章讲解了模块化的实现方式,并提供了具体示例。

文件作用域

在javaScript文件中声明的变量和函数只在该文件中有效;不同的文件中可以生命相同的名字的变量和函数,不会相互影响。
通过全局函数getApp() 可以获取全局的应用实列,如果需要全局的数据可以在app() 中设置,如:

//app.js
app({
    globalData:1
})
// a.js
// The localValue can only be used in file a.js.
var localValue = 'a'
// Get the app instance.
var app = getApp()
// Get the global data and change it.
app.globalData++
// b.js
// You can redefine localValue in file b.js, without interference with the localValue in a.js.
var localValue = 'b'
// If a.js it run before b.js, now the globalData shoule be 2.
console.log(getApp().globalData)

模块化

可以将一些公共的代码抽离成为一个单独的js文件,作为一个模块化。模块化只有通过module.exports 或者 exports 才能对外暴露接口。
需要注意的是:

  • wxportsmodule.exports 的一个引用,因此在模块化里边随意更改exports 的指向会造成未知的错误。所以更推荐开发者采用module.exports 来暴露模块接口,除非你已经清晰知道这两者的关系。
  • 小程序目前不支持直接引入node_modules,开发者需要使用到node_modules 时候建议拷贝出相关的代码到小程序的目录中
//commont.js
function sayHello(name)
{
    console.log('------  hello    ' + name +'=====');
}
module.exports.sayHello = sayHello;
//index.js

var common = require('../commont/commont.js');
Page({
    //加载视图的时候
  onLoad:function (){
   //调用
    common.sayHello('dqk');
})

控制台输出:

这里写图片描述

提示

require 暂时不支持绝对路径

当然可以!以下是一份系统学习 Python 的完整方案,适合从零基础到进阶开发者的路径规划。该方案涵盖了学习目标、学习内容、学习顺序、推荐资源以及实践建议。 --- ### 🐍 Python 系统学习方案 #### 一、学习目标 掌握 Python 编程语言的核心语法与高级特性,具备使用 Python 进行 Web 开发、数据分析、自动化脚本、爬虫、甚至人工智能项目开发的能力。 --- #### 二、学习阶段划分(共5个阶段) --- ### ✅ 阶段一:Python 基础语法(1-2周) **目标**:掌握基本语法和编程思维。 **学习内容**: - 变量与数据类型(int, float, str, bool) - 运算符与表达式 - 控制结构(if/elif/else, for, while) - 字符串操作 - 列表、元组、字典、集合 - 函数定义与调用(参数、返回值、作用域) - 异常处理(try-except) - 文件读写(txt, csv) **练习项目**: - 计算器程序 - 学生成绩管理系统(控制台版) - 猜数字小游戏 **推荐资源**: - 《Python Crash Course》(中文名《Python编程:从入门到实践》) - 官方文档:https://docs.python.org/zh-cn/3/ - 菜鸟教程 Python 入门:https://www.runoob.com/python/python-tutorial.html ```python # 示例:猜数字小游戏 import random number = random.randint(1, 100) guess = None while guess != number: guess = int(input("猜一个1到100之间的数字: ")) if guess < number: print("太小了!") elif guess > number: print("太大了!") print("恭喜你猜对了!") ``` --- ### ✅ 阶段二:面向对象编程与模块化(1周) **目标**:理解类与对象,学会组织代码结构。 **学习内容**: - 类与对象的创建 - 构造函数 `__init__` - 实例方法、类方法、静态方法 - 封装、继承、多态 - 模块与包的导入(import) - `__name__ == '__main__'` 的作用 - 使用标准库(如 os, sys, datetime, json) **练习项目**: - 图书管理系统(OOP 版) - 银行账户类设计 ```python # 示例:银行账户类 class BankAccount: def __init__(self, owner, balance=0): self.owner = owner self.balance = balance def deposit(self, amount): self.balance += amount print(f"存款 {amount},余额: {self.balance}") def withdraw(self, amount): if amount <= self.balance: self.balance -= amount print(f"取款 {amount},余额: {self.balance}") else: print("余额不足") # 使用示例 acc = BankAccount("张三", 1000) acc.deposit(500) acc.withdraw(200) ``` --- ### ✅ 阶段三:进阶主题与常用库(2-3周) **目标**:提升编程能力,掌握实际开发中常用的工具。 **学习内容**: - 迭代器与生成器 - 装饰器(@property, @staticmethod 等) - 上下文管理器(with 语句) - 正则表达式(re 模块) - 时间处理(datetime) - 数据处理(csv, json) - 第三方库安装与使用(pip) **重点第三方库**: - `requests`:发送 HTTP 请求 - `beautifulsoup4`:网页解析 - `pandas`:数据处理 - `matplotlib` / `seaborn`:数据可视化 - `openpyxl` / `xlrd`:操作 Excel 文件 **练习项目**: - 天气查询脚本(调用 API) - 简易网页爬虫(爬取新闻标题) - CSV 数据分析(统计销售数据) ```python # 示例:使用 requests 获取网页内容 import requests response = requests.get("https://httpbin.org/json") if response.status_code == 200: data = response.json() print(data['slideshow']['title']) else: print("请求失败") ``` --- ### ✅ 阶段四:实战方向选择(3-6周) 根据兴趣选择一个或多个方向深入学习。 #### 方向1:Web 开发(推荐框架 Flask/Django) - 学习 Flask 或 Django - 路由、模板、表单处理 - 数据库集成(SQLite/MySQL) - 用户认证 - RESTful API 开发 **项目**:博客系统、待办事项应用 #### 方向2:数据处理与分析 - 深入学习 Pandas、NumPy - 数据清洗、聚合、透视 - Matplotlib/Seaborn 可视化 - Jupyter Notebook 使用 **项目**:股票价格趋势分析、学生成绩可视化 #### 方向3:网络爬虫 - Scrapy 框架 - 反爬机制应对(headers, cookies, 代理) - 数据存储(数据库 or 文件) **项目**:豆瓣电影 Top250 爬取并分析 #### 方向4:自动化与脚本 - 自动化办公(Excel/PDF 处理) - 定时任务(schedule 库) - 发送邮件、微信消息 **项目**:自动发送日报邮件 --- ### ✅ 阶段五:项目整合与工程化(持续进行) **目标**:完成综合性项目,掌握软件工程规范。 **学习内容**: - Git 版本控制(GitHub/Gitee) - 代码规范(PEP8) - 单元测试(unittest / pytest) - 日志记录(logging) - 虚拟环境(venv / pipenv / conda) - 项目打包与发布(setuptools) **综合项目建议**: - 个人博客网站(Flask + SQLite + Bootstrap) - 数据分析平台(爬虫 + Pandas + 可视化) - 自动化运维工具集 --- #### 三、每日学习建议(参考) | 时间 | 内容 | |------|------| | 30分钟 | 复习昨日内容 | | 60分钟 | 学习新知识点 | | 60分钟 | 动手写代码练习 | | 30分钟 | 查阅资料/看视频补充 | | 30分钟 | 整理笔记或提交 GitHub | --- #### 四、推荐学习路线图(时间线) | 周数 | 主题 | |------|------| | 第1周 | 基础语法入门 | | 第2周 | 控制结构与函数 | | 第3周 | 数据结构与文件操作 | | 第4周 | 面向对象编程 | | 第5周 | 常用标准库与第三方库 | | 第6-7周 | 爬虫或数据分析实战 | | 第8-9周 | Web 开发或自动化脚本 | | 第10周起 | 综合项目开发 + GitHub 托管 | --- #### 五、保持进步的小贴士 - 每天坚持写代码,哪怕只有 20 行。 - 多动手做项目,不要只看不练。 - 遇到问题善用搜索引擎(Google / Stack Overflow)。 - 加入 Python 社区(如掘金、优快云、知乎、Reddit r/learnpython)。 - 定期回顾并重构旧代码,提升可读性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值