JavaScript
什么是JavaScript
概述
JavaScript(JS)是一种具有函数优先特性的轻量级、解释型的编程语言。虽然作为 Web 页面中的脚本语言被人所熟知,但是它也被用到了很多非浏览器环境中,例如 Node.js 等。进一步说,JavaScript 是一种基于原型、多范式、单线程的动态语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。
下面贴一个JavaScript的历史,还是蛮有意思的
JavaScript 的发展史 - 知乎 (zhihu.com)
目前最新版本已到ES6版本
快速入门
引入JavaScript
内部标签
<script>alert("hello")</script>
- 外部引入
<script src="js/js.js"></script>
浏览器控制台调试
在页面上可以按F12调出控制台,可以在这里输出当前页面的变量值(或者写脚本),非常方便。
基本语法
一、数据结构
JavaScript的数据结构包括:标识符、关键字、常量、变量等。
1、标识符
标识符,说白了,就是一个名字。在JavaScript中,变量和函数等都需要定义一个名字,这个名字就可以称为“标识符”。
JavaScript语言中标识符最重要的3点就是:
(1)第一个字符必须是字母、下划线(_)或美元符号这3种其中之一,其后的字符可以是字母、数字或下划线、美元符号;
(2)变量名不能包含空格、加号、减号等符号;
(3)标识符不能和JavaScript中用于其他目的的关键字同名;
2、关键字
JavaScript关键字是指在JavaScript语言中有特定含义,成为JavaScript语法中一部分的那些字。
3、常量
常量,顾名思义就是指不能改变的量。常量的指从定义开始就是固定的,一直到程序结束。
常量主要用于为程序提供固定和精确的值,包括数值和字符串,如数字、逻辑值真(true)、逻辑值假(false)等都是常量。
4、变量
变量,顾名思义,就是指在程序运行过程中,其值是可以改变的。
二、JavaScript数据类型
JavaScript数据类型有2大分类:一是“基本数据类型”,二是“特殊数据类型”。
其中,基本数据类型包括以下3种:
(1)数字型(Number型):如整型84,浮点型3.14; (2)字符串型(String型):如"hello world"; (3)布尔型(Boolean型):true或fasle; 特殊数据类型有3种:
(1)空值(null型); (2)未定义值(undefined型); (3)转义字符;
三、运算符
JavaScript的运算符按运算符类型可以分为以下5种:
(1)算术运算符;
(2)比较运算符;
(3)赋值运算符;
(4)逻辑运算符;
(5)条件运算符;
四、typeof运算符
typeof运算符用于返回它的操作数当前所容纳的数据的类型,这对于判断一个变量是否已被定义特别有用。
例如:typeof(1)返回值是number,typeof("javascript")返回值是string。
五、表达式
表达式是一个语句的集合,计算结果是个单一值。
在JavaScript中,常见的表达式有4种:
(1)赋值表达式;
(2)算术表达式;
(3)布尔表达式;
(4)字符串表达式;
六、类型转换
1、字符串型转换为数值型
在JavaScript中,将字符串型数据转换为数值型数据有parseInt()和parseFloat()这2种方法。其中,parseInt()可以将字符串转换为整型数据;parseFloat()可以将字符串转换为浮点型数据。
parseInt() //将字符串型转换为整型
parseFloat() //将字符串型转换为浮点型
2、数值型转换为字符串型
在JavaScript中,将数值型数据(整型或浮点型)转换为字符串,都是使用toString()方法。
七、Tips
1、执行顺序
JavaScript程序按照在HTML文档中出现的顺序逐行执行。如果需要在整个HTML文件中执行,最好将其放在HTML文件的标签中。某些代码,如函数体内的代码,不会被立即执行,只有当所在的函数被其他程序调用时,该代码才会被执行。
2、区分大小写
JavaScript是严格区分大小写的。例如str和Str这是两个完全不同的变量。
3、分号和空格
在JavaScript中,语句的分号“;”是可有可无的。但是我们强烈要求大家在每一句语句后面加一个分号“;”,这是一个非常重要的代码编写习惯。
函数
一、函数是什么?
函数,就是一个一系列JavaScript语句的集合,这是为了完成某一个会重复使用的特定功能。在需要该功能的时候,直接调用函数即可,而不必每次都编写一大堆重复的代码。并且在需要修改该功能的时候,也只要修改和维护这一个函数即可。
总之,将语句集合成函数,好处就是方便代码重用。并且,一个好的函数名,可以让人一眼就知道这个函数实现的是什么功能,方便维护。
函数的使用只需要2步:
(1)定义函数;
(2)调用函数;
二、函数的定义
在JavaScript中,使用函数前,必须用function关键字来定义函数。
函数常用方式有2种:
(1)不指定函数名的函数;
(2)指定函数名的函数;
函数的调用
常用的函数调用方式有4种:
(1)简单调用;
(2)在表达式中调用;
(3)在事件响应中调用;
(4)通过链接调用;
特殊函数
JavaScript特殊函数有3种:
(1)嵌套函数; (2)递归函数; (3)内置函数;
变量的作用域
在js中, var 定义的变量实际上有作用域的范围的。
在函数体中声明变量,在函数体外不可以访问。
访问不存在的变量名会报XXX is not defined
内部函数可以访问外部函数的成员,反之则不行,使用闭包可以解决外部访问函数内部变量的方法。
全局对象 window
JavaScript实际上只有一个全局作用域,任何变量(函数也可以视为变量),假设没有函数作用范围内找到,就会向外查找,如果全局作用域都没有找到,就报XXX is not defined错误。
规范
let关键字,解决局部作用域冲突问题
定义常量。一般用全部大写字母命名的变量就是常量。
如何解决常量被修改的问题,在ES6引入了常量关键字 const。
字符串对象
字符串,是程序设计中经常使用的一种数据类型,在每一种编程语言中都非常非常的重要。
这一章我们给大家详细地介绍JavaScript中的字符串对象string,然后给大家讲解一下各种操作字符串的技巧。有可能这些技巧一时半会你用不上,但是学习知识有一种说法是:你只有接触了某个知识点,即使将来你已经忘记了这个知识点具体是怎样的了,不过你却能想到用这么一个知识去帮你解决某些问题。但是,如果你没有接触这个知识点,你大脑是完全对这个知识没有概念,你连翻书的份都没,还谈解决什么问题?额,说得有点拗口,不过也是我作为程序猿多年的经验。
字符串对象string有很多方法,例如match()方法、search()方法、replace()方法等。有可能这些方法你学了一阵子都忘记具体语法是怎样的了,其实你不要埋怨自己笨,因为不经常用的知识,我们往往都容易忘记。等你需要用到这些语法了,再回来翻翻就可以了。然后经历过多次使用了,这些语法就根深蒂固了。
不过呢,在此说一下,在这一章包括之前或之后的章节,对象都有很多方法或属性,不要求每一种都掌握,但是至少我们要去看看,这样我们在以后开发中需要用到的时候,大脑“仅存”的记忆都能提醒我们要用到哪些知识点,然后我们回来翻翻就行了。
二、length属性简介
在JavaScript中,对于字符串来说,要掌握的属性就只有一个,那就是length属性。我们可以通过length属性来获取字符串的长度。
三、match()方法简介
在JavaScript中,使用match()方法可以从字符串内索引指定的值,或者找到一个或多个正则表达式的匹配。
四、search()方法简介
在JavaScript中,search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。
五、indexOf()方法简介
在JavaScript中,可以使用indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
六、replace()方法简介
在JavaScript中,replace()方法常常用于在字符串中用一些字符替换另一些字符,或者替换一个与正则表达式匹配的子串。
七、charAt()方法简介
在JavaScript中,可以使用charAt()方法来获取字符串中的某一个字符。这个方法我们在之前的教程中已经多次接触了。这个方法非常好用,在实际开发中也经常用到。
八、字符串英文大小写转化
在JavaScript中,使用toLowerCase()和toUpperCase()这两种方法来转化字符串的大小写。其中,toLowerCase()方法将大写字符串转换为小写字符串;toUpperCase()将小写字符串转换为大写字符串。
九、连接字符串
在JavaScript中,可以使用concat()方法来连接2个或多个字符串。
十、比较字符串
在javascript中,可以使用localeCompare()方法用本地特定的顺序来比较两个字符串。
十一、split()方法
在javascript中,可以使用split()方法把一个字符串分割成字符串数组。
十二、从字符串提取字符串
在JavaScript中,可以使用substring()方法来提取字符串中的某一部分字符串。
日期对象
一、创建日期对象
在JavaScript中,创建日期对象必须使用“new语句”。使用关键字new新建日期对象时,常用的有2种:
-
无参构造
-
有参构造
-
可以传入的参数格式如下:
- "2015-5-3"
- "May 3,2015"
- "2015/5/3"
- ....
-
二、日期对象方法
这一章学习了很多日期对象的方法。日期对象Date的方法主要分为三大组:setXxx、getXxx和toXxx。
setXxx用于设置时间和日期值;getXxx用于获取时间和日期值;toXxxx主要是将日期转换为指定格式。