1. 什么是JavaScript?
JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。
JavaScript用于网页和用户之间的交互,比如提交的时候,进行用户名是否为空的判断。
完整的javascript由语言基础,BOM和DOM组成。
2. 通过JavaScript向文档中输入文本
document是javascript的内置对象,代表浏览器的文档部分
代码体现为:
3. script标签
javascript代码必须放在script标签中
script标签可以放在html的任何地方,一般建议放在head标签里
(1)script标签:
javascript都是放在script标签中的,一旦加载,就会执行。代码体现为:
(2)javascript顺序执行
如果有多段script代码,会按照从上到下,顺序执行。
(3)使用外部js文件
和css一样,当javascript代码特别多,并且都写在html里的时候,会显得比较繁杂,难以维护。这个时候可以采用和css一样的手段,把javascript代码剥离出来,单独放在一个文件里,在html中引用该文件即可。
准备一个hello.js,里面的是内容是
document.write("hello javascript ");
注意,hello.js文件中不要写 script标签
然后在html文件中写入代码,把两个文件放入一个文件夹下:
4. 注释
在代码中提供有效的注释,可以让代码更加易读和便于维护。javascript有两种注释方式:
(1)单行注释
(2)多行注释
5. 变量
(1)使用var声明一个变量:
(2)不适用var声明一个变量:
(3)变量命名:
命名规则和java差不多,开头可以用 _$和字母,其他部分可以用 $ _ 字母或者数字。
6. 基本数据类型
名称 |
说明 |
Number |
数字类型 |
String |
字符串类型 |
Boolean |
布尔类型 |
Undefined |
表示一个变量未被赋值 |
Null |
空的对象 |
(1)javascript中的Number可以表示十进制,八进制,十六进制整数,浮点数,科学记数法
(2)与java不同的是,javascript中没有字符的概念,只有字符串,所以单引号和双引号,都用来表示字符串。
(3)Boolean变量有两种值,分别是true或者false
(4)当一个变量被声明了,却没有赋值的时候,叫做 undefined.
(5)null表示一个对象不存在
(6)使用typeof来进行判断数据类型,正是因为变量是动态类型的,所以无法确定当前到底是哪种类型,这个时候,就可以使用typeof来进行判断。
7. 类型转换
(1)伪对象
javascript是一门很有意思的语言,即便是基本类型,也是伪对象,所以他们都有属性和方法。
变量a的类型是字符串,通过调用其为伪对象的属性length获取其长度。
(2)转换成字符串
无论是Number,Boolean还是String都有一个toString方法,用于转换为字符串。
(3)转化为数字
javascript分别提供内置函数 parseInt()和parseFloat(),转换为数字。
注:如果被转换的字符串,同时由数字和字符构成,那么parseInt会一直定位数字,直到出现非字符。 所以"10abc" 会被转换为 10。
(4)转换为Boolean
使用内置函数Boolean() 转换为Boolean值,当转换字符串时:非空即为true;当转换数字时:非0即为true;当转换对象时:非null即为true。
(5)Number()和parseInt()的区别?
Number()和parseInt()一样,都可以用来进行数字的转换区别在于:
当转换的内容包含非数字的时候,Number() 会返回NaN(Not a Number);
parseInt() 要看情况,如果以数字开头,就会返回开头的合法数字部分,如果以非数字开头,则返回NaN。
(6)String()和toString()的区别?
String()和toString()一样都会返回字符串,区别在于对null的处理:
String()会返回字符串"null";
toString() 就会报错,无法执行。
8. 函数
函数即一段可以重复使用的代码。function关键字用于定义一个函数,
print即函数的名称
()表示参数列表,像这样就指没有参数
{ 表示函数开始
} 表示函数结束。
光有函数的定义,还不够,它不会自动执行,还需要进行第5行的调用。
有参函数:
带返回值的函数:
9. 作用域
参数的作用域:一个参数的作用域就在这个函数内部,超出函数就看不见该参数了。
全局变量作用域:所有函数都可以访问。
10. 事件
事件是javascript允许html与用户交互的行为。 用户任何对网页的操作,都会产生一个事件。 事件有很多种,比如鼠标移动,鼠标点击,键盘点击等等。如按钮被点击的时候,弹出一个对话框:
11. 赋值运算符
运算符 |
示例 |
说明 |
= |
x=y |
x=y |
+= |
x+=y |
x=x+y |
-= |
x-=y |
x=x-y |
*= |
x*=y |
x=x*y |
/= |
x/=y |
x=x/y |
%= |
x%=y |
x=x%y |
12. 算术运算符
运算符 |
说明 |
+ |
加法 |
- |
减法 |
* |
乘法 |
/ |
除法 |
% |
取余 |
++ |
自加,将操作数加1 |
-- |
自减,将操作数减1 |
13. 比较运算符
运算符 |
说明 |
== |
等于 |
=== |
绝对等于(值和类型均相等) |
!= |
不等于 |
!== |
不绝对相等 |
> |
大于 |
< |
小于 |
>= |
大于或等于 |
<= |
小于或等于 |
14. 逻辑运算符
运算符 |
说明 |
&& |
只有当两个表达式同为真,才返回真,否则,返回假 |
|| |
如果一个表达式或两个表达式为真,则返回真,否则,返回假 |
! |
如果表达式为真,则返回假,如果为假,返回真 |
15. 条件语句
if条件一定是一个Boolean类型的值,当为true时,执行对应的语句。
在javascript中,可以使用以下条件语句:
16. 循环语句
常用的循环语句有: for, while, do-while, for/in
都是用于在满足条件的前提下,重复执行代码用的
17. 错误处理
JavaScript提供了一种try catch的错误处理机制,当有错误抛出的时候,可以catch住。
18. 数字对象
JavaScript中的对象是有着属性和方法的一种特殊数据类型。
常见的对象有数字Number,字符串String,日期Date,数组Array等。
(1)可以通过new Number()创建一个数字对象,如:
var x = new Number(123);
(2)取得Number对象的最小值: Number.MIN_VALUE。取得Number对象的最大值: Number.MAX_VALUE
(3)NaN(Not a Number),表示不是一个数字,当通过非数字创建Number的时候,就会得到NaN.使用isNaN()函数判断是不是NaN。
(4)toFixed()函数返回一个数字的小数表达
(5)返回一个Number对象的科学计数法表达
(6)方法 valueOf() 返回一个基本类型的数字
19. 字符串对象
与数字类似,基本类型String也有一个对应的String 对象,并且提供了很多有用的方法。
(1)创建字符串对象
与Number类似的,可以通过new String()创建一个String对象。
(2)字符串长度
属性 length 返回字符串的长度。
(3)返回指定位置的字符
charAt 返回指定位置的字符
charCodeAt 返回指定位置的字符对应的Unicode码
(4)字符串拼接
concat用于进行字符串拼接。
(5)子字符串出现的位置
indexOf 返回子字符串第一次出现的位置
lastIndexOf 返回子字符串最后一次出现的位置
(6)比较两段字符串是否相同
localeCompare 比较两段字符串是否相同,0即表示相同,非0表示不同。
(7)截取一段子字符串
substring 截取一段子字符串。
(8)根据分隔符,把字符串转换为数组
split 根据分隔符,把字符串转换为数组。
(9)替换子字符串
replace(search,replacement)
找到满足条件的子字符串search,替换为replacement。
(10)返回基本类型
需要注意的是,所有返回字符串类型的方法,返回的都是基本类型的String。
20. 数组对象
javascript中的数组是动态的,即长度是可以发生变化的。
(1)创建数组对象
创建数组对象的3种方式:
new Array() 创建长度是0的数组
new Array(5); 创建长度是5的数组,,但是其每一个元素都是undefine
new Array(3,1,4,1,5,9,2,6); 根据参数创建数组。
(2)数组长度
属性length 获取一个数组的长度。
(3)遍历一个数组
遍历有两种方式
结合for循环,通过下标遍历
使用增强for in循环遍历。
(4)连接数组
方法 concat 连接两个数组。
(5)方法 join 通过指定分隔符,返回一个数组的字符串表达。
(6)方法 push pop,分别在最后的位置插入数据和获取数据(获取后删除) 就像先入后出的栈一样
(7)方法 unshift shift ,分别在最开始的位置插入数据和获取数据(获取后删除)。
(8)方法 sort对数组的内容进行排序。
(9)自定义排序算法
sort()默认采用正排序,即小的数排在前面。 如果需要采用自定义排序的算法,就把比较器函数作为参数传递给sort()。
(10)方法 reverse,对数组的内容进行反转。
(11)方法 slice 获取子数组。
(12)删除和插入元素
方法 splice (不是 slice) 用于删除数组中的元素
奇葩的是 ,它还能用于向数组中插入元素
21. 日期对象
JavaScript使用Date对象表示日期。
(1)创建日期对象
通过new Date创建一个日期对象,这个对象就表示当前日期(现在)。
(2)获取年月日
(3)获取时:分:秒:毫秒
(4)一周的第几天
(5)经历的毫秒数
(6)修改日期时间
22. Math对象
Math是JavaScript的工具对象,用于常见的数学运算
(1)自然对数和圆周率
属性E PI,分别表示自然对数和圆周率。
(2)绝对值
方法 abs 取绝对值。
(3)最大、最小值
方法 min max 分别取最小值,最大值。
(4)求幂
方法 pow 求一个数的n次方。
(5)四舍五入
方法 round,小数四舍五入取整。
(6)随机数
方法 random 取0-1之间的随机数。
23. 自定义对象
在JavaScript中可以自定义对象,添加新的属性,添加新的方法。
(1)通过new Object()创建一个对象。
(2)通过function设计一个对象
通过new Object创建对象有个问题,就是每创建一个对象,都得重新定义属性和函数。这样代码的重用性不好,那么,采用另一种方式,通过function设计一种对象。 然后实例化它 。这种思路很像Java里的设计一种类,但是 javascript没有类,只有对象,所以我们叫设计一种对象。
(3)为已存在的对象,增加新的方法。
通过prototype实现这一点。