面试官问我 JavaScript 究竟是什么?我居然懵了

作者 : 开心源码 本文共3142个字,预计阅读时间需要8分钟 发布时间: 2022-05-13 共143人阅读

前言

引用《JavaScript 高级程序设计第四版》中说的话 ——“从简单的输入验证脚本到强大的编程语言,JavaScript 的崛起没有任何人预测到。它很简单,学会用只需几分钟;它又很复杂,掌握它要很多年。要真正学好用好 JavaScript,了解其本质、历史及局限性是非常重要的”。

面试官:JavaScript 是什么?

我:em… JavaScript 就是 JavaScript…

试想一下,假如面试官问你:JavaScript 是个啥?你会怎样答复呢?说实话,听到这个问题的时候我的脑子是有一瞬间是空白的。我们学了这么久的前台,连最简单的 “JavaScript 是什么?”这个问题都不能跟面试官马上说出个所以然。今天我们就这个问题来聊一聊,当面试官问你 JavaScript 是什么的时候,你可以从哪几个点切入,尽可能说多、说全并且给面试官留下一个好印象。

JavaScript 的定位是什么?

1、JavaScript 是脚本编程语言

为什么是脚本编程语言呢?我们先来简单看看关于 JavaScript 问世的风风雨雨,一句话带过就是,1995 年网景公司为理解决 页面中简单的表单验证时用户端和服务端通信时延 推出了的一款叫做 JavaScript 的用户端脚本语言并且在当时获得了很大的成果,这时微软决定向 IE 投入更多资源,针对性推出 JScript,再到 Ecma (欧洲计算机制造商协会)推出 ECMAScript (发音为 “ek-ma-script”)国际标准化了两门语言,来处理两个版本并存问题。

脚本语言能干啥呢?它可以在网页上实现复杂的功能,包括操作页面中的 DOM 元素、CSS 样式,能实现交互式的地图,2D/3D 动画,滚动播放的视频等等。JavaScript 在它所在的宿主环境中具备非常强大且灵活的能力,给开发人员提供了更多的可能性。

2、JavaScript 是弱类型语言

这意味着变量可以被隐式地转换为另一个类型。类型的隐藏转换,给 JavaScript 带了了肯定的灵活性,但是也添加了规则的复杂度与发生错误的可能性。

二元运算符 + 会把两个操作数转换为字符串,除非两个操作数都为数字类型。这是由于 + 也可以用来连接字符串。

二元操作符 – 会把两个操作数转换为数字类型。

一元操作符,包括 + 和 -,都会把操作数转换为数字。

3、JavaScript 是动态类型的

正如大部分脚本语言,其类型与值而不是与变量关联。

例如变量可以为数值,随后又可被赋值为字符串。

可以在运行时直接执行 Javascript 语句

4、JavaScript 是单线程的

JavaScript 需要和页面进行交互,操作 DOM 等,假如是多线程的话,会带来很复杂的同步问题。比方,假定 JavaScript 同时有两个线程,一个线程在某个 DOM 节点上增加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准?所以这决定了它只能是单线程,

5JavaScript 解释型语言

解释型语言(英语:Interpreted language)是一种编程语言类型。这种类型的编程语言,会将代码一句一句直接运行,不需要像编译型语言(Compiled language)一样,经过编译器先行编译为机器代码,之后再运行。

6、JavaScript 具备良好的跨平台性

跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如 Windows、Linux、Mac、Android、iOS 等)。

JavaScript 和 ECMAScript 有什么区别,以及和 DOM 、BOM 的关系?

首先简单概括 ECMAScript、 DOM 、BOM 三者概念吧。

1、DOM

DOM(文档对象模型),提供了与网页内容交互的 方法 和 接口。 DOM 将整个页面笼统为一组分层节点。HTML 或者 XML 页面的每个组成部分都是一种节点,包含不同的数据。DOM 通过创立表示文档的树,让开发者可以随心所欲地控制网页的内容和结构。使用 DOM API,可以轻松地删除、增加、替换、修改节点。

2、BOM

BOM(浏览器对象模型),提供了与浏览器交互的 方法 和 接口。 BOM 主要针对浏览器窗口和子窗口 (frame)。使用 BOM,开发者可以操控浏览器显示页面之外的部分, 比方:

1)弹出新浏览器窗口的能力;2)移动、缩放和关闭浏览器窗口的能力;3)navigator 对象,提供关于浏览器的详尽信息;4)location 对象,提供浏览器加载页面的详尽信息;5)screen对象,提供关于客户屏幕分辨率的详尽信息;6)performance 对象,提供浏览器内存占用、导航行为和时间统计的详尽信息;7)对浏览器存储相关的操作比方 cookies、sessionStorage 、localStorage 等;8)其余自己设置对象,如 XMLHttpRequest 和 IE 的 ActiveXObject;

3、ECMAScript

ECMAScript 形容了 JavaScript 的语法和基本对象:1)语法;2)类型;3)语句;4)关键字;5) 保留字;6)操作符;7)全局对象;

ECMA 发布 262 号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为 ECMAScript,这个版本就是 1.0 版,所以一句话形容就是,ECMAScript 是一套规范,JavaScript 则是 ECMAScript 一种实现。为什么说是一种实现呢,由于 Adobe ActionScript 同样也实现了 ECMAScript,JScript 也同样实现了 ECMAScript。

ES 版本相关

关系

所以在简单理解了上面几个关键的概念之后我们就很容易得出他们之间的关系啦!在《JavaScript 高级程序设计第四版》中有这样一张图,将 JavaScript 、ECMAScript、 DOM 、BOM 四者的关系形容的非常清晰。

我们得出结论:ECMAScript、 DOM 、BOM 是 JavaScript 的组成部分。

我目前是在职前台开发,假如你现在也想学习前台开发技术,在入门学习前台的过程当中有遇见任何关于学习方法,学习路线,学习效率等方面的问题,你都可以申请加入我的前台学习交流3000人裙:前面:851 中间:231 最后:348。里面聚集了少量正在自学前台的初学者裙文件里面也有我做前台技术这段时间整理的少量前台学习手册,前台面试题,前台开发工具,PDF文档书籍教程,需要的话都可以自行来获取下载。

总结

所以看到文章最后,当面试官问:”JavaScript 是什么 “ 的时候,我们就知道从哪开始说,从哪些方面开始讲。所以假如我们把这篇文章的要点都和面试官说清楚了的话,相信可以给面试官留下一个不至于太糟糕的印象

JavaScript 的定位

JavaScript 是脚本编程语言

JavaScript 是弱类型语言

JavaScript 是动态类型的

JavaScript 是单线程的

JavaScript 解释型语言

JavaScript 具备良好的跨平台性

JavaScript 和 ECMAScript 的区别,以及和 DOM 、BOM 的关系

最后还是引用开头那段话,” 要真正学好用好 JavaScript,了解其本质、历史及局限性是非常重要的 “ ,一起共勉~

DOM(文档对象模型),提供了与网页内容交互的 方法 和 接口

BOM(浏览器对象模型),提供了与浏览器交互的 方法 和 接口

ECMAScript 形容了 JavaScript 的语法和基本对象

参考

《JavaScript 高级程序设计第四版》

维基百科 JavaScript

ECMAScript 6 简介

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 面试官问我 JavaScript 究竟是什么?我居然懵了

发表回复