JavaScript

定义变量

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

对象