一.JavaScript简介
1.一个完整的JavaScript实现应由以下三部分组成:
(1)ECMAScript:是JavaScript的一个标准
(2)DOM:文档对象模型,给我们提供一组对象来操作网页
(3)BOM:浏览器对象模型,给我们提供一组对象来操作浏览器
2.JS特点:
(1)解释型语言,动态语言
(2)跨平台
(3)基于原型的面向对象
(4)类似于C和Java的语法结构
(5)事件驱动:可以直接对用户操作做出响应,无需经过服务器
3.JS编写位置:推荐方法(4)
(1)JS代码head中的写在script标签内
(2)可以写在按钮标签button的onclick属性中
- 写入属性中结构与行为会有耦合性,不推荐
(3)还可以写在连接标签a的href里,点击链接执行代码
- 点我
- 写入属性中结构与行为会有耦合性,不推荐
(4)还可以写到.js文件,然后用script标签通过src属性引入
- 引入了js文件的script标签内不能再写内容,写了也会被浏览器忽略,若需要则再写一个script标签
写入js文件可以多个文件同时引用,也利用到了浏览器的缓存机制
4.执行顺序:Js代码严格遵守从上到下的顺序一行一行执行
5.注释:
6.JS中严格区分大小写
7.JS的每条语句最好以分号结尾
(1)不加的话浏览器会自动添加,但是会消耗系统资源
(2)而且浏览器自动添加可能出错8.JS中忽略多个空格和换行:方便设置格式
9.查看变量的数据类型:typeof (变量名)
10.不同进制的写法:
(1)十六进制以0x开头
(2)八进制以0开头
(3)二进制以0b开头二.基础语法
1.弹出警告框:alert(‘内容’);
2.在页面输出内容:document.write(‘内容’);
(1)写出的内容会出现在body中
(2)示例:document.write(‘Hello World!!’);
3.向控制台输出一个内容:console.log(‘内容’);
(1)注意是在控制台输出,而不是页面
(2)示例:console.log(‘我向控制台发消息’);
4.带文本框的提示框:prompt(“要显示的内容”);
(1)弹出提示框,该提示框带有一个输入框
(2)该函数需要一个字符串作为参数,该参数会作为提示框的文字
(3)将其赋值给一个变量,用来接收输入的值
三.字面量与变量
1.字面量:不可改变的值(相当于常量)
2.变量:可以任意改变的值,也可以用来存储字面量
(1)变量的声明:使用var来声明一个变量
var a;//声明一个变量a
(2)用=来给变量赋值,可以与声明一起进行
- var a = 123;//声明变量a且赋值为123
四.标识符
1.在JS中可以自主命名的都可以成为标识符
(1)例如:变量名,函数名,属性名等
(2)JS底层保存标识符时,采用的是Unicode编码
-
2.标识符命名规则
(1)由字母,数字,下划线,美元符号构成
(2)不能以数字开头
(3)不能是关键字或保留字
(4)一般首字母小写,多个单词除了第一个单词小写,之后每个单词首字母大写3.关键字和保留字
五.数据类型
1.字符串(String)-基本数据类型
(1)字符串需要用引号引起来,不区分单引号和双引号
(2)嵌套的话内外要用不同的引号,或用转义字符(\)
(3)使用typeof检查数据类型会返回string2.数值(Number)-基本数据类型
(1)JS中整数和浮点数都是Number类型(所有数值都是Number类型)
(2)字面量:Number.MAX_VALUE是Number类型的最大值,超出这个值都会输出Infinity Infinity:表示正无穷
- -Infinity:表示负无穷
- 同理Number.MIN_VALUE是Number类型大于0范围内的最小值
(3)NaN是一个特殊的数字,表示Not A Number
(4)浮点数的运算可能会得到一个不精确的结果
(5)使用typeof检查数据类型会返回number
3.布尔类型(Boolean)-基本数据类型
(1)布尔类型的值只有两个:true和false
(2)主要用来逻辑判断
(3)使用typeof检查数据类型会返回boolean
4.空类型(Null)-基本数据类型
(1)空类型的值只有一个:null
(2)专门用来表示一个空的对象
(3)使用typeof检查数据类型会返回object
5.未定义类型(Undefined)-基本数据类型
(1)未定义类型的值只有一个:undefined
(2)当声明变量不给赋值时,它的值就是undefined
(3)使用typeof检查数据类型会返回undefined
6.对象类型(Object)-引用数据类型
六.强制类型转换:
1.将一个数据类型强制转换为另一个数据类型
2.类型转换主要指将其他类型转换为String,Number,Boolean
3.将其他类型强制转换为String
(1)方法1:调用被转换数据类型的toString()方法:被转换数据.toString()
- 注意,toString方法不会影响原变量,需要赋值给新变量
- null和undefined无toString()方法
- 示例:想把数值a转换为字符串:var b = a.toString();
(2)方法2:调用String()函数,并将要转换的填入括号当作参数
- 注意,String()函数不会影响原变量,需要赋值给新变量
- 所有类型都可以转换
示例:想把数值a转换为字符串:var b = String(a);
4.将其他类型强制转换为Number
(1)方法1:调用Number()函数,并将要转换的填入括号当作参数
注意,Number()函数不会影响原变量,需要赋值给新变量
- 要转换的变量中有非数字内容或是undefined会返回NaN
- 要转换的变量是空值或空格内容会返回0
- true转为数字是1,false转为数字是0
- 示例:想把字符串a转换为数字:var b = Number(a);
(2)方法2:专门对付字符串(非字符串使用会先自动转换为字符串在使用),可以填入第二个参数,表示多少进制,第二个参数填入16就是十六进制
- parseInt():可以将字符串中的有效整数取出来并转为Number类型
- a = “ab123c”
- var b = parseInt(a);//b就是123
parseFloat():可以将字符串中的有效浮点数取出来并转为Number类型
只有0和NaN,空字符串,null,undefined转换结果是false
- 其余都是true
6.检查数据类型:instanceof
(1)用于检查数据是否属于那种类型,返回true或false
(2)arr instanceof Array//判断arr是否为数组七.运算符(操作符)
1.算术运算符:
| 运算符 | 用法 | | —- | —- | | + | 将+左右的值做加法运算 | | - | 将-左右的值做减法运算 | | | 将左右的值做乘法运算 | | / | 将/左右的值做除法运算 | | % | 取余操作 |
(1)当非Number类型的值进行运算,都要转换成Number型在计算
(2)任何值与NaN运算都得NaN
(3)对两个字符串进行”+”操作,会拼接字符串
(4)任何跟字符串做+,都会转成字符串,做字符串拼接操作(只有+成立,其他运算会将字符串转为数值)
- 给任意值加一个空字符串,就可以把这个值转为字符串类型,为隐式转换
(6)优先级高的先运算,优先级相同从左到右依次运算
(7)任何值做- * / 都会自动转为Number型
(1)当非Number类型的值进行运算,都要转换成Number型在计算
(1)++a表示使用前自增;a++表示使用后自增
(2)—a表示使用前自减;a—表示使用后自减
4.逻辑运算符
运算符 | 含义 |
---|---|
! | 非 |
&& | 与 |
|| | 或 |
(1)运算规则:
- &&:真真->真
- ||:假假->假
- !:一真一假
(2)!对非布尔值运算,会将其转换为布尔值,所以可以连续两次非运算,来将其转换为布尔型
(3)&&:两值都为true,返回后边的;如果两个值有false,返回前面的false
(4)||:若第一值为true,直接返回第一个值;第一个值为false,直接返回第二个数
5.赋值运算符
运算符 | 含义 |
---|---|
= | 将右边的值赋值给左边 |
+= | a+=5等价于a=a+5 |
-= | a-=5等价于a=a-5 |
*= | a=5等价于a=a5 |
/= | a/=5等价于a=a/5 |
%= | a%=5等价于a=a%5 |
6.关系运算符
运算符 | 含义 |
---|---|
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
=== | 全等 |
!== | 不全等 |
(1)成立返回true,不成立返回false
(2)比较非数值,会转换为数值在比较
(3)任何值与NaN比较都返回false
(4)若两侧都是字符,则会比较Unicode编码,一个字母一个字母比较,相等才比较下一位
(5)比较中文没意义
(6)相比较两个字符串就要转型才会得到想要的结果
(7)==运算类型不同则会转换为一样的在比较
(8)NaN不和任何值相等,包括它本身;若想判断一个值是否为NaN,用函数isNaN()
(9)===比较类型不同的直接返回false,!==该情况返回true
7.条件运算符(三元运算符)
(1)语法条件表达式?语句1:语句2;//先求值表达式,结果true执行语句1,并返回结果,否则执行语句2并返回结果
(2)条件表达式的结果不是布尔值,会转为布尔值在计算
8.逗号运算符”,”
(1)用法: