欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js变量、常量、函数类型、作用域、闭包、模板字符串

程序员文章站 2022-03-06 13:48:27
...

const常量

常量长期使用的变量,不能被更改重新赋值,权限上只能读数据,不能写数据。
  1. const j = 5;
  2. console.log(j); //这离输出5
  3. j = 8; //这种就是重新给常量赋值,常量只能赋值初始化,后面只管用常量。

let变量

所谓变量就是可以重新赋值,可变的一个量。权限上能读数据,也能写入数据。
  1. let j = 5;
  2. j = 8; //这里给j赋新值
  3. console.log(j); //这里输出8

普通函数:

  1. function name(){
  2. //这就是普通函数
  3. }

匿名函数

把函数赋值给变量、事件,等。
  1. let game = function name(){
  2. //把函数赋值给变量
  3. }
  4. let game = function(a,b){
  5. return a+b;
  6. }
  7. console.log(game(1,2)) //输出3
  8. //简化写法
  9. let game = (a,b)=>{
  10. return a+b;
  11. }
  12. console.log(game(1,2));
  13. //如果只有一行代码可以把花括号去掉。
  14. let game = (a,b) => a+b;
  15. console.log(game(1,2));
  16. //只有一行代码也可以去掉return和花括号。
  17. let game = a=> a+2;
  18. console.log(game(1));
  19. //如果参数只有一个,参数括号也可以省略。
  20. let game = ()=> 1+2;
  21. console.log(game());
  22. //没有参数时,必须有括号。

无名函数

没有函数名,调用时不用写函数名(参数)直接调用,function前后要加上括号。
  1. (function (a,b){
  2. return a+b;
  3. })
  4. (1,2);//没有名调用后直接销毁。
  5. //无论什么类型的函数,参数可以有可以无,具体看场景。

闭包函数

就是函数里面套函数,子函数(闭包函数)可以访问外部的变量,return返回给外部。
  1. function name(){
  2. j = 0;
  3. function age(){
  4. j++;
  5. alert(j);
  6. }
  7. return age;
  8. }
  9. name();
  10. //这种写法就是闭包写法,name的数据return返回给age

函数的作用域

  1. function game(){
  2. let a = 1;
  3. function mi(){
  4. let b = 2;
  5. }
  6. }

常用数据类型有:Number(数子-123)、NaN(是Number中的一种,非Number)、String(字符串-abc123)、Boolean(ture-真,false-假)、Null(空)、undefined(未定义)、object(对象)。
引用类型:[数组类型]、{对象类型}、function

数组与对象的使用

  • 数组
    1. let xiaoming = [3,5,6,8];
    2. console.log(xiaoming[2]);
    3. //输出6,因为是重0开始不是重1开始。
  • 数组传入未知多个值
    1. function a(...b){
    2. console.log(b);//输出数组内容
    3. console.log(b.reduce((p,c)=>p+c));//数组的和15
    4. }
    5. a(1,2,3,4,5);
  • 对象
    1. let xiaoming = { name: "小明", age: 18, weight: "体重55KG" };
    2. consoli.log(xiaoming);
    3. //输出{name: "小明", age: 18, weight: "体重55KG"}
  • 数组里面的对象,或者任何类型的数据。
    1. let xiaoming = [{ name: "小明", age: 18, weight: "体重55KG" }];
    2. console.log(xiaoming[0]);
    3. /*-----------------------------------------------------------------------*/
    4. //输出{name: "小明", age: 18, weight: "体重55KG"}
    5. let xiaoming = [{ name: "小明", age: 18, weight: "体重55KG" },{ name: "小白", age: 22, weight: "体重45KG" }];
    6. //输出数组离所有的对象,console.log(xiaoming.length)可以输出2,表示有2个对象。
  • rest参数…不确定有多少个参数的时候使用它
    1. function jisuan(...num){
    2. return num.reduce((p,c)=>p+c);
    3. }
    4. jisuan(1,2,3);
    5. //输出6,无论多少值都接收。在函数中用...就是rest,归并操作,搜索一个数组中。
    6. let i = [1, 2, 4, 6, 2];
    7. console.table(...i);
    8. //输出1 2 4 6 2,用在函数的参数调用中,就是扩展、扩开,spread

    es6解决模板字符串模板传统方式

    1. let a = 4;
    2. let b = 6;
    3. console.log(`${a}+${b}=${a+b}`); //输出效果4+6=10
    4. /*----------------------------------------------------*/
    5. console.log("htmn\n"+"css\n"+"js\n"); //老式写法
    6. let aa = `html
    7. css
    8. js`;
    9. console.log(aa);
    10. //输出效果,自动换行。
    11. html
    12. css
    13. js
    14. /*----------------------------------------------------*/
    15. function game(strings,a,b){
    16. console.log(`${strings[0]}${a}x${strings[1]}${b}=${a*b}`);
    17. }
    18. game`单价:${2}数量:${5}`;
    19. //输出:单价:2x数量:5=10