特点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 代码的书写位置在哪里呢?这个问题,也可以理解成:引入 js 代码,有哪几种方式。
方式1:行内式
代码举例:
<input type=“button” value=“点我点我” οnclick=“alert(‘千古壹号’)” />
完整的可执行代码如下:
<input type=“button” value=“点我点我” οnclick=“alert(‘千古壹号的方式1’)” />
分析:
-
可以将单行或少量 JS 代码写在HTML标签的事件属性中(以 on 开头的属性),比如放在上面的
onclick
点击事件中。 -
这种书写方式,不推荐使用,原因是:可读性差,尤其是需要编写大量 JS代码时,容易出错;引号多层嵌套时,也容易出错。
-
关于代码中的「引号」,在HTML标签中,我们推荐使用双引号, JS 中我们推荐使用单引号。
方式2、内嵌式
我们可以在html 页面的 <body>
标签里放入<script type=”text/javascript”></script>
标签对儿,并在<script>
里书写JavaScript 代码:
分析:
-
text表示纯文本,因为JavaScript也是一个纯文本的语言。
-
可以将多行JS代码写到
<script>
标签中。 -
内嵌式 JS 是学习时常用的方式。
方式3:引入外部的 JS 文件
上面这段代码,依然是放到body标签里,可以和内嵌的js代码并列。
另外,引用外部 JS文件的 script 标签中间不可以再写代码。
总结:
我们在实战开发中,基本都是采用方式3,因为这种方式,可以确保 html 文件和 js 文件是分开的,有利于代码的结构化和复用。很少会有人把一大堆 js 代码塞到 html 文件里。
学习程序,是有规律可循的,程序会有有相同的部分,这些部分就是一种规定,不能更改,我们成为:语法。
(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 + /」。
弹出警告框:alert语句
我们要学习的第一个语句,就是alert语句。
代码举例如下:
alert(英文翻译为“警报”)的用途:弹出“警告框”。
alert("")
警告框的效果如下:
这个警告框,在IE浏览器中长这样:
上面的代码中,如果写了两个alert()语句的话,网页的效果是:弹出第一个警告框,点击确定后,继续弹出第二个警告框。
控制台输出:console.log(“”)
console.log("")
表示在控制台中输出。console表示“控制台”,log表示“输出”。
在Chrome浏览器中,按F12即可打开控制台,选择「console」栏,即可看到打印的内容。
console.log("")
效果如下:
控制台是工程师、程序员调试程序的地方。程序员经常使用这条语句输出一些东西,来测试程序是否正确。
普通人是不会在意控制台的,但是有些网站另藏玄机。有个很有意思的地方是,百度首页的控制台,悄悄地放了一段招聘信息:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
总结一下这三次面试下来我的经验是:
-
一定不要死记硬背,要理解原理,否则面试官一深入就会露馅!
-
代码能力一定要注重,尤其是很多原理性的代码(之前两次让我写过Node中间件,Promise.all,双向绑定原理,被虐的怀疑人生)!
-
尽量从面试官的问题中表现自己知识的深度与广度,让面试官发现你的闪光点!
-
多刷面经!
我把所有遇到的面试题都做了一个整理,并且阅读了很多大牛的博客之后写了解析,免费分享给大家,算是一个感恩回馈吧,有需要的朋友【点击我】免费获取。祝大家早日拿到自己心怡的工作!
篇幅有限,仅展示部分内容
总结一下这三次面试下来我的经验是:
-
一定不要死记硬背,要理解原理,否则面试官一深入就会露馅!
-
代码能力一定要注重,尤其是很多原理性的代码(之前两次让我写过Node中间件,Promise.all,双向绑定原理,被虐的怀疑人生)!
-
尽量从面试官的问题中表现自己知识的深度与广度,让面试官发现你的闪光点!
-
多刷面经!
我把所有遇到的面试题都做了一个整理,并且阅读了很多大牛的博客之后写了解析,免费分享给大家,算是一个感恩回馈吧,有需要的朋友【点击我】免费获取。祝大家早日拿到自己心怡的工作!
篇幅有限,仅展示部分内容