JavaScript代码及其 Dart 对应代码

简介: 15 个 JavaScript 代码示例及其 Dart 对应代码

做为 开发过React/React Native 的工程师,在刚开始接触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
    在 JavaScript 中将 JSON 转换为对象,会使用以下代码:

    JSON.parse(yourJson)
    在 Dart 中,只需导入'dart:convert'即可使用:

    import 'dart:convert';
    //代码效果参考:http://qq.jxmayflora.com/sitemap/post1.html

    JsonDecoder().convert(yourJson)

  3. array.push和list.add
    在 JavaScript 中,要添加'hello'到数组中,可以使用

    array.push('hello')
    在 Dart 中,这样使用,

    list.add('hello')

  4. array.splice和list.sublist
    在 JavaScript 中,数组删除第一个元素(索引值为0)

    array.splice(0, 1)
    在Dart中, 返回索引范围(1 和 3)内的新列表

    list.sublist(1, 3)

  5. array.splice和list.removeAt
    array.splice与#4点一样

在Dart中, 删除索引值为itemIndex的值

list.removeAt(itemIndex)

  1. array.length > 0和list.isNotEmpty
    检查数组是否为空

    array.length > 0
    Dart里,是这样

    list.isNotEmpty

  2. array.length === 0和list.isEmpty
    检查数组是否为空

    array.length === 0
    Dart里,是这样

    list.isEmpty

  3. parseInt和int.parse
    在 JavaScript 中将字符串转换为整数,可以使用

    parseInt('123')
    在Dart里,是这样

    int.parse('123')

  4. parseFloat 和 double.parse
    双精度浮点数的使用如下:

    parseFloat('1.23')
    在Dart里,是这样
    //代码效果参考:http://kuaishou.ahljwz.cn/sitemap/post1.html

    double.parse('1.23')

  5. array.some 和 list.any
    在 JavaScript 中,array.some()方法测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个Boolean类型的。
    例如,如果想查看数组[1, 2, 3, 4, 5, 6, 7]是否有任何大于 5 的数字:

    var some = array.some(x=>x > 5)
    在Dart,是这样的,

    array.any((x)=>x > 5);

  6. array.findIndex和list.indexWhere
    Javascript的array.findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。若没有找到对应元素则返回-1。
    Dart用的是list.indexWhere,只是用法不一样

var notes = ['do', 're', 'mi', 're'];
// JavaScript
notes.findIndex(x=>x.indexOf("r") > -1) // 1
// Dart
notes.indexWhere((note) => note.startsWith('r')); // 1
「Tip」 在 Dart 中,还可以在函数后面传递一个参数来提供起始索引。如下:

notes.indexWhere((note) => note.startsWith('r'), 2 ); // 3

  1. array.indexOf() 和 list.indexOf()
    在 JavaScript 和 Dart 中,indexOf是一种用于在数组或列表中查找索引位置的方法。没有则返回-1

var author = ['Edgar Allen Poe', 'JK Rowling', 'Ernest Hemingway']
author.indexOf('JK Rowling') // 1

  1. toString
    在 JavaScript 中,会使用toString()将另一种数据类型的值转换为字符串。它适用于整数、浮点数、布尔值、数组和对象。对于对象的话会得到以下结果:

var x = {id: 1}
console.log(x.toString())
=> '[object Object]'
但是两者会有一定的差别,如下:

// Dart
String test = 1.toString() // '1'
// JavaScript
var x = 1.toString() // 未捕获的语法错误:无效或意外的标记

  1. array.every 和 list.every
    every() 方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。用法与上面array.some 和 list.any相似

  2. 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)

