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

js基础知识(变量、常量、函数、数据类型、函数声明及类型)

程序员文章站 2022-03-13 12:51:30
...

js基础知识

  1. 查看结果的方式
    alert(100+200); //alert()对话框
    console.log(100+200); //控制台

  2. 标识命名规则
    1.必须使用英文字母,数字,下划线“_”,$,这四种来命名

  3. 命名网格
    1.蛇行:user_name, 多个单词之间用下划线,常用于常量
    2.驼峰:userName,getUserName,第二个单词起首字母大写,用在变量,函数
    3.大驼峰:UserName, 帕斯卡 ,用在类/构造函数

  4. 变量声明 let 禁止重复声明同一个变量
    第一次赋值叫:初始化
    第二次赋值叫:更新/修改

  5. 常量声明 const 代码执行过程中不允许更新的数据
    声明时必须赋值,名称全部大写

  6. 原始数据类型:数值 number(整数和小数),字符串 string,布尔值 boolean,undefined,null
    typeof 变量名 :查看变量数据类型
    字符串拼接采用“+”进行连接

  7. 引用类型:数组(array),对象(object),函数(function)
    数组:[1,2,3],数据放在[]方括号内,使用 变量名[索引] 访问数组成员
    对象:{name:”电脑”} 数据放在{}花括号内,可用console.table(变量名称)查看数据,
    使用点语法访问对象数据:变量名.属性名 item.name
    当属性使用非法标识符时,必须转为字符串 “ ”

  8. 函数声明: function 函数名(参数){} ; function getTotal(name) {}
    函数调用:函数名() ; getTotal()
    查看函数名称:函数名.name ; getTotal.name
    查看参数数量:函数名.length ; getTotal.length

  1. 函数封装,将表达式放入函数中
  2. function getTotal(price,quan) {
  3. let jinge = 0;
  4. jinge = price + quan;
  5. console.log("jinge=" + jinge);
  6. }
  7. getTotal(60,50)
  8. getTotal(86,17)
  1. 解决函数参数过多方案
  2. // 使用... rest参数来解决参数过多的问题,也叫归内参数/剩余参数/不定参数,将多余的参数放到一个数组中
  3. // ...:用在函数的形参中,就是rest,将剩余参数放到一个数组中
  4. // ...:用在函数的调用参数中,就是将参数展开
  5. let list = [10,20,30,40];
  6. function getTotal2(... a) {
  7. console.log("a = ",a.reduce((p,c) => p + c ));
  8. }
  9. getTotal2(10,20,30,40,50,60)
  1. 匿名函数,没有函数名的函数,分为一次性函数,可复用函数
  2. // 一次性函数,写完立即调用 IIFE
  3. (function(a,b){console.log(a+b);})(20,30);
  4. // 可复用函数,使用函数表达式
  5. let add = function(a,b){console.log(a+b);}
  6. add(100,300);
  7. // 使用“箭头函数” 简化 “函数表达”
  8. // 胖箭头:=>
  9. // 瘦箭头:->
  10. add = (a,b) => {return a+b};
  11. console.log(add(10,20));
  12. // 只有一行代码时,大括号可以不要
  13. add = (a,b) => a+b;
  14. console.log(add(10,20));
  15. // 只有一个参数时,花括号可以不要
  16. add = a => a+10;
  17. console.log(add(10));
  18. // 没有参数时,一定要花括号
  19. add = () => 20+10;
  20. console.log(add());

9.全局作用域:位于函数外
函数作用域:位于函数内
函数内的变量先从函数内部查询,有就直接方位
没有,就向一个作用域查询,一级一级往上,直到全局
作用域链,查询变量用的

10.闭包:条件:1.父子函数 2.*变量
a 从外部传入参数,为*变量
b,c 为函数内变量,为自有变量

  1. 函数闭包
  2. function par(a){
  3. function f(b){
  4. let c = 5;
  5. return a + b + c;
  6. }
  7. return f;
  8. }
  9. //调用函数,产生闭包
  10. console.log(par(3));
  11. const f1 = par(5);//a = 5
  12. console.log(f1);
  13. console.log(f1(8));//b = 8

this 表示当前对象
模板字符串:``,使用反引号包裹,可换行,变量使用:${},引用

  1. // 标签函数:使用“模板字符串”为参数的函数
  2. total`数量:${10} 单价:${90}`;
  3. function total(strings, num, price) {
  4. console.log(strings);
  5. console.log(num, price);
  6. let res = `${strings[0]}${10}${strings[1]}${90},总金额:${num * price} 元`;
  7. console.log(res);
  8. }
  9. // 模板字符串参数中的占位符比较多,可以用rest进行归并
  10. sum`计算多个数之和: ${5}${6}${7}${8}${9}`;
  11. function sum(strings, ...args){
  12. console.log(`${args.join()}之和是${args.reduce((p,c) => p+c)}`);
  13. }