为了账号安全,请及时绑定邮箱和手机立即绑定
3.3 ES6

ES6 的全称是 ECMAScript 6,是 JavaScript 的一个版本。uni-app 支持了绝大部分 ES6 API,同时也支持 ES7 的 await/async。我们需要掌握箭头函数、解构赋值、数组扩展、Promise、module 等知识点。

5. 多数据库支持

MyBatis 可以根据不同的数据库厂商执行不同的语句,这种多厂商的支持是基于配置文件中的 databaseId。

3.1 为什么不支持类的多继承

我相信大家都知道经典的多继承问题,俗称 “钻石继承问题”。我们用反证法,假设 Java/Kotlin 中支持类的多继承,一起来看个例子,对于 A 类中有一个 invoke 方法,B,C 两个类都去继承 A 类,然后 D 类去分别去继承 B,C 类。abstract class A { abstract fun invoke()}class B: A { override fun invoke() = println("B invoke")}class C: A { override fun invoke() = println("C invoke")}class D: B,C {//假设支持类的多继承 override fun invoke() = println("C invoke")// B ? C}那么问题就来了 D 类应该是继承 B 类 invoke 方法,还是 C 类 invoke 方法呢?所以这样类的多继承很容易带来歧义。但是我们知道在开发过程中还是可能遇到多继承的问题,我们一般常用的方法是采用接口多继承方式来解决,因为我们知道在 Java 和 Kotlin 中是支持接口的多继承的。

3. PyCharm 对科学计算支持

Numpy、Matplotlib 与 Pandas支持以上三个基本科学计算库都是支持的,另外需要启用Scientific Mode (View -> Scientific Mode)才能正常显示各种图表,该模式仅在 PyCharm 的专业版中可用。Jupyter Notebook支持Jupyter Notebook,原名IPython Notbook,是IPython的加强网页版,一个开源Web应用程序名字源自Julia、Python 和 R(数据科学的三种开源语言),是一款程序员和科学工作者的编程/文档/笔记/展示软件,.ipynb文件格式是用于计算型叙述的JSON文档格式的正式规范。 在下一小节将详细介绍它的安装与使用R 语言支持此支持可通过 R 插件获得,该插件支持使用 R 语言进行统计计算。

2.2 三大框架支持

我们学习一门新技术会关心它的生命力问题,如果这门技术在较短时间内就要被淘汰,那花费大量的时间学习也是不划算的。TypeScript 能够保持长久生命力的另一个原因,就是统治前端的三大框架对 TypeScript 的支持。Angular 是 TypeScript 最早的支持者,Angular 官方推荐使用 TypeScript 来创建应用。React 虽然经常与 Flow 一起使用,但是对 TypeScript 的支持也很友好。Vue3.0 正式版即将发布,由 TypeScript 编写。从国内的氛围来看,由前端三大框架引领的 TypeScript 热潮已经涌来,很多招聘要求上也都有了 TypeScript 的身影。

4.1 浏览器不支持原生定位接口

有些旧版本的浏览器不支持 HTML5,如 IE 较低版本的浏览器。这时调用定位接口会出现 error 信息,message 字段包含 Browser not Support html5 geolocation 信息。

4. 为什么学习 ES6

ES5 不能满足前端的复杂度,无论是 jQuery 这样的库,还是像 Vue 和 React 这样的框架,都在使用一些降级的方案来解决现有的问题,所以 ES6 的引入就是为了解决 ES5 以前存在的各种问题。另外,ES6 是一个大换血的版本,也是一个分水岭,标志着 JavaScript 向着更高的方向发展。ES6 也是对 ES5 的增强和升级。主流的浏览器都已经全面支持 ES6;行业内较新的前端框架都已经全面使用 ES6 的语法;微信小程序,uni-app 等都是基于 ES6 的语法;从就业出发,现在公司基本都在使用新的语法,增加必备技能获得更好的offer。以上都是学习 ES6 的场景,也是大势所趋。

3.2 判断浏览器是否支持

window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;if(!window.indexedDB){ console.log("你的浏览器不支持IndexedDB");}

1. 多语言支持

Android 应用可以包含特定于文化的字符串,这些字符串将转换为当前语言区域的语言。Android 会根据系统语言区域设置来解析特定于语言和文化的资源。我们可以使用 Android 项目中的资源目录为不同的语言区域提供支持,我们可以提供适合用户的语言和文化的任何资源类型。例如,以下图片显示了一个应用,它按设备的默认 (en_US) 语言区域和西班牙语 (es_ES) 语言区域显示字符串和可绘制资源。要添加对更多语言区域的支持,我们需要在 res/ 内创建额外的目录。每个目录的名称都应遵循以下格式:<resource type>-b+<language code>[+<country code>]例如,values-es-rUS/ 包含适用于语言代码为 es 的语言区域的字符串资源,Android 在运行时根据设备的语言区域设置加载适当的资源。例如:FirstApp/ res/ values/ strings.xml values-es-rUS/ strings.xml英语字符串(默认语言区域),/values/strings.xml:<resources> <string name="hello_world">Hello World!</string></resources>西班牙语字符串(语言区域为 es),/values-es-rUS/strings.xml:<resources> <string name="hello_world">¡Hola Mundo!</string></resources>

3.4 多标题支持

ECharts 3 之后支持在一个实例上配置多个标题组件,方法是在 title 配置项上传入数组,数组项与单个 title 配置相同,示例:1308示例效果:

2. 检测是否支持地理位置

并非所有的浏览器或者硬件设备都支持地理位置功能,所以使用之前需要进行容错判断:if (navigator.geolocation) {//判断地理位置是否支持 //业务代码}else{ x.innerHTML="该浏览器不支持获取地理位置。";}获取地理位置之前需要用户点击同意按钮,因为该功能牵涉到隐私。

PyCharm 支持的 Web 框架

Python 里有很多开发框架用来帮助你轻松创建 Web 应用, 本节主要讲述 PyCharm 支持哪些测试框架,以及相关框架基本介绍。

5.8 添加C/C++支持

本部分会学习如何在 Android Studio 中添加 C/C++ 支持,包括 NDK 及 CMake相关的知识。 Android 应用开发很多都是使用 Java 或 Kotlin 语言,但是对运行效率要求比较高或者对安全性要求比较高的模块,往往会采用 C/C++来编写。通过本部分的学习之后,我们就会了解如何在 Java 中调用 C/C++ 接口。

1. 前言

前面我们对 ES6 进行了介绍,本章来介绍一下配置 ES6 的执行环境,用于学习 ES6。现在市面上的大部分浏览器基本上都已经支持 ES6 的绝大部分语法,但是有些语法需要进行转译,或者在特定的环境中才能运行。其中 Chrome 和 Firefox 浏览器对 ES6 新特性最友好,IE7~11 基本不支持 ES6。

1.2 PyCharm 支持的版本控制工具

PyCharm 支持 以下的版本控制工具 Git、Mercurial、Perforce 与 SubversionGit 是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。作为一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。适合分布式开发;速度快、灵活,分支之间可以任意切换;离线工作,不影响本地代码编写,等有网络连接以后可以再上传代码,并且在本地可以根据不同的需要,在本地新建自己的分支。Tips: Git 是当下最为流行的版本控制工具,将在下一小节具体介绍相关功能。Mercurial 也是一种分布式版本控制系统,采用 Python 语言实现,易于学习和使用,扩展性强。其是基于 GNU General Public License (GPL) 授权的开源项目。因为它是用高级语言编写的,所以你可以用 Python 函数编写Mercurial 扩展。在PyCharm 里使用Mercurial 要提前安装, 目前只支持 Python 2.7 版本,如果你当前是3.0 环境,需要事先准备2.7 虚拟环境。更多细节参考 。SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统。属于集中式的版本管理系统。用于多个人共同开发同一个项目,共用资源的目的。在PyCharm 里使用 SVN , 需要 Subversion 插件是生效的。除此以外,PyCharm 目前支持与 Subversion 1.7 及更晚的集成,要求下载并安装命令行 svn 客户端。安装细节参考Perforce 简称P4, 是一款非常优秀的商业化版本管理工具,真正的客户端/服务器系统。许多动画与游戏制作公司会选择用它,因为需要保存大量的3D模型 、纹理等元数据,其它版本控制工具在处理二进制文件相比 Perforce 要弱。Perforce 只有在 PyCharm 的专业版里才被支持,另外需要提前在本地安装 Perforce 客户端,并使用 Perforce 仓库创建帐户。安装参考官网

2. 支持的解释器类型

想要在 PyCharm 中使用 Python 代码,需要至少配置一个解释器。要配置的时候,需要指定系统中的 Python 可执行文件的路径。因此,在配置项目解释器之前,需要确保已下载 Python 并安装到系统中,并且知道其路径。我们可以基于不同的 Python 可执行文件创建项目解释器,也可以用同一个 Python 可执行文件创建项目解释器。上图中的 Python.exe 就是 Python 的可执行文件,它存在于你的 Python 安装路径下面。PyCharm 支持以下解释器类型:标准的 Python 解释器(Python 2.7、Python 3.5-3.8);其他 Python 实现(IronPython、PyPy、Jython、CPython);虚拟环境:(Virtualenv, Pipenv, and Conda);远程 Python 解释器(SSH、Vagrant、WSL(仅适用于 Windows);基于 Docker 的解释器(Docker、Docker Compose)。Tips:后面两种类型,仅在 PyCharm Profession 版本中支持。

1.3 Ubuntu 对 Python 的支持

Ubuntu 是一个以桌面应用为主的 Linux 操作系统,提供了一个健壮、功能丰富的计算环境,既适合家庭使用又适用于商业环境,是国内最流行的 Linux 发行版本。Ubuntu 每隔 6 个月就会发布一个新版本,在每年的 4 月份和 10 月份发布新版本,目前,最新的 Ubuntu 版本是 Ubuntu 19.10(版本号 19.10 表示是 19 年 10 月份发布)。Ubuntu 对 Python 的支持具有如下特点:安装 Ubuntu 时会默认安装 Python 软件。Ubuntu 安装完毕后,用户可以直接使用 Python,无需再单独安装 Python 软件。而在 Windows 中,用户使用 Python 前首先需要下载安装 Python。在 Ubuntu 中,Python 2 的程序名称为 python,Python 3 的程序名称为 python3。而在 Windows 中,Python 2 与 Python 3 的程序名称均为 python。目前关于 python 的教程、视频都是针对 Python 3,因此,用户在 ubuntu 环境中学习 python 时,请使用命令 python3 进入 Python 环境。

2.1 在 Linux 环境下安装 erlang 语言支持库

在 Linux 环境下安装 erlang 语言支持库还是非常简单的,我们只需要通过以下几条命令即可完成安装:第一步:初始化 erlang 资源库curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash第二步:安装 erlang 语言支持库yum -y install erlang运行该条命令,在等待片刻之后,我们即可完成 erlang 语言支持库的安装。第三步:校验 erlang 是否安装成功校验 erlang 是否安装成功,我们只需要在 Linux 服务器上输入一个 erlang 语言的关键字即可,如下所示:erl在输入 erl 关键字之后,我们会看到 erlang 语言的命令解释器,如下图所示:当我们看到这个 erlang 语言命令解释器时,就说明我们的 erlang 语言支持库就已经安装成功了,接下来我们需要退出 erlang 语言命令解释器来安装 RabbitMQ ,退出命令如下所示:halt().退出 erlang 语言命令解释器后的界面如下图所示:

1.3 MacOS 对 Python 的支持

MacOS 是一套运行于苹果电脑上的操作系统。MacOS 的内核与 Linux 的内核存在相似之处,尤其是在命令行环境下,在两个操作系统之间存在大量的类似命令和软件。在 MacOS 环境中的 Python 使用方法与在 Linux 环境中的 Python 使用方法几乎完全相同。MacOS 对 Python 的支持具有如下特点:MacOS 已经自带了 Python 2 软件,但是没有自带 Python 3 软件。因为 Python 2 即将退出历史舞台,Python 3 是学习和应用的主流,因此用户需要单独安装 Python 3 软件。在 MacOS 中,Python 2 的程序名称为 python,Python 3 的程序名称为 python3。而在 Windows 中,Python 2 与 Python 3 的程序名称均为 python。目前关于 python 的教程、视频都是针对 Python 3,因此,用户在 MacOS 环境中学习 python 时,请使用命令 python3 进入 Python 环境。从 2018 年初开始,MacOS 系统开始全面转向 64 位应用了,苹果公司要求所有提交至 MacOS 应用商店的应用程序都必须更新至 64 位。因此在新版本的 MacOS 中,只有 64 位的 Python。

2. 兼容性

虽然目前还在维护的最新版的浏览器几乎都支持了大部分 ES6 特性,但国内生态还不允许直接将 ES6 代码运行于线上,所以就需要一定的解决方案,使开发者开发过程中全面使用 ES6,但是线上又是运行 ES5、ES3 的代码。特性上会采用 shim 的方式,大部分情况下概念会将它与 polyfill 混用,可以理解成给浏览器打补丁,让旧版的浏览器支持新版的特性,如 ES6 提供的 Object.assign 方法,旧版的浏览器是没有的。通过 polyfill,使用 ES5 将刚该方法实现后,在放到 Object 对象下,变相的让浏览器支持新特性。但还有一些特性是 polyfill 很难解决的,特比是语法特性,如 let 关键字。这些特性就会采用 编译 的方式来解决,如将 let 替换成 var,这一块最常用的工具目前是 babel。所以如果项目是需要上线运行,并且目标用户群体范围非常广,尽量不要上线 ES6 代码,上线前也做好各个平台的浏览器测试。

3. 什么是 ES6

ES6 是 ECMAScript 6 的简称,是于 2015 年 6 月正式发布的 JavaScript 语言的标准,正式名为 ECMAScript 2015(简称 ES2015)。它的目标是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。同时 ES6 增加了很多 API 极大地拓展了 JavaScript 的功能,使他更像一门编程语言,可以承担更多的事。ES6 因为是 2015 年发布的,也称作 ES2015,对应的版本是 ES6,后面的命名方式以此类推。ES6 从起草到正式发布,经过了一个很漫长的时间。从 2000 年 ES4 开始酝酿的时候就已经开始了,由于 ES4 添加的 API 过多,导致这个版本没有通过,后来 ES5 就直接发布了。但是 ES4 提出的很多内容也被 ES6 所继承,因此,ES6 制定的起点其实是 2000 年。ES5 到 ES6 的演变其实经过了漫长的时间,而且 ES6 也算是 ECMAScript 的一个分水岭,它做了很多工作,修补了 ES5 之前 JavaScrept 存在的各种缺陷,并添加了很多新的功能,尽量能使得 JavaScript 成为一个更高级的,能承担更大型项目的语言。Tips: 在后面的文章中,我们所说的 ES5 统称 ES6 之前的所有 ECMAScript 的特性,ES6 则是 ES6 之后的版本内容。从 2015 年发布的 ECMAScript6 之后每年 ECMAScript 都会正式发布一个版本 ECMAScript。所以很多特性不能直接在浏览器中使用,需要借助 babel 这样的工具,把 ES6 的语法转换成 ES5,这样浏览器才能识别。

1. PyCharm 支持的测试框架

测试框架可以组织、管理和执行那些独立的自动化测试用例,测试完成后统计测试结果。PyCharm 支持主流的测试框架,如图所示:前三种框架用的比较多,特别是 Pytest 近几年是比较流行的,经常与 request + Allure 搭档用于接口的自动化测试。另外,在基于业务驱动软件公司, BDD 测试框架应用也越来越广泛。大家可以根据自己的实际环境与需求所择合适的测试框架,有关安装及其它更详细信息,请参阅对应的框架文档。 图片来源:https://www.jetbrains.com/help/pycharm/testing-frameworks.htmlTips:在开始使用您选择的测试框架之前,请确保在计算机上安装了所需的框架。

3.2 Number.isInteger () 的用法

Number.isInteger() 是 ES6 新增的函数,用来判断给定的参数是否为整数。Number.isInteger(25) // trueNumber.isInteger(25.1) // false如果被检测的值是整数,则返回 true,否则返回 false。注意 NaN 和正负 Infinity 不是整数。Number.isInteger(0); // trueNumber.isInteger(1); // trueNumber.isInteger(-100000); // trueNumber.isInteger(0.8); // falseNumber.isInteger(Math.PI); // falseNumber.isInteger(Infinity); // falseNumber.isInteger(-Infinity); // falseNumber.isInteger("100"); // falseNumber.isInteger(true); // falseNumber.isInteger(false); // falseNumber.isInteger([1]); // false上面的代码基本涵盖了 JavaScript 中的值的判断,在一些不支持 ES6 语法的浏览器中可以使用上面的两种方式进行 Polyfill 处理。

2.2 支持转义的特殊字符列表

Markdown 中提供了对以下特殊字符的转义支持。特殊符号中文名称默认语法 \ 反斜杠转义符号,需要与其他特殊符号连用 ` 反引号用于定义行内代码、代码块 * 星号用于定义无序列表、强调、分割线_下划线用于定义强调、分割线 {} 大括号用于定义公式 [] 中括号用于定义超链接、图片 () 小括号用于定义超链接、图片#井号用于定义标题、粗体字 + 加号用于定义无序列表、分割线 - 减号用于定义无序列表、分割线. 点号用于定义有序列表 ! 叹号用于定义超链接、图片

2.3 Babel

babel 是现在市面上使用得最多的一个 JavaScript 编译器,它可以把 ES6 语法编译成 ES5 语法,这样就可以让 ES6 代码在不支持 ES6 语法的低版本浏览器中运行了。babel 的官网是一个国外网站,我们可以访问 国内的站点 基本内容是一致的,网站还进行了翻译,更适合国内同学使用。在试一试中我们可以看到 ES6 语法转化为 ES5 后是什么样的,更加明了地展示语法的编译过程。 71

2. Nginx 支持高并发的原理

前面我们也说了,Nginx 的并发能力非常好,那么它能支持这么大的并发量与其他的 Web 服务器差别在哪里呢?一般的 Web 服务器在解决并发问题时,通常采用多线程或者多进程来处理请求。这种处理机制在访问量小的时候处理能力确实不错,但是当并发量大了线程或者进程频繁地切换对资源是一种非常大的损耗。但是 Nginx 却是单线程的,它采用 事件驱动 + IO 多路复用的处理模型。单线程可以解决线程切换的损耗和多线程的资源竞争问题;事件驱动: Nginx 在启动后,master 进程 fork() 多个相互独立的 worker 进程,请求的事件由 work 进程去处理;IO 多路复用: 一个请求的处理过程并不是独占一个 work 进程,当请求有阻塞等待的时候,work 进程会空出来去处理其它的请求。Nginx 并发模型

5. 自定义 isArray

在 ES5 中比较通用的方法是使用 Object.prototype.toString 去判断一个值的类型,也是各大主流库的标准。在不支持 ES6 语法的环境下可以使用下面的方法给 Array 上添加 isArray 方法if (!Array.isArray){ Array.isArray = function(arg){ return Object.prototype.toString.call(arg) === '[object Array]'; };}

2. 分支

if 语句可以仅有单个分支也可以有多个分支。// 单个分支if (条件1) { // 条件1满足的时候执行的代码} else { // 条件1不满足的时候执行的代码}// 多个分支if (条件1) { // 条件1满足的时候执行的代码} else if (条件2) { // 条件2满足的时候执行的代码} else if (条件3) { // 条件3满足的时候执行的代码} else { // 条件1、条件2、条件3都不满足的时候执行}单个分支的方式比较常用:var score = 77;if (score >= 60) { console.log('及格了');} else { console.log('不及格');}// 输出:"及格了">=则表示左边的值如果大于等于右边的值,则返回 true 否则返回 false。通过这样的分支,就可以扩展条件的场景。多个分支的场景也非常用到,如需要判断成绩的不同区间给出不同的标准:var score = 88;if (score < 60) { console.log('不及格');} else if (score < 80) { console.log('良好');} else if (score < 90) { console.log('优秀!');} else { // 剩下的肯定是大于等于九十的情况 console.log('太强了!');}// 输出:"优秀!"在多个分支的情况下,else 也可以不提供。var score = 0;if (score < 60) { console.log('不及格');} else if (score < 80) { console.log('良好');} else if (score < 90) { console.log('优秀!');} else if (score <= 100) { console.log('太强了!');}// 输出:不及格

4.2 Vagrant (仅专业版支持)

PyCharm 支持远程调试,对于已存在的项目可以增加远程环境进行调试。Vagrant 是一款基于 Ruby 用于构建及配置虚拟开发环境的软件,主要以命令行的方式运行。使用 Oracle 的开源 VirtualBox 虚拟化系统,与 Chef,Salt,Puppet 等环境配置管理软件搭配使用, 可以实行快速虚拟开发环境的构建。PyCharm 可以通过 Vagrant 直接访问VirtualBox 虚拟机,所以需要提前安装 Vagrant 与 VirtualBox, 以及 Vagrant plugin。PyCharm 已经默认安装了 Vagrant plugin。对于 VirtualBox 与 Vagrant, 根据自己的操作系统,从官网下载VirtualBox 与 Vagrant安装包,然后运行安装包,与其它软件安装是一样的,根据提示点击下一步,就能顺利安装成功。step1:执行下面的命令, 启动要使用的虚拟机。(Vagrant命令参考 ) # 本地已经准备好了相应BOX文件,也可直接从网上下载,但速度慢。 1. vagrant box add centos /Users/xuxh/Downloads/Vagrant-CentOS-7.box 2. vagrant init centos 3. vagrant upstep2:打开项目, 访问解释器页面,然后点击齿轮按钮,点击“add"。step3:选择左侧面板“vagrant”, 指定虚拟机目录及解释器路径。

多维数据的支持以及丰富的视觉编码手段

ECharts 3 开始加强了对多维数据的支持。除了加入了平行坐标等常见的多维数据可视化工具外,对于传统的散点图等,传入的数据也可以是多个维度的。配合视觉映射组件 visualMap 提供的丰富的视觉编码,能够将不同维度的数据映射到颜色、大小、透明度、明暗度等不同的视觉通道。

首页上一页1234567下一页尾页
直播
查看课程详情
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号