作为开发过React/ReactNative的工程师,第一次接触Flutter开发肯定会遇到这种情况。某个功能可以熟练使用特定的Javascript语法来完成,但是对于Flutter开发,对应的Dart语法是什么?经常需要打开Dart文档才能找到对应的语法。此处共享15个JavaScript代码示例及其对应的Dart。1.JSON.stringify和JsonEncoder().convert在JavaScript中,如果你想将一个对象转换为JSON字符串,可以使用:JSON.stringify(yourObject)在Dart中,只需导入'dart:convert'即可使用:import'dart:convert';JsonEncoder().convert(yourObject)2.JSON.parse和JsonDecoder().convert将JSON转换为JavaScript中的对象,将使用以下代码:Dart中的JSON.parse(yourJson),只需导入'dart:convert'使用:import'dart:convert';JsonDecoder().convert(yourJson)3.array.push和list.add在JavaScript中,要将'hello'添加到数组中,可以使用array.push('hello')在Dart中,这样使用,list.add('hello')4.array.spliceandlist.sublist在JavaScript中,数组删除第一个元素(索引值为0)array.splice(0,1)在Dart中,返回索引范围内的新列表(1and3)list.sublist(1,3)5.array.splice和list.removeAtarray.splice同Dart中#4点,删除索引值为itemIndexlist.removeAt(itemIndex)6的值。array.length>0和list.isNotEmpty检查数组是否为空array.length>0Dart,所以list.isNotEmpty7.array.length===0和list.isEmpty检查数组是否为空array.length===在Dart中为0,所以list.isEmpty8。parseInt和int.parse在JavaScript中将字符串转换为整数,你可以在Dart中使用parseInt('123'),比如int.parse('123')9.parseFloat和ddouble.parse双精度浮点数的使用方法如下:Dart中的parseFloat('1.23'),这个就是double.parse('1.23')10。array.some和list.any在JavaScript中,array.some()方法测试数组中的至少一个元素是否通过提供的返回布尔值的函数测试。例如,如果你想查看数组[1,2,3,4,5,6,7]是否有任何大于5的数字:varsome=array.some(x=>x>5)在Dart中,它看起来像这样,数组.any((x)=>x>5);11.array.findIndex和list.index其中Javascript的array.findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。如果没有找到相应的元素,则返回-1。Dart使用list.indexWhere,但是用法不一样varnotes=['do','re','mi','re'];//JavaScriptnotes.findIndex(x=>x.indexOf("r")>-1)//1//Dartnotes.indexWhere((note)=>note.startsWith('r'));//1「提示」在Dart中,你也可以在函数后传递一个参数来提供起始索引。如下:notes.indexWhere((note)=>note.startsWith('r'),2);//312.array.indexOf()和list.indexOf()在JavaScript和Dart中,indexOf是一种用于在数组或列表中查找索引位置的方法。如果不是,则返回-1varauthor=['EdgarAllenPoe','JKRowling','ErnestHemingway']author.indexOf('JKRowling')//113。toString在JavaScript中,toString()将用于将另一种数据类型的值转换为字符串。它适用于整数、浮点数、布尔值、数组和对象。对于对象,会得到如下结果:varx={id:1}console.log(x.toString())=>'[objectObject]'但是两者会有一定的区别,如下://DartStringtest=1.toString()//'1'//JavaScriptvarx=1.toString()//Uncaughtsyntaxerror:invalidorunexpectedtoken14.array.every和list.everyevery()方法测试一个数组中的所有元素是否都是Can通过指定功能的测试。它返回一个布尔值。用法类似于上面的array.some和list.any15.map,forEach,filter,find等。除了语法上的一些差异外,以上所有方法都是JavaScript和Dart共享的。当map用于test等于的数组时,请参见下面的[1,2,3,4,5]。javascript://其他类似test.map(x=>x*2)Dart:est.map((x)=>x*2)
