1.运算符
- 算数运算符:+ - * / (加减乘除)%(取余)算数运算符先乘除后加减有小括号先算小括号内的。尽量不要用浮点数
- 表达式和返回值:右边的表达式计算完毕返回给左边
- 递增递减运算符:++(递增) --(递减)前置递增减,后置递增减(后置自增减是先返回原值,变量在自加减)
- 比较运算符:> < >= <= == != === !== (全等需要值与类型都相等)
- 逻辑运算符:&& (两侧都为真才为真)|| (两侧都为假才为假)!(取反);逻辑短路运算符(返回表达式)
- 赋值运算符:= += -= *= /= %=
- 运算符的优先级:一元运算符 > 算数运算符 > 关系运算符 > 相等运算符 > 逻辑运算符 > 赋值运算符
2.流程控制
- 顺序结构:顺序执行
- 分支结构:根据条件执行不同的代码(if、switch)
- 循环结构:根据循环执行代码(for、while、do while、continue(跳过本次循环) break(终止整个循环))
for (i = 1; i <= 5; i++) {
//循环体
}
while (true) {
//循环体
}
do {
//循环体
} while (true)
3.数组
var arr = ['数组一', '数组二', '数组三'];
alert(arr[0]);
for (var i = 0; i < arr.length; i++) {
alert(arr[i]);
}
arr[4];
4.函数
- function声明函数的关键字,函数不调用不会自动执行。(先声明函数,在调用函数)
- 函数的参数:在函数名中通过设置不同的参数执行不同的代码、返回不同的结果
- 函数的返回值:return返回结果(终止本次函数执行,)
function getSum(start, end) {
var sum;
for (i = start; i <= end; i++) {
sum += i;
}
return sum;
}
var sums = getSum(1,100);
5.作用域
- JavaScript作用域
全局作用域:整个script标签或者是一个js文件
局部作用域:在函数内部的就是局部作用域(函数作用域) - 变量作用域
全局变量:在全局作用域下的变量(在函数内部,没有声明直接赋值的变量也是全局变量)
局部变量:在局部作用域下的变量 - 作用域链:内部函数访问外部函数变量,采用链式查找
提高程序的可靠性,减少命名冲突
6.预解析
- 变量预解析:把所有的变量声明提升到当前作用域最前面,不提升赋值操作
- 函数预解析:把所有的函数声明提升到当前作用域最前面,不调用函数
7.对象
- 创建对象的三种方法
字面量:
var sums = getSum(1, 100);
var obj = {
name: '张',
age: 18,
message: function () {
alert('嗨')
}
}
console.log(obj.name);//调用属性
console.log(obj['age']);//调用属性
obj.message();//调用方法
new:
var obj = new Object();
obj.name = '张';
obj.age = '18';
obj.message = function(){
alert('嗨');
}
构造函数:
function Obj(name, age){
this.name = name;
this.age = age;
this.message = function(msg){
alert(msg);
};
}
var z = new Obj('张', '18');
z.message('嗨');
网友评论