相关文章
|
3天前
|
移动开发 JavaScript 安全
总有一款适合您分享78个JS相册代码
本文分享了78款JS相册代码,包括3D相册旋转木马、图片悬浮效果、倾斜图片幻灯片切换等特效,适用于各种图片展示场景。无论您需要哪种样式,都能在这里找到满意的解决方案。快来挑选吧!参考链接:[点击这里](https://www.vipwb.com/sitemap.xml)。
20 4
|
4天前
|
JavaScript
分享一款520表白节JS代码
今天给大家分享一款JS表白源码 js会随 随机颜色心形跟随鼠标互动520表白节女神表白利器! 修改的话就搜索:LOVEh 就能找到这个英文了。
5 0
分享一款520表白节JS代码
|
11天前
|
JSON JavaScript 前端开发
如何使用代码注释:关于JavaScript与TypeScript
TSDoc是一种标准化TypeScript代码文档注释的规范,使不同工具能无干扰地提取内容。它包括多种标记,如@alpha、@beta等发布阶段标记;@decorator、@deprecated等功能标记;@defaultValue、@eventProperty等描述标记;@example、@experimental等示例与实验性标记;@inheritDoc、@internal等引用与内部标记;@label、@link等链接标记;@override、@sealed等修饰符标记;以及@packageDocumentation、@param、
23 5
|
14天前
|
JavaScript 前端开发 测试技术
如何写高质量的JavaScript代码
在现代Web开发中,JavaScript扮演着至关重要的角色。本文介绍了提升JavaScript代码质量的关键技巧:采用语义化命名增强代码可读性;通过模块化设计提升代码的可维护性和复用性;利用恰当的注释与文档说明代码功能;合理管理全局变量避免命名冲突;实施有效的异常处理增加程序稳定性;并借助工具和框架提高开发效率和代码质量。这些实践共同助力打造高效、可维护的Web应用。代码示例和效果参见相关链接。
17 3
|
9天前
|
Web App开发 JavaScript 前端开发
JavaScript基础知识-使用Firefox进行代码的调试(Debug)
关于如何使用Firefox浏览器进行JavaScript代码调试的基础知识介绍。
24 0
|
12天前
|
开发者 图形学 C#
深度解密:Unity游戏开发中的动画艺术——Mecanim状态机如何让游戏角色栩栩如生:从基础设置到高级状态切换的全面指南,助你打造流畅自然的游戏动画体验
【8月更文挑战第31天】Unity动画系统是游戏开发的关键部分,尤其适用于复杂角色动画。本文通过具体案例讲解Mecanim动画状态机的使用方法及原理。我们创建一个游戏角色并设计行走、奔跑和攻击动画,详细介绍动画状态机设置及脚本控制。首先导入动画资源并添加Animator组件,然后创建Animator Controller并设置状态间的转换条件。通过编写C#脚本(如PlayerMovement)控制动画状态切换,实现基于玩家输入的动画过渡。此方法不仅适用于游戏角色,还可用于任何需动态动画响应的对象,增强游戏的真实感与互动性。
32 0
|
12天前
|
Android开发 iOS开发 C#
Xamarin:用C#打造跨平台移动应用的终极利器——从零开始构建你的第一个iOS与Android通用App,体验前所未有的高效与便捷开发之旅
【8月更文挑战第31天】Xamarin 是一个强大的框架,允许开发者使用单一的 C# 代码库构建高性能的原生移动应用,支持 iOS、Android 和 Windows 平台。作为微软的一部分,Xamarin 充分利用了 .NET 框架的强大功能,提供了丰富的 API 和工具集,简化了跨平台移动应用开发。本文通过一个简单的示例应用介绍了如何使用 Xamarin.Forms 快速创建跨平台应用,包括设置开发环境、定义用户界面和实现按钮点击事件处理逻辑。这个示例展示了 Xamarin.Forms 的基本功能,帮助开发者提高开发效率并实现一致的用户体验。
27 0
|
13天前
|
JavaScript 开发者 UED
Vue.js 错误处理与调试:跟上技术潮流,摆脱开发困扰,成为代码大神不是梦!
【8月更文挑战第30天】在 Vue.js 开发中,错误处理与调试至关重要。本文将对比 Vue 的全局错误捕获机制 `Vue.config.errorHandler` 和组件内 `watch` 监听数据变化的方式,并介绍 Vue 开发者工具、控制台打印 (`console.log`) 以及代码断点 (`debugger`) 等调试方法。此外,还将探讨如何通过自定义错误页面提升用户体验。通过这些技巧的对比,帮助开发者灵活选择适合的策略,确保应用稳定性和开发效率。
36 0
|
13天前
|
JavaScript 前端开发
揭秘Vue.js组件魔法:如何轻松驾驭前端代码,让维护变得轻而易举?
【8月更文挑战第30天】本文探讨了如何利用Vue.js的组件化开发提升前端代码的可维护性。组件化开发将复杂页面拆分为独立、可复用的组件,提高开发效率和代码可维护性。Vue.js支持全局及局部组件注册,并提供了多种组件间通信方式如props、事件等。通过示例展示了组件定义、数据传递及复用组合的方法,强调了组件化开发在实际项目中的重要性。
12 0
|
13天前
|
JSON Dart 前端开发
分享15 个 JavaScript 代码示例及其 Dart 对应代码。
本文对比了React/React Native中的JavaScript语法与Flutter中的Dart语法,帮助开发者快速上手Flutter。内容涵盖JSON处理、数组操作、类型转换、条件判断等常见功能,如`JSON.stringify`与`JsonEncoder().convert`,`array.push`与`list.add`,`parseInt`与`int.parse`等,并提供了15个JavaScript与Dart代码示例对照。这对于从JavaScript转向Dart的开发者尤其有用。
12 0