前端转Flutter-对照Javascript学Dart

最近在学flutter,发现flutter的编程语言Dart和Javascript有诸多相似,对于前端开发者而已好处在于有JavaScript经验学习Dart会快一些,缺点在于容易搞混这两种语言。因此在学习的过程中记录了一下Javascript和Dart的对比,方便记忆。 1. 程序入口(Entry Point)Javascript: JS不像很多语言有一个main()函数作为程序入口,JS并没有标准的程序入口,JS会从代码的第一行开始执行(在执行之前会有一些预处理的工作,比如变量提升和函数提升)。在实际项目中我们通常会有一个index.js这样的入口文件。 Dart: Dart有一个标准的程序入口: main(){}2. 数据类型(Data Types)Javascript: JS 有 8 种内置数据类型,分别为: 基本类型: Boolean:布尔类型,有两个值true和falseNull:空类型,只有一个值nullUndefined:变量未初始化则为Undefined类型Number:数字类型,取值范围为-(2^53-1) ~ 2^53 - 1,可以为整数和小数Bigint:表示任意精度的整数,如const x = 2983479827349701793697123nString:字符串类型,可用 "", '', ``表示。其中``用于字符串模板,比如:`1 + 2 = ${1+2}`Symbol:符号类型,用于定义匿名且唯一的值,一般用作 Object 属性的 keyObject其中 7 个基本类型的值是不可变的(immutable value)。Object 用来定义复杂数据类型,JS内置了一些复杂类型比如:Function、Date、Array、Map、Set等。 Dart: Dart 也有 8 种内置数据类型: Boolean:布尔类型,有两个值true和falseNumber:数字类型,又分为int和double类型 int:整型,取值范围为-2^63 ~ 2^63 - 1double:64位双精度浮点型String:字符串类型,可用"", ''表示。与 JS 类似,可使用模板语法'${expression}',当expression是一个标识符时可省略{}List:相当于 Javascript 中的 Array,例如:var arr = [1, 2, 3]Set:与 JavaScript 的 Set 类似,表示无序且无重复元素的集合,例如:var countries = {'china', 'usa', 'russia', 'german'}Map:与 JavaScript 的 Map 类似,表示一组键值对的集合,其中键必须唯一,键和值都可以为任意类型,例如: ...

October 14, 2019 · 6 min · jiezi