GitHub标星13

本文介绍了ECMAScript语言标准、JavaScript的编译与解释机制,以及在面试中强调理解原理和代码能力的重要性。同时分享了作者的面试经验和学习资源,提倡系统化学习和面试准备。
摘要由CSDN通过智能技术生成

特点2:单线程

特点3:ECMAScript标准

ECMAScript是一种由 ECMA 国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)制定和发布的脚本语言规范。

JavaScript是由公司开发而成的,问题是不便于其他的公司拓展和使用。所以欧洲的这个ECMA的组织,牵头制定JavaScript的标准,取名为ECMAScript。

简单来说,ECMAScript不是一门语言,而是一个标准。ECMAScript 规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JS语法工业标准。

ECMAScript在2015年6月,发布了ECMAScript 6版本(ES6),语言的能力更强(也包含了很多新特性)。但是,浏览器的厂商不会那么快去追上这个标准,需要时间。

编程语言的分类


翻译器

计算机不能直接理解任何除机器语言以外的语言,所以必须要把程序员所编写的语言翻译成机器语言,计算机才能执行程序。程序语言翻译成机器语言的工具,被称为翻译器

由此可见,所谓的“翻译”,指的是翻译成计算机能够执行的指令。

翻译器翻译的方式有两种:一种是编译,另一种是解释。两种方式之间的区别在于翻译的时机不同。

  • 编译器:在代码执行之前,事前把所有的代码一次性翻译好,生成中间代码文件,然后整体执行。

  • 解释器:边翻译,边执行(在代码执行时进行及时翻译,并立即执行)。当编译器以解释的方式运行时,也称之为解释器。

对应的语言,称之为“编译型语言”、“解释型语言”。

编译型语言

  • 定义:事先把所有的代码一次性翻译好,然后整体执行。

  • 优点:运行更快。

  • 不足:移植性不好,不跨平台。

  • 编译型语言举例:c、c++

比如说,c语言的代码文件是.c后缀,翻译之后文件是.obj后缀,系统执行的是 obj 文件;再比如, java 语言的代码文件是.java后缀,翻译之后的文件是.class后缀。(注意,Java 语言不是严格的 编译型语言,这个一会儿会讲)

解释型语言

  • 定义:边翻译边执行(翻译一行,执行一行),不需要事先一次性翻译。

  • 优点:移植性好,跨平台。

  • 缺点:运行更慢。

  • 解释型语言举例:JavaScript、php、Python。

Java语言

Java 语言既不是编译型语言,也不是解释型语言。翻译过程:

(1)编译:.java代码文件先通过 javac 命令编译成.class文件。

(2)执行:.class文件再通过 jvm 虚拟机,解释执行。有了 jvm 的存在,让 java 跨平台了。

开始写第一行JavaScript代码


JavaScript 代码的书写位置在哪里呢?这个问题,也可以理解成:引入 js 代码,有哪几种方式。

方式1:行内式

代码举例

<input type=“button” value=“点我点我” οnclick=“alert(‘千古壹号’)” />

完整的可执行代码如下:

Document

<input type=“button” value=“点我点我” οnclick=“alert(‘千古壹号的方式1’)” />

分析

  • 可以将单行或少量 JS 代码写在HTML标签的事件属性中(以 on 开头的属性),比如放在上面的 onclick点击事件中。

  • 这种书写方式,不推荐使用,原因是:可读性差,尤其是需要编写大量 JS代码时,容易出错;引号多层嵌套时,也容易出错。

  • 关于代码中的「引号」,在HTML标签中,我们推荐使用双引号, JS 中我们推荐使用单引号。

方式2、内嵌式

我们可以在html 页面的 <body> 标签里放入<script type=”text/javascript”></script>标签对儿,并在<script>里书写JavaScript 代码:

Document

分析

  • text表示纯文本,因为JavaScript也是一个纯文本的语言。

  • 可以将多行JS代码写到 <script> 标签中。

  • 内嵌式 JS 是学习时常用的方式。

方式3:引入外部的 JS 文件

Document

上面这段代码,依然是放到body标签里,可以和内嵌的js代码并列。

另外,引用外部 JS文件的 script 标签中间不可以再写代码。

