10 天 996 写出的语言 - JavaScript

本文转自 公众号 ByteByteGo,如有侵权,请联系,立即删除

10 天 996 写出的语言 - JavaScript

在 JavaScript 之前,网页主要是静态的,任何交互性都必须在服务器端处理,导致用户体验笨拙和缓慢。JavaScript 的发明是由于需要向网页添加更多动态和交互功能。

1995 年 5 月,Brendan Eich 被指派开发一种新的脚本语言,这种语言将补充 Java 的功能,使Web 浏览器能够实现动态内容和交互性。**Eich 在短短 10 天内完成了这种语言的首个版本。**这种快速开发是为了满足网景浏览器 2.0 的紧迫发布日程。

这种紧迫开发日程的背后原因是网景与微软之间的浏览器战争。网景希望通过快速增强 Web 的交互性来保持对 Internet Explorer 的优势。这种语言最初被称为 Mocha,后来更名为 LiveScript,最终在 1995 年 9 月随网景浏览器 2.0 B3 一起发布。到了同年 12 月,它正式更名为 JavaScript。这是网景出于营销考虑,利用了 Java 的流行度,尽管这两种语言在设计和目的上有很大的不同。

多年来,JavaScript 已经从一个简单的脚本语言成长为一种强大的、成熟的编程语言,能够创建复杂的 Web 应用程序、服务器端应用程序(使用Node.js)、移动应用程序,甚至是游戏。

随着 JavaScript 的普及增加,对其标准化的需求也随之增长。这导致了 ECMAScript 标准的创建。标准化使 JavaScript 在不同的Web浏览器中更加一致和可靠。

此外,JavaScript 框架和类库的出现,如 jQuery、Angular、React 和 Vue,极大地简化了复杂Web应用程序的开发,使 JavaScript 成为 Web 开发人员不可或缺的工具。

下图列举了 JavaScript 的最重要特征。

图片

01 解释型语言

JavaScript 代码由浏览器或 JavaScript 引擎执行,而不是事先编译成机器语言。这使得它在不同平台上具有很高的可移植性。V8 等现代引擎利用即时 (JIT) 技术将代码编译成可直接执行的机器代码。

02 函数是一等公民

在 JavaScript 中,函数被视为一等公民,这意味着它们可以存储在变量中,可以作为参数传递给其他函数,也可以从函数中返回。

03 动态类型

JavaScript 是一种松散类型或动态语言,这意味着我们不必提前声明变量的类型,而且类型可以在运行时改变。

04 客户端执行

JavaScript 支持异步编程,允许在后台运行读取文件、HTTP 请求或查询数据库等操作,并在完成后触发回调或承诺。这在网络开发中对提高性能和用户体验特别有用

05 基于原型的 OOP

与基于类的面向对象语言不同,JavaScript 使用原型进行继承。这意味着对象可以从其他对象继承属性和方法。

06 自动垃圾回收

JavaScript 中的垃圾回收是一种自动内存管理。垃圾回收的主要目的是回收程序不再使用的对象所占用的内存,这有助于防止内存泄漏并优化应用程序的性能。

07 与其他语言相比

JavaScript 与 Python 或 Java 等编程语言相比比较特殊,因为它是网络开发的主要语言。

Python 以提供良好的代码可读性和多功能性著称,Java 以其结构性和健壮性著称,而 JavaScript 是一种解释型语言,无需编译即可直接在浏览器上运行,强调灵活性和动态性。

08 与 TypeScript 的关系

TypeScript 是 JavaScript 的超集,这意味着它通过向 JavaScript 语言添加功能(最显著的是类型注解)来扩展 JavaScript。这种关系允许任何有效的 JavaScript 代码也被视为有效的 TypeScript 代码。

09 流行的 JavaScript 框架

React 以其灵活性和大量社区驱动的插件而闻名,而 Vue 则简洁直观,具有高度集成和响应性功能。另一方面,Angular 为企业级 JS 开发提供了一套严格的开发规范。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/771909.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言与sqlite3入门

c语言与sqlite3入门 1 sqlite3数据类型2 sqlite3指令3 sqlite3的sql语法3.1 创建表create3.2 删除表drop3.3 插入数据insert into3.4 查询select from3.5 where子句3.6 修改数据update3.7 删除数据delete3.8 排序Order By3.9 分组GROUP BY3.10 约束 4 c语言执行sqlite34.1 下载…

Web UI 自动化测试方案(超级干货)看完不会你找我

项目讨论 一、项目中符合自动化测试的部分有哪些?(目标和范围 scope, 准入准出标准) 1、稳定的需求点、变动较少的页面 2、每日构建后的测试验证 daily build 3、比较频繁的回归测试 4、需要在多平台上运行的相同测试案例、组合遍历型的测试、大量的重…

what is apache?

Apache 通常指 Apache Software Foundation (ASF) 或 Apache HTTP Server,两者都是计算机软件领域的重要实体。 Apache 软件基金会 (ASF):Apache 软件基金会是一个开发开源软件项目的非营利组织。它为涵盖软件开发各个方面的广泛项目提供支持&#xff0c…

3dmax展厅异形模型怎么做---模大狮模型网

在3ds Max中创建展厅异形模型需要一定的建模技巧和创造力。以下是一般的步骤: 准备设计方案: 首先,需要明确展厅的设计方案和概念,包括展厅的整体结构、空间布局和异形特点等。 创建基本结构: 在3ds Max中&#xff…

