当前位置: 首页 > news >正文

javascript java难度_javascript比java难吗?

JavaScript 就像是一个孩子,还在成长,而 Java 更像是已经能独当一面的男子汉,所以肯定是后者更容易交流,但如果想要跟前者交流,你需要付出一些成本,但换来的可能是不一样的编程体验。

本篇回答来自于阿里巴巴淘系技术部前端开发专家 雷姆

——————————————————————————————————————————

说回正题,针对题主的问题,其实 JavaScript 在某些方面跟 Java 是越来越像了,比如现在的 JavaScript 是这样定义的:

class Cat {

constructor(name) {

this.name = name;

}

}

const mCat = new Cat('yorkie');

console.log(mCat.name);

看到没有,现在的写法跟 Java 的类定义很像了已经,而且也比原来的写法要简单得多。

在我看来,JavaScript 确实是一门坏语言,因为不够简洁,容易引起歧义等等,不过这也有一些存在的原因,JavaScript 最大的优势与劣势都是它是首先为浏览器服务的编程语言,这意味着代码运行的机器是非常不可控的,这也意味着我们总是要保证之前的代码是可用的,所以社区也也才会有最佳代码规范这么一个说法。

如果题主对 Java 比较熟悉的话,倒是可以先从 TypeScript 学起,语法更为相近,比如在 Pipcook 中,一个使用 TypeScript 实现的 LRU:

export default class LruCache {

private values = new Map();

private maxEntries: number;

constructor(maxEntries = 100) {

this.maxEntries = maxEntries;

}

public get(key: string): T {

const hasKey = this.values.has(key);

let entry: T;

if (hasKey) {

entry = this.values.get(key);

this.values.delete(key);

this.values.set(key, entry);

}

return entry;

}

public put(key: string, value: T) {

if (this.values.size >= this.maxEntries) {

const keyToDelete = this.values.keys().next().value;

this.values.delete(keyToDelete);

}

this.values.set(key, value);

}

}

是不是对于 Java 的同学也没有任何阅读的难度呢?

其次,题主也可以通过Babel这样的工具,多了解了解每个 JavaScript 版本新增的特性,这样其实能够帮助题主看到更多 JavaScript 好的改变。

最后,举一个比较生动的例子,JavaScript 就像是一个孩子,还在成长,而 Java 更像是已经能独当一面的男子汉,所以肯定是后者更容易交流,但如果想要跟前者交流,你需要付出一些成本,但换来的可能是不一样的编程体验。

注:关于文中的 Pipcook

Pipcook 是阿里巴巴淘系技术部 FX Team 研发的一款面向前端开发者的机器学习应用框架。

我们希望 Pipcook 能成为前端人员学习和实践机器学习的一个平台,从而推进前端智能化的进程。

我们整理了一些 Issue 方便你快速参与进来:

如果你还想了解更多有关前端智能化的信息,可以留言告诉我,我们非常乐意分享探讨在前端智能化上的心得和实践经验~

相关文章:

  • java map cache_java Map实现的cache manager
  • java中的链表类_6.JAVA-链表实例
  • java 二分查找 简书_二分查找的三种模板(C++,Java,Python)
  • 用java实现矩阵链乘积_矩阵最优链乘及Java实现
  • java泛型 语法_Java泛型中的? super T语法
  • java 模块化 组件化_关于模块化、组件化的理解
  • java isnull方法_Java 检查判断变量null(空值)的方法示例代码
  • java容器类的实现_java容器类总结——基于JDK1.8
  • MySQL实验7存储过程_存储过程 · MySQL5.7文档 · 看云
  • php mysql insert 默认_PHP MySQL Insert Into
  • 称重机 java_Java实现称重3次找到假球
  • triangle java_LeetCode Triangle Java版本
  • python用户重复输入_在Python中从用户输入中查找重复值
  • java类与类之间的类图_UML类图(Class Diagram)中类与类之间的关系及表示方式(转)
  • java按时间范围过滤_Java列表按日期过滤
  • ----------
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • AngularJS指令开发(1)——参数详解
  • Create React App 使用
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • Git 使用集
  • gops —— Go 程序诊断分析工具
  • Iterator 和 for...of 循环
  • Java 网络编程(2):UDP 的使用
  • JavaScript-Array类型
  • JS字符串转数字方法总结
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • PHP那些事儿
  • 从0到1:PostCSS 插件开发最佳实践
  • 聊聊flink的BlobWriter
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 深入浅出webpack学习(1)--核心概念
  • 使用docker-compose进行多节点部署
  • 翻译 | The Principles of OOD 面向对象设计原则
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ​configparser --- 配置文件解析器​
  • ​用户画像从0到100的构建思路
  • #pragma multi_compile #pragma shader_feature
  • #前后端分离# 头条发布系统
  • (003)SlickEdit Unity的补全
  • (搬运以学习)flask 上下文的实现
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (十六)一篇文章学会Java的常用API
  • (转)Google的Objective-C编码规范
  • (转)四层和七层负载均衡的区别
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .net core开源商城系统源码,支持可视化布局小程序
  • .Net Web项目创建比较不错的参考文章
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • .pop ----remove 删除
  • .stream().map与.stream().flatMap的使用