定义变量
var name = "hello"; // 定义一个变量
// let和const
// let 声明的变量只在 let 命令所在的代码块内有效。
// const 声明一个只读的常量,一旦声明,常量的值就不能改变。
数据类型
Number(数值),String(字符串),Boolean(布尔),Undefined,Null,Object
注意:undefined表示一个声明一个没有赋值的变量,变量只声明的时候值默认是undefined;null表示一个空,变量的值如果想为null,必须手动设置。
typeof:检测变量的数据类型
var name = "hello";
console.log(typeof(name)); // string
var age = 18;
console.log(typeof(age)); // number
console.log(typeof(x)); // undefined
运算符
加(+),减(-),乘(*),除(/),取余(%)
++ 和 --
&& 逻辑与运算符; //同为真(true),则结果为真(true)。
|| 逻辑或运算符; //只要有一个为真(true),则结果为真(true)。
! 逻辑非运算符; //取相反,当前为真(true),则结果为假(false);当前为假(false),则结果为真(true)。
> 大于号 ,< 小于号
= 大于等于,<= 小于等于
== 等于,=== 全等,!= 不等于,!== 不全等
i++和++i 的区别:前者先执行后加1,后者是先加1后执行。
var a = 3;
++a; // a的值为4
var b = 4;
console.log(a + b++); // 结果为8。这里是先把a和b相加,然后在把b进行加1操作
console.log(b); // 结果为5
var a = 3;
++a; // a的值为4
var b = 4;
console.log(a + ++b); // 结果为9。这里是先把把b进行加1操作,然后在把a和b相加
console.log(b); // 结果为5
逻辑运算符优先级:先进行!,再运行 && ,再运行 ||
全等和等于:全等比较的是值和类型。等于只是比较值。因为JS是一种弱类型语言,变量的数据类型存在自动转换。因此,等于,也只是比较的是值。
var a = 1;
var b = "1";
console.log(a == b); // true 进行类型转换
console.log(a === b); // false 没有进行类型转换
// != 不等于,!== 不全等这两个也是同样的道理
运算符的优先级
1.()优先级最高
2.一元运算符 ++ ,-- ,!
3.算术运算符 先 *,/ ,%,后 +, - 。和数学一样先乘除取余后加减。
4.关系运算符 > ,< ,>= ,<=
5.相等运算符 == ,=== ,!= ,!==
6.逻辑运算符 先&& 后 ||
7.赋值运算 =
流程控制
顺序结构:从上到下执行的代码就是顺序结构。 程序默认就是由上到下顺序执行的。
分支结构:根据不同的情况及判断,执行对应代码。
if (判断条件) {
当条件为 true 时执行的代码
} else {
当条件不为 true 时执行的代码
}
例如
if (1>2){
console.log("条件为真");
} else{
console.log("条件为假");
}
输出:

循环结构:重复执行一段代码。
for 循环
for (语句1; 语句2; 语句3) {
被执行的代码块
}
语句 1 (代码块)开始前执行
语句 2 定义运行循环(代码块)的条件
语句 3 在循环(代码块)已被执行之后执行
例如
for (var i=0; i<5; i++){
console.log(i); // 输出i的值
}

while 循环
while (条件) { // 条件为真,才执行代码
需要执行的代码
}
例如:
var i = 0; // 赋予i一个初始值
while (i<10) {
console.log(i);
i++; // 自增
}
输出

switch 语句
switch(n){
case 1:
执行代码块1
break; // 跳出当前switch语句
case 2:
执行代码块2
break;
default: // default 用来规定匹配不存在时做的事情
与 case 1 和 case 2 不同时执行的代码
}
例如
var x = 3; // x为3
switch (x){
case 1 :
x = 11;s
console.log(x);
break;
case 2 :
x = 22;
console.log(x);
break;
case 3 : // 会在这里匹配到,然后执行这里的代码
x = 33;
console.log(x);
break;
case 4 :
x = 44;
console.log(x);
break;
case 5 :
x = 55;
console.log(x);
break;
default:
console.log("都不是");
}
输出

如果去掉 break语句,结果输出为

进入下一个条件,直到执行到 break 语句,结束 Switch 语句
break 和 continue 语句区别
break :跳出整个循环,循环直接结束了,运行下一部分的代码。
continue :跳过循环中的一次循环,直接进入下一次循环。
数组
创建数组
第一种方法
var array1 = new Array();
array1[0] = 12; # 赋值,角标从 0 开始
array1[1] = "hello";
array1[3] = true;
console.log(array1);
第二种方法
var array2=new Array("hello","world",123);
console.log(array2);

第三种方法
var array3=["hello11","world11",12311];
console.log(array3);

使用循环遍历数组
var array=[1,2,3,4,5,6,7];
var len = 0
while(len<array.length){ // array.length,返回数组的长度
console.log(array[len])
len++;
}
数组的常用方法:用到的时候查百度
函数
定义函数的两种方式
// 第一种
function function_name(形参1,形参2, …){ // function_name:自定义函数名
code; // 代码
}
// 第二种(匿名函数)
var function_name = function(形参1,形参2, …){
code;
}
函数的使用
function test_name (a,b){ // 这里的a和b是形参
console.log(a+b);
}
test_name(1,2); // 调用test_name函数,其中1和2是实参
输出:

函数的返回值
function test_name (a,b){
var c = a+b;
return c; // 返回计算后的值
}
var cc = test_name(11,2); // 定义cc变量,将函数的返回值赋给cc
console.log(cc);
注意:
- 在执行到 return 之后,后面的代码就不会被执行!!也就是执行完 return 后,函数的调用结束。
- 如果没有返回值或返回值为空,则变量接受到的返回值为undefined。
匿名函数
var x = function (a, b) {
return a * b;
}
var z = x(4, 3); // 以变量的形式调用函数
console.log(z); // 输出12