语言范畴\定义 | java | dart | kotlin | js JavaScript 一般用于HTML 和 Web 的编程语言。 |
日志打印 | Log.e/v/d("%s, %d") | print Hi ${param2},I am ${param3}"); | println("$s.length is ${s.length}") | 使用 window.alert() 写入警告框 使用 document.write() 写入 HTML 输出 使用 innerHTML 写入 HTML 元素 使用 console.log() 写入浏览器控制台 |
变量定义 | 基本类型和object类型定义 | var | val(final) / var | var |
final | final | final | final | |
常量 | const | const | const | const(ES2015新增) |
顶部基类 | Object | dynamic | Object | 无顶部基类: Object Date Array String Number Boolean |
判空运算符 | if(x==null)null else x (a != null ? a : "b") | ?运算符: x?.toString() a ?? "b" | ?运算符: var a:Int? var b:Int | if(x==null)... 幂运算:**幂 |
Builder | Builder | ..运算符 final p = Person() ..username = "lecon" ..password = "123456" ..setSex(true); | 构造函数初始化 | new Xobject() |
空类型 | Null | null | null | null |
数值 | int/double | numbers | Byte、Short、Int、Long、 Float、Double | int、short、long等 |
字符串 | String | strings | String | 'da'、"adf"、String |
bool类型 | bool | booleans true/false | Boolean true/false | boolean |
列表 | List | list | List<Int> ArrayList | ["Saab", "Volvo", "BMW"]; |
映射 | Map | map | MutableMap、HashMap、LinkedHashMap | new Map() |
函数返回简写 | String test() { return "123"; } | String test ()=> "123"; | ->函数 var addFun : (Int,Int) -> Int = {a,b -> a + b} | function myFunction() { return "Hello"; } |
局部函数、 闭包 | 参数以引用方式传递, 可以达到相同的使用目的 | Function(int a) fn() { var loadFn = fn(); | 局部函数和 override fun onCreate(savedInstanceState: Bundle?) { | JavaScript 变量属于本地或全局作用域。 全局变量能够通过闭包实现局部(私有)。 var add = (function () { var counter = 0; return function () {return counter += 1;} })(); add(); add(); |
创建对象 | new | new关键字可以省略 | new 类名() | new关键字可以省略 |
类型判断 | instanceof | is | is、instanceof | typeof、instanceof |
类型转换 | (Class)object强转 | as | as | (Class)object强转 |
类初始化 | 构造函数初始化 | Class:初始化列表 | 构造函数初始化 | 构造函数初始化 |
访问权限 | private | _前缀 Dart文件之外不能访问,当前文件不同类是可以的。 | open相当于public、 fun声明默认为final修饰 | public、protected、private |
继承 | extends | extends | class Student : Person | extends |
接口 | implements/interface | mixin/with | interface class Child : MyInterface | implements/interface、abstract |
get和set | 内部属性设置 | setter和getter语法糖 class Rectangle { num left, top, width, height; Rectangle(this.left, this.top, this.width, this.height); num get right => left + width; set right(num value) => left = value - width; num get bottom => top + height; set bottom(num value) => top = value - height; } | 内部属性设置 | constructor 内部属性设置 |
异常捕获 | try { } catch(e) { } finally { } | try { throw FormatException('Expected at least 1 section'); } on FormatException catch(e) { print('section exception ${e}'); } finally { print("I am finally"); rethrow; } | try catch finally | try catch finally |
内联 | 无 | Typedefs 同C++里面的内联函数 | 内联函数 | 无 |
回调 | 回调(类似于c里面的指针作用) | 回调 | 回调 | call/apply |
异步和多线程 | thread\synchronized\sleep\wait\notify | await/async Future/Stream | Future/Stream | Promise/async/await |
其它特殊性质 | lateinit、by lazy |
java、dart、kotlin、 javascript(js)语言对比
最新推荐文章于 2023-01-11 20:03:40 发布