总结

我们在实战开发中,基本都是采用方式3,因为这种方式,可以确保 html 文件和 js 文件是分开的,有利于代码的结构化和复用。很少会有人把一大堆 js 代码塞到 html 文件里。

JS一些简单的语法规则


学习程序,是有规律可循的,程序会有有相同的部分,这些部分就是一种规定,不能更改,我们成为:语法。

(1)JavaScript对换行、缩进、空格不敏感。每一条语句以分号结尾。

代码一:

等价于代码二:

备注:每一条语句末尾要加上分号,虽然分号不是必须加的,如果不写分号,浏览器会自动添加,但是会消耗一些系统资源。

(2)所有的符号,都是英语的。比如括号、引号、分号。

如果你用的是搜狗拼音,建议不要用shift切换中英文(可以在搜狗软件里进行设置),不然很容易输入中文的分号;建议用ctrl+space切换中英文输入法。

(3)严格区分大小写。

注释


我们不要把 HTML、CSS、JavaScript三者的注释格式搞混淆了。

HTML 的注释

CSS的注释

注意:CSS只有/* */这种注释,没有//这种注释。而且注释要写在<style>标签里面才算生效哦。

JavaScript 的注释

单行注释:

// 我是注释

多行注释:

/*

多行注释1

多行注释2

*/

补充:VS Code中,单行注释的快捷键是「Ctrl + /」,多行注释的默认快捷键是「Alt + Shift + A」。

当然,如果你觉得多行注释的默认快捷键不方便,我们还可以修改默认快捷键。操作如下:

VS Code --> 首选项 --> 键盘快捷方式 --> 查找“注释”这两个字 --> 将原来的快捷键修改为「Ctrl + Shift + /」。

Javascript 输入输出语句


弹出警告框:alert语句

我们要学习的第一个语句,就是alert语句。

代码举例如下:

Document

alert(英文翻译为“警报”)的用途:弹出“警告框”

alert("")警告框的效果如下:

这个警告框,在IE浏览器中长这样:

上面的代码中,如果写了两个alert()语句的话,网页的效果是:弹出第一个警告框,点击确定后,继续弹出第二个警告框。

控制台输出:console.log(“”)

console.log("")表示在控制台中输出。console表示“控制台”,log表示“输出”。

在Chrome浏览器中,按F12即可打开控制台,选择「console」栏,即可看到打印的内容。

console.log("")效果如下:

控制台是工程师、程序员调试程序的地方。程序员经常使用这条语句输出一些东西,来测试程序是否正确。

普通人是不会在意控制台的,但是有些网站另藏玄机。有个很有意思的地方是,百度首页的控制台,悄悄地放了一段招聘信息:

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)


后记


总结一下这三次面试下来我的经验是:

  1. 一定不要死记硬背,要理解原理,否则面试官一深入就会露馅!

  2. 代码能力一定要注重,尤其是很多原理性的代码(之前两次让我写过Node中间件,Promise.all,双向绑定原理,被虐的怀疑人生)!

  3. 尽量从面试官的问题中表现自己知识的深度与广度,让面试官发现你的闪光点!

  4. 多刷面经!

我把所有遇到的面试题都做了一个整理,并且阅读了很多大牛的博客之后写了解析,免费分享给大家,算是一个感恩回馈吧,有需要的朋友【点击我】免费获取。祝大家早日拿到自己心怡的工作!

篇幅有限,仅展示部分内容




总结一下这三次面试下来我的经验是:

  1. 一定不要死记硬背,要理解原理,否则面试官一深入就会露馅!

  2. 代码能力一定要注重,尤其是很多原理性的代码(之前两次让我写过Node中间件,Promise.all,双向绑定原理,被虐的怀疑人生)!

  3. 尽量从面试官的问题中表现自己知识的深度与广度,让面试官发现你的闪光点!

  4. 多刷面经!

我把所有遇到的面试题都做了一个整理,并且阅读了很多大牛的博客之后写了解析,免费分享给大家,算是一个感恩回馈吧,有需要的朋友【点击我】免费获取。祝大家早日拿到自己心怡的工作!

篇幅有限,仅展示部分内容



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值