提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
本文精细讲解JavaScript的基础语法,可以说是js初学者的学习笔记,较为基础,融合黑马pink老师的课程,我觉得pink老师讲的是很好的,还融合了一些js的基础博客做出的学习笔记,整体全面且高效,需要注意的是,本文很基础,前面多为ES5的语法,ES6会在后面补充。本文会持续更新,直到完成JavaScript基础的学习。后续如果大家需要DOM,BOM,JQuary,ES6,7以及React,Node.js,小程序开发的博客的话,我也会更新滴
提示:以下是本篇文章正文内容,下面案例可供参考
一、JavaScript导读
1.1 什么是JavaScript(这里借鉴Js红宝书的内容,看一看就可以了)
1995年,JavaScript问世。当时,它的主要用途是代替Perl等服务器端语
言处理输入验证。在此之前,要验证某个必填字段是否已填写,或者某
个输入的值是否有效,需要与服务器的一次往返通信。网景公司希望通
过在其Navigator浏览器中加入JavaScript来改变这个局面。在那个普遍通
过电话拨号上网的年代,由客户端处理某些基本的验证是让人兴奋的新
功能。缓慢的网速让页面每次刷新都考验着人们的耐心。
从那时起,JavaScript逐渐成为市面上所有主流浏览器的标配。如今,
JavaScript的应用也不再局限于数据验证,而是渗透到浏览器窗口及其内
容的方方面面。JavaScript已被公认为主流的编程语言,能够实现复杂的
计算与交互,包括闭包、匿名(lambda)函数,甚至元编程等特性。不
仅是桌面浏览器,手机浏览器和屏幕阅读器也支持JavaScript,其重要性
可见一斑。就连拥有自家客户端脚本语言VBScript的微软公司,也在其
Internet Explorer(以下简称IE)浏览器最初的版本中包含了自己的
JavaScript实现。
从简单的输入验证脚本到强大的编程语言,JavaScript的崛起没有任何人
预测到。它很简单,学会用只要几分钟;它又很复杂,掌握它要很多
年。要真正学好用好JavaScript,理解其本质、历史及局限性是非常重要
的。
1.2 JavaScript的起源(即历史)
随着Web日益流行,对客户端脚本语言的需求也越来越强烈。当时,大
多数用户使用28.8kbit/s的调制解调器上网,但网页变得越来越大、越来
越复杂。为验证简单的表单而需要大量与服务器的往返通信成为用户的
痛点。想象一下,你填写完表单,单击“提交”按钮,等30秒处理,然后
看到一条消息,告诉你有一个必填字段没填。网景在当时是引领技术革
新的公司,它将开发一个客户端脚本语言来处理这种简单的数据验证提
上了日程。
1995年,网景公司一位名叫Brendan Eich的工程师,开始为即将发布的
Netscape Navigator 2开发一个叫Mocha(后来改名为LiveScript)的脚本
语言。当时的计划是在客户端和服务器端都使用它,它在服务器端叫
LiveWire。
为了赶上发布时间,网景与Sun公司结为开发联盟,共同完成LiveScript
的开发。就在Netscape Navigator 2正式发布前,网景把LiveScript改名为
JavaScript,以便搭上媒体当时热烈炒作Java的顺风车。
由于JavaScript 1.0很成功,网景又在Netscape Navigator 3中发布了1.1版
本。尚未成熟的Web的受欢迎程度创造了历史新高,而网景则稳居市场
领导者的位置。这时候,微软决定向IE投入更多资源。就在Netscape
Navigator 3发布后不久,微软发布了IE3,其中包含自己名为JScript(叫
这个名字是为了避免与网景发生许可纠纷)的JavaScript实现。1996年8
月,微软重磅进入Web浏览器领域,这是网景永远的痛,但它代表
JavaScript作为一门语言向前迈进了一大步。
微软的JavaScript实现意味着出现了两个版本的JavaScript:Netscape
Navigator中的JavaScript,以及IE中的JScript。与C语言以及很多其他编
程语言不同,JavaScript还没有规范其语法或特性的标准,两个版本并存
让这个问题更加突出了。随着业界担忧日甚,JavaScript终于踏上了标准
化的征程。
1997年,JavaScript 1.1作为提案被提交给欧洲计算机制造商协会
(Ecma)。第39技术委员会(TC39)承担了“标准化一门通用、跨平
台、厂商中立的脚本语言的语法和语义”的任务(参见TC39-ECMAScript)。TC39委员会由来自网景、Sun、微软、Borland、
Nombas和其他对这门脚本语言有兴趣的公司的工程师组成。他们花了
数月时间打造出ECMA-262,也就是ECMAScript(发音为“ek-mascript”)这个新的脚本语言标准。
1998年,国际标准化组织(ISO)和国际电工委员会(IEC)也将
ECMAScript采纳为标准(ISO/IEC-16262)。自此以后,各家浏览器均
以ECMAScript作为自己JavaScript实现的依据,虽然具体实现各有不
同。
1.3 JavaScript的组成
JavaScript目前主要由三部分组成
1.ECMAScript:也就是JavaScript的基础语法
2.DOM:全称叫做Document Object Model(页面文档模型)
可以通过DOM提供的接口对页面上的各种元素进行操作(大小,位置,颜色等),这里不去具体谈论DOM,在JavaScript基础语法学完后再去学习
3.BOM:全称Browser Object Model(浏览器对象模型)
可以与浏览器窗口进行互动的对象结构
可以操作浏览器窗口 ,例如:弹出框,控制浏览器跳转,获取分配率等,这里也是在基础学习完成后再进行BOM学习,由此可见JavaScript基础语法的重要性
1.4 JavaScript的书写方式
1.4.0 引号拓展问题
在JavaScript中括号里面的内容加引号时,可以用双引号,也可以使用单引号(当然,嵌套除外),而在HTML中括号里采用双引号,所以在JavaScript里面推荐使用单引号,以便将二者进行区分
1.4.1 行内
在HTML页面中的*</body*>标签里去写
代码如下(示例):
<input type="button" value="shaka" onclick="alert('Virgo')">
这里面的内容为HTML的内容,如果不会的话需要HTML的学习
这行代码可以在浏览器页面得到一个名为shaka的按钮,按下去会得到一个警示框,警示框输出Virgo,
alert是弹出警示框的意思,这点在1.6.1会解释
1.4.2 内嵌(也叫做标签引用)
在HTML的页面去书写script标签,然后在标签里输入内容
代码如下(示例):
<script>
alert('今天是个好日子');
</script>
弹出警示框,输出内容“今天是个好日子”
1.4.3外部(也叫做文件引用)
建立一个.js文件,在.js文件里面输入内容,这里命名为one.js
代码如下(示例):
one.js
alert('今天是个好日子');
然后在HTML界面中将其引入
代码如下(示例):
<script src="one.js">“注意这里不可以写任何代码,否则错误”</script>
这里的代码效果和1.4.2一致
1.5 JavaScript注释
所谓注释,就是解释代码内容
在js中,有两种注释方法
1.单行注释:// 快捷键为ctrl + /
代码如下(示例):
<script>
//这里是注释的内容
</script>
2.多行注释: /* */ 快捷键为shift + alt +a
代码如下(示例):
<script>
/*这里为注释内容
这里也是注释内容*/
</script>
快捷键在VSCode中是可以修改的,上面写的是默认的
1.6 JavaScript常用的输入输出语句
1.6.1 浏览器弹出警示框
浏览器弹出警示框,在上面用的就是这个,是可以直观展示给用户的
代码如下(示例):
<script>
alert('这是一个警示框');
</script>
1.6.2 控制台打印输出信息
输出在控制台上的,给我们程序员自己看的
代码如下(示例):
<script>
console.log('这是在控制台输出的');
</script>
打开浏览器后。按F12,即可打开控制台
1.6.3 浏览器页面输出
向浏览器页面中输出文本,类似于HTML
代码如下(示例):
<script>
document.write('这是在页面展示的文本');
</script>
1.6.4 输入框输入
浏览器弹出一个输入框,用户可以输入内容
代码如下(示例):
<script>
prompt('请您输入内容');
</script>
二、JavaScript基础语法(ECMAScript)
1.变量
1.1 什么是变量
本质:变量的本质是程序在内存中申请一块用来存放数据的空间
这个本质可能小白们听不太懂,用白话来说就是:我们需要存入数据,而这个数据需要一个容器来存放它,也就是说,变量就是用来存放数据的容器
1.2 变量是用来做什么的
上面说到了,变量是用来存数据的,它可以存入我们程序员写的代码内容,同时它也可以存入用户输入的内容,变量这个概念非常非常重要,以后可以说是,哪里都得用这个东西!很重要哦!
1.3 变量的写法以及初始化
变量的声明:需要一个关键字var来声明变量
代码如下(示例):
<script>
var name;//用var关键字来声明一个变量 name
</script>
变量的赋值:用等号进行赋值
代码如下(示例):
<script>
name = 'shaka';//接上面,用等号进行赋值
</script>
此时,一个变量name已经声明并且赋值完毕
我们发现这个声明和赋值可以一步完成,一步完成变量的声明和赋值,我们称其变量的初始化
代码如下(示例):
<script>
var name = 'shaka';//变量的初始化
</script>
1.4 变量的拓展
1 .更新变量,以最后一次为准
代码如下(示例):
<script>
var name = 'shaka';
var name = 'virgo';//此时我们更新了变量name
</script>
我们用控制台输出变量name验证结果
console.log(name);//注意我们输入的是变量。所以括号内不加引号
我们发现它是以最后一次输入为准
2 .声明多个变量,只需要写一个var关键字
代码如下(示例):
<script>
var name ='shaka';
age = 18;
address = '中国辽宁'
</script>
3. 特殊情况
(1)只声明,不赋值
(2)不声明,不赋值
(3)不声明,只赋值
代码如下(示例1):
<script>
var age;//只声明不赋值
console.log(age)//unfefined
</script>
代码如下(示例2):
<script>
console.log(age);//没声明,没赋值,直接使用
//会报错
</script>
代码如下(示例3):
<script>
age = 18;//没用var关键字声明
console.log(age);//输出18 可以执行,但是不提倡
</script>
1.5 变量的命名规范
(1)由字母,数字,下划线(_),美元符号($)组成
(2)不能以数字开头
(3)严格区分大小写
(4)不能是关键字,保留字 例如:var 、while、for等等(这个关键字和保留字在csdn可以查到全的,我这里就不再总结了)
(5)变量名最好有意义(能看懂),比如 name,age这种单词,或者是str等,方便观看
(6)驼峰命名法:首字母小写,后面单词首字母大写,例如:myFirstName
1.6 交换变量值(临时变量)黑马pink老师实例
一个变量apple1=’青苹果‘,一个变量apple2=‘红苹果’,要求把两个变量中的值进行互换
思路:
1.需要一个临时变量temp(暂时存放apple1里面的青苹果,一会再给apple2)
2.把apple1的值给临时变量temp
3.把apple2的值给apple1
4.把temp的值给apple2
图解如下
代码如下(示例):
<script>
var temp;//临时变量,不需要赋值
var apple1 = '青苹果';
var apple2 = '红苹果';
temp = apple1;//需要注意的是,赋值过程是把右边的值赋值给左边
apple1 = apple2;
apple2 = temp;
console.log(apple1);//青苹果
</script>
2.数据类型
代码如下(示例):
总结
提示:这里对文章进行总结:
例如:以上就是