一.、JavaScript的组成
1.ECMAScript5 (Javascript语法标准)
2.DOM (document object model)
JS操作HTML
3.BOM (browser object model)
JS操作浏览器
二、JS解释器
-
在所有的主流浏览器中都具备JS解释器
-
JS运行在浏览器端:动画,表单验证,ajax数据交互
-
JS运行在服务器端:js转换,代码编译,操作数据库,流,网络,IOT
三、变量
强类型 | 弱类型 |
---|---|
变量的数据类型取决于变量的声明 | 变量的数据类型取决于值的类 |
变量的声明 var a;
变量的初始化 a=3;
- 基本数据类型
数据类型 | 变量 |
---|---|
数字类型 | number |
字符串类型 | string |
布尔类型 | boolean |
空对象 | null object |
未定义 | undefined |
a是什么类型 | typeof a |
如果result是NaN,那么这个函数返回true | isNaN(result) |
如果result是一个有穷数,返回true | isFinite(result) |
- 引用数据类型
数组、函数、对象、正则表达式
- 基本数据类型与引用数据类型在内存中的表示
1.基本
var a = “terry”;
2.引用
var b = {
name:”terry”,
age:12,
gender:”male”
}
基本数据类型的值保存在栈区;引用数据类型的引用地址保存在栈区,内容保存在堆区
四、 操作符
- 算术操作符
算术操作符 | 进行的操作 |
---|---|
+= | + |
-= | - |
*= | * |
/= | / |
%= | % |
- 赋值操作符
var result = 1 + 2;
result += 3; ==> result = result +3;
将1+2这个表达式的运算结果赋值给result
- 一元操作符
操作符 | 运算 |
---|---|
++ | 自增 |
- - | 自减 |
+ | 将其他数据类型转换为字符型 |
前置:先自增、减再参与其他运算
后置:先参与其他运算,再自增、自减
- 逻辑运算符
运算符 | 含义 |
---|---|
&& | 当第一个表达式为假的时候,不再计算第二个表达式,整个表达式的结果由第一个表达式来决定,因此会返回第一个表达式的运算结果 |
|| | 当第一个表达式为真的时候,整个表达式的结果就为真,不再计算第二个表达式。返回第一个表达式 |
! | 将表达式的结果颠倒,而且具有将其他数据类型转换为boolean的作用 |
-
比较运算符(比较栈区的值)【返回类型为Boolean】
-
三目运算符
exp1 ? exp2 : exp3
当exp1为真,返回exp2,否则返回exp3
- 位运算符(number,先将number转换二进制再运算)
位运算符 | 含义 |
---|---|
^ | 异或 |
& | 位与 |
| | 位或 |
- 拼接运算符
当使用 “+” ,操作数中出现了字符串,那么就肯定是拼接运算
五、类型转换
- 其他数据类型转换为boolean
!!v
Boolean(v)
- 其他数据类型转换为string
v+""
String(v);
v.toString(); //null与undefined除外
- 其他数据类型转换为number
+v
-(-v)
Number();
parseInt();
parseFloat(); 解析字符串为整数int、是浮点数float
六、流程控制语句
- 分支语句
if(条件){
进行的操作
}
if(条件){
进行的操作
}else{
不是if那个条件,又该运行什么操作
}
- 多个条件的if语句
if(){
}else if(){
}else{
}
switch(所要判断的值){
case 某个条件:{
操作
}
....
default:{
case的条件都没有所进行的操作
}
}
- 循环语句
三要素:初始化条件,结束判定条件,迭代
- for循环语句
for(初始化条件; 结束判定条件; 迭代){
循环体
}
- 前置判断循环 while循环
初始化条件
while(结束判定条件){
循环体
迭代
}
- 后置判断循环 do-while循环
初始化条件
do {
//循环体
迭代
} while(结束判定条件);