const常量
常量长期使用的变量,不能被更改重新赋值,权限上只能读数据,不能写数据。
const j = 5;
console.log(j); //这离输出5
j = 8; //这种就是重新给常量赋值,常量只能赋值初始化,后面只管用常量。
let变量
所谓变量就是可以重新赋值,可变的一个量。权限上能读数据,也能写入数据。
let j = 5;
j = 8; //这里给j赋新值
console.log(j); //这里输出8
普通函数:
function name(){
//这就是普通函数
}
匿名函数
把函数赋值给变量、事件,等。
let game = function name(){
//把函数赋值给变量
}
let game = function(a,b){
return a+b;
}
console.log(game(1,2)) //输出3
//简化写法
let game = (a,b)=>{
return a+b;
}
console.log(game(1,2));
//如果只有一行代码可以把花括号去掉。
let game = (a,b) => a+b;
console.log(game(1,2));
//只有一行代码也可以去掉return和花括号。
let game = a=> a+2;
console.log(game(1));
//如果参数只有一个,参数括号也可以省略。
let game = ()=> 1+2;
console.log(game());
//没有参数时,必须有括号。
无名函数
没有函数名,调用时不用写函数名(参数)直接调用,function前后要加上括号。
(function (a,b){
return a+b;
})
(1,2);//没有名调用后直接销毁。
//无论什么类型的函数,参数可以有可以无,具体看场景。
闭包函数
就是函数里面套函数,子函数(闭包函数)可以访问外部的变量,return返回给外部。
function name(){
j = 0;
function age(){
j++;
alert(j);
}
return age;
}
name();
//这种写法就是闭包写法,name的数据return返回给age
函数的作用域
function game(){
let a = 1;
function mi(){
let b = 2;
}
}
常用数据类型有:Number(数子-123)、NaN(是Number中的一种,非Number)、String(字符串-abc123)、Boolean(ture-真,false-假)、Null(空)、undefined(未定义)、object(对象)。
引用类型:[数组类型]、{对象类型}、function
数组与对象的使用
- 数组
let xiaoming = [3,5,6,8];
console.log(xiaoming[2]);
//输出6,因为是重0开始不是重1开始。
- 数组传入未知多个值
function a(...b){
console.log(b);//输出数组内容
console.log(b.reduce((p,c)=>p+c));//数组的和15
}
a(1,2,3,4,5);
- 对象
let xiaoming = { name: "小明", age: 18, weight: "体重55KG" };
consoli.log(xiaoming);
//输出{name: "小明", age: 18, weight: "体重55KG"}
- 数组里面的对象,或者任何类型的数据。
let xiaoming = [{ name: "小明", age: 18, weight: "体重55KG" }];
console.log(xiaoming[0]);
/*-----------------------------------------------------------------------*/
//输出{name: "小明", age: 18, weight: "体重55KG"}
let xiaoming = [{ name: "小明", age: 18, weight: "体重55KG" },{ name: "小白", age: 22, weight: "体重45KG" }];
//输出数组离所有的对象,console.log(xiaoming.length)可以输出2,表示有2个对象。
- rest参数…不确定有多少个参数的时候使用它
function jisuan(...num){
return num.reduce((p,c)=>p+c);
}
jisuan(1,2,3);
//输出6,无论多少值都接收。在函数中用...就是rest,归并操作,搜索一个数组中。
let i = [1, 2, 4, 6, 2];
console.table(...i);
//输出1 2 4 6 2,用在函数的参数调用中,就是扩展、扩开,spread
es6解决模板字符串模板传统方式
let a = 4;
let b = 6;
console.log(`${a}+${b}=${a+b}`); //输出效果4+6=10
/*----------------------------------------------------*/
console.log("htmn\n"+"css\n"+"js\n"); //老式写法
let aa = `html
css
js`;
console.log(aa);
//输出效果,自动换行。
html
css
js
/*----------------------------------------------------*/
function game(strings,a,b){
console.log(`${strings[0]}${a}x${strings[1]}${b}=${a*b}`);
}
game`单价:${2}数量:${5}`;
//输出:单价:2x数量:5=10