前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript 语言特点

JavaScript 语言特点

作者头像
LIYI
发布2023-08-31 19:41:59
1160
发布2023-08-31 19:41:59
举报
文章被收录于专栏:艺述论专栏艺述论专栏

JavaScript(JS)是一种具有函数优先特性的轻量级、解释型或者说即时编译型的编程语言。

什么是函数优先特性?

在一门语言中,函数可以被当作参数传递给其他函数,可以作为另一个函数的返回值,可以被赋值给一个变量,简而言之,当函数可以当作变量一样使用时,便称这门语言拥有头等函数(First-class Function),或称拥有函数优先特性。

什么是即时编译型?

即时编译也叫及时编译、动态编译、运行时编译,英文是 Just-in-time Complilation,简称 JIT。它是一种在程序执行过程中,将源代码转为机器码的方法,它融合了提前编译(AOT)执行和解释执行的优点,结合了编译代码的效率与解释执行的灵活性。

JavaScript 是一种基于原型、多范式、单线程的动态语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。

什么是多范式?范式指什么?

这里的范式指的是编程思想在语言里的具体实现,例如原型、面向对象、代理(Proxy),基于这三种方式都可以实现对象的继承。

在完成某一件事上(例如对象继续)拥有多种实现方式,便是多范式。

什么是命令式、声明式?

普通的编程,自上而下编写代码,关注与控制每一步实现细节,就是命令式。

而声明式,是指仅描述想要的最终结果是什么,不关注中间过程及实现细节,举一个例子:

代码语言:javascript
复制
select * from user where name like 'LIYI'

这不是 SQL 语句吗?

没错!SQL 语句就是一种经典的声明式语法的实现。SQL 只关心想要什么,有什么条件,至于怎么查询,那是数据库引擎的事。

关于 JS 语言的动态特性指什么?

JavaScript 的动态特性包括运行时对象的构造、变量参数列表、函数变量、动态脚本创建(通过 eval)、对象内枚举(通过 for...in 和 Object 工具方法)和源代码恢复(JavaScript 函数会存储其源代码文本,可以使用 toString() 进行检索)。

运行时对象的构造,指用 Object 直接创建对象,一般在编译型语言中,是先定义一个 class,然后才能在运行时实例化的。

变量参数列表,指支持不定参数。

函数变量,指上面提到的函数优先,函数是一等公民,函数也可以作为数据传递。

动态脚本创建,指文本向代码转换,例如使用 eval 将字符串的内容当作 js 代码执行,当然这被视作危险的事情,仅限于在非严格模式下使用。另外,还有 new Function 可以在运行时,从字符串文本中创建可以执行的函数,这种动态脚本创建方式用得较多。

对象内枚举方法 for..in 与 Object 工具方法(例如 assign、create、keys、is、fromEntries 等方法),可以在运行时动态创建对象、动态给对象添加属性、动态遍历已经添加了哪些动态属性,在这些方面体现了动态特性。

源代码恢复,如果小括号内所言,将函数对象换为函数,然后又可以通过 new Function 转合函数,这样就实现了源代码恢复。

- End -

小步快跑,正向反馈;面向未来,不求完美。

与时间做朋友,一同成长。

声明:本文纯人工编写

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 艺述论 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是函数优先特性?
  • 什么是即时编译型?
  • 什么是多范式?范式指什么?
  • 什么是命令式、声明式?
  • 关于 JS 语言的动态特性指什么?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档