MySQL数据库的备份-恢复-日志

一、备份: 1.数据备份的重要性: 备份的主要目的是灾难恢复。 在生产环境中,数据的安全性至关重要。 任何数据的丢失都可能产生严重的后果。 2.造成数据丢失的原因: 程序错误人为操作错误运算错误磁盘故障灾难(如…

30岁失业的我,选择职场转型,进入AIGC工程师领域,重新开始

去年,刚满30岁的我又一次被公司辞退了,由于学历不高,简历也不出彩,尽管半个月来投了一份又一份的简历,但仍然是石沉大海,我终于不得不开始思考一个以前被我一直刻意压制的想法——职场转型。 尽管知道这条…

大模型知识点汇总——分布式训练

PS:本篇只在宏观上介绍相关概念和技术,不做数学推导和过于细节介绍,旨在快速有一个宏观认知,不拘泥在细节上,导致很混乱。 涉及技术名词 分布式框架等涉及的技术名词很多,很容易让人眼花缭乱,…

echarts 柱形图如何让其中一个柱子的颜色跟其他柱子不同

如何让其中一个柱子的颜色跟其他柱子不同 series: [{data: [120,// 使用对象的形式, value代表当前值, itemStyle设置样式{value: 200,itemStyle: {color: #a90000}},150,80,70,110,130],type: bar}]设置单个柱子颜色: 柱形图单个柱子颜色: https://e…

Vue3+Element Plus+TS开发企业管理后台(二)

使用vite初始化项目 确保你的开发环境中已经安装了Node.js,而且有npm,yarn等包管理工具,然后可以按照vite官方提供的方式初始化项目: yarn create vite跟随提示选择即可: 或者可以直接克隆下面的仓库 https://gith…

flask_restful规范返回值之参数设置

设置重命名属性和默认值 使用 attribute 配置这种映射 , 比如: fields.String(attributeusername) 使用 default 指定默认值,比如: fields.String(defaultsxt) from flask import Flask,render_template from flask_restful import A…

selenium自动化测试-unittest框架

unittest框架的优点 (1)能够组织多个用例去执行 (2)提供丰富的断言方法 (3)能够生成测试报告 unittest框架的核心要素 1. TestCase测试用例 TestCase(测试用例),最小的测试单元,创建的测试类需要继承该基类 步骤: (1&#x…

风丘EV能量流测试解决方案 提高电动汽车续航能力

电动汽车(EV)近些年发展迅猛,已被汽车业内普遍认为是未来汽车发展的新方向,但现如今电动汽车仍然存在一些短板,导致其还无法替代传统燃油车。对此,首先想到的肯定就是电动车的续航问题。其实解决电动车续航…

VBA技术资料MF133:隐藏编辑栏及计算字符串

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…

centos7 使用docker安装了mongo 怎么设置远程链接,必须使用密码才能连接

docker run -d –name mongodb_container -e MONGO_INITDB_ROOT_USERNAMEroot -e MONGO_INITDB_ROOT_PASSWORDroot -e MONGO_INITDB_DATABASEdataserver -p 27017:27017 \ 无法在mongo容器里编辑文件 如果你无法直接编辑 MongoDB 容器内的配置文件,你可以尝试…

基于java+springboot+vue实现的大学生二手物品交易商城(文末源码+Lw+ppt)23-329

摘 要 二十一世纪我们的社会进入了信息时代,信息管理系统的建立,大大提高了人们信息化水平。传统的管理方式对时间、地点的限制太多,而在线管理系统刚好能满足这些需求,在线管理系统突破了传统管理方式的局限性。于是本文针对这…

Java:包装类简单认识泛型

一、包装类 包装类指的是基本数据类型(如int、double等)对应的类类型,我们可以通过包装类直接调用里面的方法! 基本数据类型 包装类 byte Byte short …

09 网络ARP请求,响应,ICMP协议

arp协议_arp请求_arp回应 ICMP包构造ping搜狐服务器参考 #include <stdio.h> #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> #include <linux/if_packet.h> #include <linux/if_ether.h> #include <string.h> #includ…

基于Springboot Vue医院管理系统+数据库脚本+文档(万字)

项目效果视频: 基于Springboot Vue医院管理系统 一、 项目介绍 角色&#xff1a;管理员、患者、医生 基于springboot vue实现的医院管理系统&#xff0c;有管理员、医生和患者三种角色。系统拥有丰富的功能&#xff0c;能够满足各类用户的需求&#xff0c;系统提供了登录和注册…

Day20 代码随想录(1刷) 二叉树

目录 654. 最大二叉树 617. 合并二叉树 700. 二叉搜索树中的搜索 98. 验证二叉搜索树 654. 最大二叉树 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值。递归地在最大值 左边 的 子数…

最长公共子序列、LCS算法模型

LCS问题就是给定两个序列A和B&#xff0c;求他们最长的公共子序列。 在求解时&#xff0c;我们会设dp[i][j]表示为A[1 ~ i]序列和B[1 ~ j]序列中&#xff08;不规定结尾&#xff09;的最长子序列的长度。 if(a[i]b[i]) dp[i][j]dp[i-1][j-1]1; else dp[i][j]max(dp[i-1][j],dp…